汇编Word ptr意思

时间:2017-02-18 12:59:51

标签: pointers assembly word mov

.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,word ptr num,AH = 04,AL = 33。

为什么呢?有人可以向我解释如何解决这个问题吗?

1 个答案:

答案 0 :(得分:8)

num dd 090F0433H

这在内存中定义了一个双字。由于x86使用很小的字节序,因此该双字的最低字节将存储在最低地址。您选择将此最低地址命名为“num”。

在记忆中:

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

当你写下mov ax, word ptr num时,你有效地要求在“num”地址检索仅最低字(2字节)。
你得到AL中的第一个字节33h和AH中的第二个字节04h,合并在一个寄存器中:AX=0433h

mov bx, word ptr num+2

这个工作方式类似,但只会提供最高的单词 你会得到BX=090Fh

mov cl, byte ptr num+1

您要求在“num”地址检索仅第二个字节 你会得到CL=04h