Почему .equ
директива не работает в газе таким образом:EQU директива в сборе ГАЗ
.equ Mark64, 8(%rsi)
в то время как он работает в этом (примечание: .text
раздел, где Mark32
находится, устанавливается в г/ш в этот случай):
Mark32 EQU DWORD PTR [ESI + 4]
Как я могу сделать Mark64
работу в ГАС (.set
также не работает)?
Заранее благодарен!
Используйте предварительно обработанную сборку и '# define'. Альтернативно, только определите смещение, например '.equ Mark64, 8', тогда вы можете сделать« movl Mark64 (% rsp),% eax' например. – Jester
@ у вас есть? Это не работает, потому что '.equ' определяет символ, а не замену текста, а' 8 (% rsp) 'не является допустимым значением для символа. – Jester
@fuz, да, я пробовал. запятая здесь является типичной ошибкой. все еще не работает –