Строки и вывод данных
Статичное определение строки и длины (для последующего вывода)
section .data
msg db "Hello!",10,0
msg_len equ $ - msg ; $ - текущая позиция ассемблера
Использование системного вызова
global main
section .data
msg db "Hello",10,0
msg_len equ $ - msg
section .text
main:
mov rax, 1
mov rdi, 1
mov rsi, msg
mov rdx, [msg_len] - 1
syscall
ret
Использование функции C
global main
extern printf
section .data
fmtint db "Result: %d",10,0
fmtstr db "Outstring: %s",10,0
msg db "for textout",0
...
section .text
main:
...
; вывод числа
mov rsi, <переменная> ; в rsi то что нужно вывести
mov rax, 0
mov rdi, fmtint
call printf
; вывод строки
mov rsi, msg
mov rax, 0
mov rdi, fmtstr
call printf