I'm using the Insight debugger on my 64-bit Mac-to-Linux computer.
It's telling me that the result of mov ebx, 1739 is 0xcc00cccb in EBX. EAX gets 0x1bf as expected, but the multiply result is also weird (when it should fit into a 32-bit register).
global _start
_start:
nop
mov eax, 447
mov ebx, 1739
mul ebx
nop
Please, somebody tell me what is going on. I couldn't even declare a databyte string without it doing a similar effect of adding several c's at higher-order nibbles to any hexadecimal produced by any mov or mul instruction, to whichever register is declared first. I use the NASM assembler.
EDIT: My two terminal entries to assemble and link are:
nasm -f elf -g -F stabs test.asm -l test.lst
ld -o test test.o -melf_i386