LINUX.ORG.RU

GNU Assembler - Как в макрос передать запятую?


0

0

Допустим есть такой код

 1  .macro mcrs par1, par2, par3
 2    addl $777, \par1
 3  .endm
 4
 5  .text
 6  .globl _start
 7  _start:
 8    sub $8, %esp
 9    mov $1, %eax
10    mcrs (%esp,%eax,4)
11    xor %ebx, %ebx
12    int $0x80

На 10 строчке вызывается макрос. as преобразует его так:

10    addl $777,(%esp

То есть он воспринимает запятые как разделители параметров.
Знает ли кто-нибуть, можно ли передавать запятые в макрос
как часть параметров?
Экранирование слешом/бэкслешом, подряд две запятые - не работает.

GAS LISTING mac1.s page 1 1 .macro mcrs par1, par2, par3 2 addl $777, \par1 3 .endm 4 mcrs "(%esp,%eax,4)" 4 0000 81048409 > addl $777,(%esp,%eax,4) 4 030000

io ★★
()
Ответ на: комментарий от io

$ as -alm mac1.s
GAS LISTING mac1.s                      page 1
 
 
   1                            .macro  mcrs par1, par2, par3
   2                            addl $777, \par1
   3                            .endm
   4                            mcrs "(%esp,%eax,4)"
   4 0000 81048409      > addl $777,(%esp,%eax,4)
   4      030000

io ★★
()
Ответ на: комментарий от io

Про кавычки чё-то не подумал.. Спасибо!

LinuxUser ★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.