gpt4 book ai didi

assembly - 如何将 GNU GAS 宏参数与其他标记连接起来形成单个标签?

转载 作者:行者123 更新时间:2023-12-02 20:15:26 24 4
gpt4 key购买 nike

我想使用气体宏在汇编函数中动态创建一组标签。我想做这样的事情:

 .macro set_up_jumptab_entry prefix, from=0, to=10     .quad \prefix_\item     .if \to-\from     set_up_jumptab_entry \prefix,"(\from+1)",\to     .endif .endm set_up_jumptab_entry myfunc 0 10

这里\prefix_\item 类似于 myfunction_7。现在,我可以找到很多递归调用的示例,但我还没有找到涉及传入宏参数的标签串联之一。 Gas 的记录非常少,所以回答这个问题对我来说很困难。

  1. 您可以将宏的参数与其他标记连接起来以形成单个标记吗?
  2. 您最喜欢的气体 assembly 商引用资料是什么?

最佳答案

类似的事情

\argA\()\argB :

should create a label composed by argA and argB.

EDIT

Testing, \() seems to be not necessary; the test code was:

    .file   "test.c"

.macro prova argA, argB
\argA\argB :
.endm
.text
.globl main
.type main, @function
main:
leal 4(%esp), %ecx
andl $-16, %esp
pushl -4(%ecx)
pushl %ebp
movl %esp, %ebp
pushl %ecx
movl $0, %eax
popl %ecx
popl %ebp
leal -4(%ecx), %esp
prova abc, def
jmp abcdef
ret
.size main, .-main
.ident "GCC: (GNU) 4.3.2"
.section .note.GNU-stack,"",@progbits

这只是一个最小 C 代码的 gcc -S test.c 输出(懒惰:D)。 (prova 在意大利语中意为测试)

关于assembly - 如何将 GNU GAS 宏参数与其他标记连接起来形成单个标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2990413/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com