gpt4 book ai didi

c - 需要帮助理解此函数中的 movzbl 调用

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

所以我试图通过查看此处的程序集来编写一些 C 代码:

pushl   %ebp
movl %esp, %ebp
movl 12(%ebp), %eax
addl 8(%ebp), %eax
movzbl (%eax), %eax
movsbl %al,%eax
popl %ebp
ret

我看到我有两个变量,它们被加在一起,然后我在查看函数何时开始调用 movzbl 和 movesbl 时迷路了。这是怎么回事?

最佳答案

相应的 C 函数类似于

char fn(char * string, int index)
{
return string[index];
}

具体来说,movzbl 指令获取存储在两个参数之和处的字节,用零填充它,并将其存储到 eax 中。 movsbl 指令获取 eax 的最低字节,对其进行符号扩展,并将结果存储回 eax。

关于c - 需要帮助理解此函数中的 movzbl 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24253314/

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