64 ビットの Mac-to-Linux コンピューターで Insight デバッガーを使用しています。
mov ebx, 1739
結果がEBX で 0xcc00cccb であることを教えてくれます。EAX は予想どおり 0x1bf を取得しますが、乗算結果も奇妙です (32 ビット レジスタに収まるはずの場合)。
global _start
_start:
nop
mov eax, 447
mov ebx, 1739
mul ebx
nop
誰か、何が起こっているのか教えてください。mov または mul 命令によって生成された任意の 16 進数に、上位ニブルにいくつかの c を追加するという同様の効果を行わずに、データバイト文字列を宣言することさえできませんでした。NASM アセンブラを使用します。
編集:アセンブルしてリンクする2つの端末エントリは次のとおりです。
nasm -f elf -g -F stabs test.asm -l test.lst
ld -o test test.o -melf_i386