【发布时间】:2012-06-06 23:28:16
【问题描述】:
使用 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)”。
【问题讨论】:
-
你用的是什么汇编程序? MASM、NASM、TASM 等
-
对了,忘记说了。我正在使用 TASM 4.1。
-
好吧,既然您已经编写了代码,我只想查看宏的 TASM 规范并将其合二为一。
标签: arrays string assembly macros x86