我正在(慢慢地)学习 x86 汇编,我想知道的一件事是:
我可以创建像 16 字节整数这样的变量数据类型吗?
还是我只能访问 db(8 位)、dw(2 字节)和 dd(4 字节)?
我正在(慢慢地)学习 x86 汇编,我想知道的一件事是:
我可以创建像 16 字节整数这样的变量数据类型吗?
还是我只能访问 db(8 位)、dw(2 字节)和 dd(4 字节)?
这取决于您使用的汇编程序。例如,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..