假设我在寄存器中有一个整数,我该如何打印?你能展示一个简单的示例代码吗?
我已经知道如何打印一个字符串,如“你好,世界”.
我正在Linux上开发.
解决方法:
如果您已经在Linux上,则无需自行进行转换.只需使用printf:
;
; assemble and link with:
; nasm -f elf printf-test.asm && gcc -m32 -o printf-test printf-test.o
;
section .text
global main
extern printf
main:
mov eax, 0xDEADBEEF
push eax
push message
call printf
add esp, 8
ret
message db "Register = %08X", 10, 0
请注意,printf使用cdecl calling convention,因此我们需要在之后恢复堆栈指针,即每个传递给函数的参数添加4个字节.