If assembly is interrupted by error(s), no list file is produced. If it were, it probably wouldn't contain the error messages anyway. You probably want the "-Z" option:
http://www.nasm.us/doc/nasmdoc2.html#section-2.1.14Another option might be "nasm -f obj xxx.asm -s >xxx.err", the "-s" sending errors to stdout.
The "-o xxx.com" will cause the output file to be named "xxx.com", but the output from "-f obj" will not be a ".com" file! Think about what you actually want to do there... The "-f bin" option will produce a ".com" file (and might get rid of some errors, too - the source code needs to be different for "-f obj"...).
Best,
Frank