加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

windows – ASM x64中40h REX操作码的用途是什么?

发布时间:2020-12-14 05:34:34 所属栏目:Windows 来源:网络整理
导读:我一直在努力了解AS40 x64指令的0x40 REX操作码的用途.例如,在Kernel32.dll的这个函数序言中: 如您所见,他们使用push rbx作为: 40 53 push rbx 但仅使用53h操作码(不带前缀)也会产生相同的结果: 根据this site,REX前缀的布局如下: 所以40h操作码似乎没有
我一直在努力了解AS40 x64指令的0x40 REX操作码的用途.例如,在Kernel32.dll的这个函数序言中:

enter image description here

如您所见,他们使用push rbx作为:

40 53      push        rbx

但仅使用53h操作码(不带前缀)也会产生相同的结果:

enter image description here

根据this site,REX前缀的布局如下:

enter image description here

所以40h操作码似乎没有做任何事情.有人可以解释它的目的吗?

解决方法

04xh字节(即040h,041h … 04fh)确实是REX字节.正如您在问题中列出的那样,下半字节中的每个位都有含义.值040h表示REX.W,REX.R,REX.X和REX.B都为0.这意味着添加该字节对该指令没有任何作用,因为您没有覆盖任何默认的REX位,并且它不是带有AH / BH / CH / DH作为操作数的8位指令.

此外,X,R和B位都对应于一些操作数.如果指令不消耗这些操作数,则忽略相应的REX位.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读