gpt4 book ai didi

linux - x86 汇编 linux 中如何解释系统调用

转载 作者:太空狗 更新时间:2023-10-29 12:03:03 26 4
gpt4 key购买 nike

我对为什么/如何在 Linux 环境中的 x86 程序集中打印值感到困惑。

例如,如果我想打印一个值,我会这样做:

mov eax, 4
mov ebx, 1
mov ecx, msg
mov edx msgLength
int 80h

现在我明白数值 4 会在中断后对 sys_write 进行系统调用。但我的问题是,4的意义是什么?是把十进制值4的地址加载到eax中吗?还是将值 4 加载到 eax 寄存器中?

阅读后我很困惑我可以使用以下指令将地址处的值传输到寄存器:

mov eax, [msg]

eax 现在将包含地址为 msg 的字节,但我猜想这种格式是 Not Acceptable :

mov eax, [4]

那么当我将 4 移到 eax 中打印一些东西时到底发生了什么?

最佳答案

只是将值(数字)4 加载到 eax 中,那里没有魔法。操作系统会查看 eax 中的值,以确定您想要的功能。系统调用号是标识您可以使用的各种可用内核函数的代码。

关于linux - x86 汇编 linux 中如何解释系统调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27736274/

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