<分区>
我对汇编比较陌生,并且编写了一个简单的程序来将数字 1 到 10 打印到屏幕上。然而,在我编写它后不久,我意识到我需要将它从 x86 程序集转换为 x86_64 程序集才能在我的主工作站上运行。
大部分转换都进行得相当顺利,除了一个 block ,它在屏幕上打印数字,一旦它们被转换为字符串。
在 x86 中,要打印的代码是:
mov edx, eax
pop eax
mov ecx, eax
mov ebx, 1
mov eax, 4
int 80h
当我将它转换为 x86_64 时,我试图通过简单地更改寄存器名称来使其工作。
mov rdx,rax
pop rax
mov rcx, rax
mov rbx, 1
mov rax, 4
int 80h
在程序中,rax保存的是要打印的ASCII码的值。
当程序现在运行时,在 64 位环境中,没有任何输出打印到屏幕上,程序完成执行,没有任何错误或消息。
有什么方法可以在 x86_64 汇编中将字符串打印到屏幕上吗?
提前致谢!