2017-02-18 88 views
1
.data 
num dd 090F0433H 
.code 
mov ax, @data 
mov ds, ax 
mov ax, word ptr num 
mov bx, word ptr num+2 
mov cl, byte ptr num+1 

對於MOV AX,單詞PTR NUM,AH = 04,AL = 33大會字PTR意思

爲什麼?有人可以向我解釋如何解決這個問題嗎?

+2

幾乎任何新手引導,教程或書應該告訴你這是什麼意思。 –

回答

4
num dd 090F0433H 

這限定在存儲器中雙字。由於x86使用小字節序,這個DWORD的最低字節將存儲在最低的地址。你選擇了命名這個最低地址「num」。

在內存方面:

33h,04h,0Fh,09h 
^ 
| 
\num points here 
mov ax, word ptr num 

當你寫了這個mov ax, word ptr num您有效要求在 「編號」 地址檢索只有最低字(2個字節)。
你有在AL第一個字節33H和AH第2個字節04H,結合在一個寄存器:AX=0433h

mov bx, word ptr num+2 

這一件作品類似,但反而會給予只有最高字
你會得到BX=090Fh

mov cl, byte ptr num+1 

這裏你問在 「編號」 地址檢索只有2個字節
你會得到CL=04h