x86 - 将 8 位值压入堆栈

x86 - Push 8 bit value to stack

是否可以将 8 位值压入堆栈? NASM 当我尝试将 AL 压入堆栈时出现错误;后来,我发现那是因为堆栈保存了 16 位值。将 8 位值压入堆栈的正确方法是什么?

(这是8086的)

您不能将 8 位值压入堆栈。最明智的方法是将相应的 16 位寄存器压入堆栈:

push ax

请注意,这会在 ah 中推送一个垃圾字节,以及您要写入的一个字节,但这应该没有问题。