sys_write не печатает сообщение к терминалу

Я пытаюсь исследовать Ассемблер GNU, использующий этот пример: https://0xax.github.io/asm_1/

Мой код main.s

 .data
 message: .ascii "ASSEMBLY OUTPUT"

.text
.globl _start

_start:
movq $1, %rdi
movq $1, %rax
movq $15, %rdx
movq $message, %rsi
syscall
movq $60, %rax
movq $0, %rdi
syscall

Подготовка к командной строке:

как-g-o main.o main.s

ld-o основной main.o

Теперь, я работаю./основной, Но это ничего не печатает, и терминал ожидает моя следующая команда.

Что идет не так, как надо?

В GNU числа Отладчика были успешно сохранены в регистрах.

Я вижу, что результат первого syscall "-14" в ПОТЯГИВАЕТСЯ.

0
задан 7 December 2019 в 12:26

1 ответ

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

.data
message: .ascii "\nASSEMBLY OUTPUT\n\n"
msglen = . - message

.text
.globl _start

_start:
movq $1, %rdi
movq $1, %rax
movq $msglen, %rdx
movq $message, %rsi
syscall
movq $60, %rax
movq [110], %rdi
syscall
2
ответ дан 21 December 2019 в 23:38

Другие вопросы по тегам:

Похожие вопросы: