Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
如何从堆栈中读取而不弹出?我试过这个:
mov dx, [ss:sp]
并得到一个错误:“错误:无效的有效地址”
我正在使用 NASM,我的程序是 16 位的 DOS。
16 位寻址不支持[sp]您只能使用 、 、 和位移的有限bx组合bp进行si寻址di。这意味着您必须移动sp到上述寄存器之一,通常的寄存器bp甚至具有ss默认关联的段。函数序言通常会设置它,因此您可以轻松访问参数和局部变量:
[sp]
bx
bp
si
di
sp
ss
push bp mov bp, sp ... mov dx, [bp + displacement]