代碼如下,代碼要干什么我是懂的,但是這個題目問ax和bx最后的值是什么,其它什么資訊都不給,好像無法計算。
比如 mov word ptr ss:[0], offset s 這是把s標號位置的的偏移地址放入ss:[0]記憶體,但是s標號的偏移地址是多少沒說,我又不知道每句指令的機器碼是多少,這個題就沒法做了啊。
assume cs:code
data segment
dw 8 dup(0)
data ends
code segment
start: mov ax, data
mov as, ax
mov sp, 16
mov word ptr ss:[0], offset s
mov ss:[2], cs
call dword ptr ss:[0]
nop
s: mov ax, offset s
sub ax, ss:[0cH]
mov bx, cs
sub bx, ss:[0eH]
mov ax, 4c00H
int 21h
code ends
end start
uj5u.com熱心網友回復:
因為沒有用org指定起始地址,默認start的地址是code段0偏移,s的地址順序可得uj5u.com熱心網友回復:
請問S的地址如何順序可得?
uj5u.com熱心網友回復:
這個題目不是這樣理解的吧,S 的地址其實沒有關系;最后的 ax 和 bx 是什么,是 s: 的完全地址和 ss:[0c-0f] 處內容的相減,ss:[0c-0f] 處是什么,應該是那個 call dword... 指令形成的回傳地址吧,回傳地址是哪里,是那個 nop 指令的地址啊,結果不就是這個 nop 指令的長度么。轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/285152.html
標籤:匯編語言
上一篇:學python實戰第一天
下一篇:致CSDN論壇用戶