Работает следующий код. Однако он не работает, если я удаляю строку # 1. Я не понимаю, почему хранение $ 0 в% rax заставляет его работать.Вызов printf в x86
.section .data
msg: .ascii "Hello world!\n"
.text
.globl main:
main:
movq $msg, %rdi
movq $0, %rax #1
call printf
Следующий код ошибки SEG
.section .data
msg: .ascii "Hello world!\n"
.text
.globl main:
main:
movq $msg, %rdi
call printf
я прочитал, что, чтобы сделать вызов SYS целое значение, что обозначает вызов требуется в% бараков. Я сделал это с помощью write(), и он работал красиво. Тем не менее, примеры, которые я нахожу для printf, похоже, не имеют этого требования.
Любая помощь с этим вопросом оценивается. Я могу объяснить больше, если необходимо