6

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
4

1 に答える 1