【发布时间】:2017-11-08 17:12:24
【问题描述】:
我想这样做:
i=0
.rept 3
add rcx,[a?(i*2+1)]
i=i+1
.endr
它应该输出这个:
add rcx,[a1]
add rcx,[a3]
add rcx,[a5]
我找不到任何解决此问题的方法。我不希望它在宏定义中。
【问题讨论】:
-
你在用 gcc 构建你的 asm 吗?如果是这样,您还可以使用带有 CPP 宏的 C 预处理器将两个 args 粘贴在一起。除非它发生在
gas看到.rept之前不起作用。嗯。 -
我认为不使用宏是不可能的。
-
我很好奇你为什么不能使用宏?
-
@MichaelPetch 很难确切地说出一大堆便便 binutils 有多少,但我认为不使用宏就无法在此处进行所需的字符串操作。
-
@MichaelPetch 我编辑了我的问题。我不认为你可以用宏来做到这一点。 请证明我错了:)
标签: assembly macros x86-64 gnu-assembler