我读了Kip Irvine 的《x86 汇编语言》一书。在第 85 页,他写了以下关于为什么要使用符号的内容:
使用
DUP
运算符:Section 3.4.4
展示了如何使用DUP
运算符为数组和字符串创建存储。使用的计数器DUP
应该是一个符号常量,以简化程序维护。在下一个示例中,如果已定义 COUNT,则可以在以下数据定义中使用它:array dword COUNT DUP(0)
我不明白这个命令在做什么。有人可以向我解释这是什么意思吗?
我读了Kip Irvine 的《x86 汇编语言》一书。在第 85 页,他写了以下关于为什么要使用符号的内容:
使用
DUP
运算符:Section 3.4.4
展示了如何使用DUP
运算符为数组和字符串创建存储。使用的计数器DUP
应该是一个符号常量,以简化程序维护。在下一个示例中,如果已定义 COUNT,则可以在以下数据定义中使用它:array dword COUNT DUP(0)
我不明白这个命令在做什么。有人可以向我解释这是什么意思吗?
这很简单:
.const
COUNT equ 10 ; sets COUNT to a value of 10 or whatever
.data
array dword COUNT DUP(0) ; creates an array of DWORDs/4-byte values
因此array
由DWORD
等于“0”(4*10 = 40 字节)的 COUNT(=10) 个值组成。
该DUP
命令只是说前面的数据类型“重复”了 COUNT 次。因此,一个array
of DWORD
s DUP
ed byCOUNT
会产生一个名为的地址,array
后跟 (sizeof(DWORD)*COUNT) 个字节,初始化为DWORD
s,值为 0。