section .data
%macro print 2
mov rax ,1 ; function call
mov rdi ,1 ; device
mov rsi ,%1 ; source of data
mov rdx ,%2 ; length of data
syscall ; system call
%endmacro
答案 0 :(得分:0)
宏使用sys_write()
的正确值设置64位调用约定的寄存器,然后执行syscall
。
此外,宏有两个参数(macro print 2
),在代码中由%1
和%2
表示,它们被移动到RSI
和{{1表示存储要打印的字符串的地址和字符串的长度。