0

我正在(慢慢地)学习 x86 汇编,我想知道的一件事是:

我可以创建像 16 字节整数这样的变量数据类型吗?

还是我只能访问 db(8 位)、dw(2 字节)和 dd(4 字节)?

4

1 回答 1

1

这取决于您使用的汇编程序。例如,MASM 还支持DF(6 字节)、DQ(8 字节)和DT(10 字节)。

对于较大的变量,创建一个数组或结构(例如 sixteen_bytes: DQ 2 DUP(0))。

在 MASM 中使用结构/联合的示例:

LARGE_INT STRUCT
    UNION
        STRUCT
            LowPart dd ?
            HighPart dd ?
        ENDS
        QuadPart dq ?
    ENDS
LARGE_INT ENDS

然后,您可以创建一个LARGE_INT使用实例:

foo LARGE_INT <>

并像这样使用它:

fistp qword ptr foo.QuadPart  ; write to all 64 bits of foo
mov eax, foo.LowPart          ; read from the lower 32 bits of foo
; ..and so on..
于 2013-10-16T15:05:20.050 回答