2017-02-18 6 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 

を意味ptrを?誰かがこれを理解する方法を私に説明することはできますか?アセンブリのWordのmov斧、単語PTR num個、AH = 04、AL = 33</p> <p>なぜについて

+2

初心者のガイド、チュートリアル、または書籍は、それが何を意味するかについて話しているはずです。 –

答えて

4
num dd 090F0433H 

これは、メモリ内のダブルワードを定義します。 x86ではほとんどエンディアンを使用しないため、このdwordの最下位バイトは最下位アドレスに格納されます。あなたはこの最低のアドレス "num"の名前を選んだ。メモリで

:あなたはこのmov ax, word ptr numを書いたとき

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

あなたは効果的に "NUM" のアドレスでのみ最低単語(2バイト)を取得するように依頼しました。
ALに第1バイトの33h、AHに第2バイト04hがあり、1つのレジスタ:AX=0433hに結合されています。

mov bx, word ptr num+2 

この1つは同様に動作しますが、代わりにのみ最高の単語を与えるだろう。
あなたはここにBX=090Fh

mov cl, byte ptr num+1 

を得るでしょう、あなたは "NUM" のアドレスでのみ2バイト目を取得するように依頼しました。
CL=04hが表示されます。

関連する問題