assembly 2例汇编word ptr

xwbd5t1u  于 3个月前  发布在  其他
关注(0)|答案(1)|浏览(61)

这里,第一个代码使用dd变量的+ 1来访问它的第二个字节,我理解,但第二个代码我使用了一个具有相同符号的数组+ 1,这让我想到它是数组中的第二个元素,结果真的是第二个数组元素的第一个字节吗?或者它将是第一个元素,但它的第二个字节?
第一个代码:

.data
    num dd 090F0433H
    .code
    mov ax, @data
    mov ds, ax
    mov ax, word ptr num + 1

字符串
第二个代码:

.data
    num dd 090F0433H,081234FEH
    .code
    mov ax, @data
    mov ds, ax
    mov ax, word ptr num + 1

vlf7wbxs

vlf7wbxs1#

是的,它将是第一个元素,但它的第二个字节。
num可以扩展为

num db 33h, 04h, 0Fh, 09h,
       FEh, 34h, 12h, 08h

字符串
num的内存分配将是在这两个代码中,寄存器ax已经被设置为[num + 1],那么我们有ax的值是

ax db 0Fh, 04h


ax dw 0F04h


和全内存转储是num + 1ax将是0Fh04h33h,.
两个代码都是以word ptr的形式移动的,所以ax的值将是0F04h,所以两个代码相等。

相关问题