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
It turns out for anyone who might be running Ubuntu 16.04 LTS that if you made the attempt to "get back" Insight which was removed from this Ubuntu's default application set, by way of the method suggested on a blog post: http://www.dalfonso.co/blog/2016/04/23/setting-insight-debugger-on-ubuntu-16-04-lts/, you will not actually be getting the application you were hoping for. It has missing pieces.On the surface (interface), this may appear to work, but it may be only doing patchwork which doesn't fully regenerate the app.
The real reason has everything to do with an inner malfunction of my computer somewhere which, for unknown reasons, could not allocate values to registers correctly if the folder name in which the assembly files were kept was named "assembly".