0
我一直有最奇怪的问题。在x86汇编中,出于某种原因,32位寄存器(eax,ebx等)在256处溢出,表明它们实际上是8位。例如:32位寄存器作为8位寄存器
test.s:
section .data
section .text
global _start
_start:
mov eax, 1
mov ebx, 256
int 80h
如果我再与nasm -felf32 -g test.s && ld -m elf_i386 -s -o test test.s
编译这段代码,并运行生成的可执行文件,则返回0。同样的问题发生了EAX,ECX,EDX等。
在任何情况下,为什么32位寄存器会像8位寄存器那样工作?