gpt4 book ai didi

assembly - 为什么为 "inc qword [rsp]"生成此机器代码?

转载 作者:行者123 更新时间:2023-12-04 18:11:38 25 4
gpt4 key购买 nike

考虑以下x64 NASM语法程序集:

inc qword [rax]
inc qword [rcx]
inc qword [rdx]
inc qword [rbx]
inc qword [rsp]
inc qword [rbp]
inc qword [rsi]
inc qword [rdi]

与nasm组装(并与gnu ld链接)后, objdump -d报告以下内容:
4000b0:       48 ff 00                incq   (%rax)
4000b3: 48 ff 01 incq (%rcx)
4000b6: 48 ff 02 incq (%rdx)
4000b9: 48 ff 03 incq (%rbx)
4000bc: 48 ff 04 24 incq (%rsp)
4000c0: 48 ff 45 00 incq 0x0(%rbp)
4000c4: 48 ff 06 incq (%rsi)
4000c7: 48 ff 07 incq (%rdi)

因为设置了mod字段,所以为 inc qword [rbp]生成的代码很有意义。但是,我在组装 24时不知道 inc qword [rsp]的来源。我一直在查看 coder64 #xFF,但没有任何东西提示我应该生成24。我显然在更高层次上缺少某些东西。

最佳答案

没有[RSP] ModR/M字节。因此它使用[sib] ModR/M。 sib表示有一个sib byte,而0x24是RSP的sib字节。

关于assembly - 为什么为 "inc qword [rsp]"生成此机器代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12655940/

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