推送x86程序集中的AL寄存器



我正在用NASM在16位x86组件中制作自己的操作系统,在代码的一部分中,我必须将AL寄存器push添加到堆栈中。但当我做push al时,我只是说:

firstos.asm:127:错误:操作码和操作数的组合无效

我还尝试将堆栈指针与mov sp, al一起使用,但没有成功。

我该怎么做?

没有推送8位寄存器的指令。指令集的设计假设您将按照16位字来组织堆栈,因此所有的推送和弹出都应该是字大小的。

所以很可能你只想push ax,然后再pop ax

在此期间,如果您想在ah中放入不想覆盖的内容,则会变得有点困难。最好为该字节使用其他寄存器。

最新更新