假设我在寄存器中有一个整数,该如何打印?您可以显示一个简单的示例代码吗?
我已经知道如何打印一个字符串,例如“ hello,world”。
我正在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调用约定,因此我们需要在此之后恢复堆栈指针,即,将每个传递给函数的参数添加4个字节。
printf