.set label,.Противярлык: GNU AS - PullRequest
3 голосов
/ 04 июля 2019

В GNU Assembler текущий адрес представлен .

. Это позволяет установить константу / символ и использовать ее, как если бы это была метка, например:

.set offset, .
        .long 0x10

.globl _start
_start:
        # %eax should be 0x10
        movl offset, %eax

        # %ebx should be address of offset
        movl $offset, %ebx

        # Value at the address of offset should contain 0x20
        movl $0x20, offset

Приведенный выше код ведет себя точно так же, как если бы offset была меткой вместо символа.

Есть ли случаи, когда вышеприведенное не соответствует действительности, или label: действительно просто сокращение для .set label, .?

...