Есть ли в GAS что-нибудь похожее на $ token NASM? - PullRequest
2 голосов
/ 25 января 2012

Я только начал спускаться по дороге сборки и одним из первых "Привет, мир!" учебники, которые я нашел http://asm.sourceforge.net/intro/hello.html,, дают хороший способ псевдодинамического получения длины строки для ввода в системный вызов.

section .data
msg db 'Hello, World!",0xa
len equ $ - msg

Это прекрасно работает в nasm, и все собирается, связывается и работает без вопросов.

Проблема возникает, когда я пытаюсь найти способ сделать то же самое с газом.

Я понимаю, что $ в данном случае является токеном, который оценивает текущую позицию сборки http://www.csie.ntu.edu.tw/~comp03/nasm/nasmdoc3.html#section-3.5

Может ли это выражение ($ - msg) быть выражено в газе, или это синтаксический сахар исключительно для назма?

1 Ответ

2 голосов
/ 25 января 2012

Для x86 вы можете использовать "." таким же образом. например,

    .data

msg:
    .ascii "Hello, World!"
    .byte 0xa
    .equ len, . - msg

(Примечание: это не обязательно верно для других платформ. gas поддерживает много платформ, и различные аспекты синтаксиса различаются между ними!)

...