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

Arrays 有没有办法在x86汇编中使用DUP定义参数化变量?,arrays,string,assembly,macros,x86,Arrays,String,Assembly,Macros,X86,使用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 增量值和数组的大小在运行前都是已知的,所以我可以通过直接在代码中定义值来实现,如下所示 m

使用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)”。

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

您使用的是什么汇编程序?MASM,NASM,TASM等等,啊,对了,忘了提这个。我使用的是TASM 4.1。鉴于您已经编写了代码,我只需查看TASM宏规范并将其转换为一个。