.equ '\0' это то же, что .equ '0'
В обоих случаях objdump -d test.s покажет вам 0x30 (ascii для числового представления текста ‘0’). Вопрос: это баг или фича?
401010: 3c 30 cmp $0x30,%al
Предположительно - это баг, т.к. .equ ‘\n’ - это 0xa:
Disassembly of section .text:
0000000000000000 <_start>:
0: 48 c7 c1 30 00 00 00 mov $0x30,%rcx
7: 48 c7 c7 30 00 00 00 mov $0x30,%rdi
e: 48 c7 c0 0a 00 00 00 mov $0xa,%rax
15: 48 c7 c0 3c 00 00 00 mov $0x3c,%rax
1c: 0f 05 syscall
сорс:
.equ NOL, '0'
.equ NUL, '\0'
.equ ABZAC, '\n'
.section .text
.globl _start
_start:
movq $NOL, %rcx
movq $NUL, %rdi
movq $ABZAC, %rax
movq $60, %rax
syscall