我想弄清楚如何通過用bp減去sp寄存器來獲取堆棧中的項數。我究竟做錯了什麼?我得到完全錯誤的結果NASM - 獲取堆棧中的項數
MOV bp, 0x7E00
MOV sp, bp
PUSH 'A'
PUSH 'B'
PUSH 'C'
POP bx
MOV al, bl
CALL _printchar
POP bx
MOV al, bl
CALL _printchar
MOV bx, sp
SUB bx, bp
ADD bx, 48 ;To get ascii number
MOV al, bl
CALL _printchar
這是輸出:
CB。
你可以發佈輸出嗎? –
@ 1.618我加了輸出 –
建議:不要在SP中放一個具體的號碼。你在問災難。如果這對你有效;大。有一百萬其他(更安全)的方式來找出棧的實際位置。再次,如果這對你有用;咄;好的。我看到很多擔心。 –