2

我读了Kip Irvine 的《x86 汇编语言》一书。在第 85 页,他写了以下关于为什么要使用符号的内容:

使用DUP运算符:Section 3.4.4展示了如何使用DUP运算符为数组和字符串创建存储。使用的计数器DUP应该是一个符号常量,以简化程序维护。在下一个示例中,如果已定义 COUNT,则可以在以下数据定义中使用它:

array dword COUNT DUP(0)

我不明白这个命令在做什么。有人可以向我解释这是什么意思吗?

4

1 回答 1

4

这很简单:

.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 

因此arrayDWORD等于“0”(4*10 = 40 字节)的 COUNT(=10) 个值组成。

DUP命令只是说前面的数据类型“重复”了 COUNT 次。因此,一个arrayof DWORDs DUPed byCOUNT会产生一个名为的地址,array后跟 (sizeof(DWORD)*COUNT) 个字节,初始化为DWORDs,值为 0。

于 2016-04-09T17:58:39.137 回答