1

使用 x86 程序集,我需要定义一个填充了递增值的数组。目前,我将它定义为一个空数组,并在运行时通过循环它并设置我在每一步递增的值来填充它。这看起来像这样;

myArray DB 10 DUP (0)
...
xor ax, ax
xor bx, bx
mov cx, 10
initArray:
  mov myArray[bx], ax
  inc bx
  add ax, 43
loop initArray

数组的增量值和大小在运行前都是已知的,所以我可以通过直接在代码中定义值来做到这一点,就像这样......

myArray DB 0, 43, 86, 129, ...

...但这需要一段时间,尤其是长数组。

现在来回答这个问题;我想知道是否有办法在汇编中创建这样的数组,比如 C 中的参数化宏?如果您愿意,等效于“#define myArray(x) (x*43)”。

4

1 回答 1

0

我认为您的模式太先进了,预处理器无法支持。为什么不直接编写一个生成它的脚本并将其包含在您的构建过程中呢?您可以使用 TASM 的包含宏来包含它。

于 2012-07-28T22:56:59.740 回答