有没有办法在x86汇编中使用DUP定义参数化变量?

时间:2012-06-06 23:28:16

标签: arrays string assembly macros x86

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

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)”,如果你愿意的话。

1 个答案:

答案 0 :(得分:0)

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