gpt4 book ai didi

linux - 如何在 x86_64 程序集中打印字符串

转载 作者:太空宇宙 更新时间:2023-11-04 10:00:06 25 4
gpt4 key购买 nike

<分区>

我对汇编比较陌生,并且编写了一个简单的程序来将数字 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 汇编中将字符串打印到屏幕上吗?

提前致谢!

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com