失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > Intel 64/x86_64/IA-32/x86处理器 - 通用指令(3) - 逻辑指令/移位指令

Intel 64/x86_64/IA-32/x86处理器 - 通用指令(3) - 逻辑指令/移位指令

时间:2019-06-10 04:22:55

相关推荐

Intel 64/x86_64/IA-32/x86处理器 - 通用指令(3) - 逻辑指令/移位指令

Logical Instructions

逻辑指令执行基本的“与、或、非、异或”操作,操作数可以是字节,单字和双子值。

对与NOT指令与NEG指令做一点说明。

NOT指令对操作执行按位“取非”操作,这种操作也被称为1的补码求负操作(国内译做反码)。例如对4位的二进制0010B数执行NOT 0010B (对应十进制+2)之后的结果是 1101(这种表示对应的十进制数是-2),这种表示法被称为1的补码,因为将前面的+2与-2相加,会得到1111(表示十进制的-0),而0000也表示十进制+0,这样在1的补码表示法中,十进制0由两种表示法1111和0000。1的补码表示法常用于网络协议报头中计算校验和。

NEG指令对操作数执行2的补码求负操作。例如NEG 0010B(对应十进制+2)会得到1110。在2的补码表示法中1110B对应的十进制数是-2。2的补码表示法中十进制0只有一种表示法,即0000B;这种表示法常用于计算机的处理器中表示数值。

所以对同一个操作数(例如0010B),NOT指令与NEG指令执行的结果是不相同的。

Shift and Rotate Instructions

移位与循环移位指令对操作数按位执行移位与循环移位操作,操作时可以是字节,单字和双字。

对SHLD与SHRD指令做一点说明。这两条指令都是3操作数指令,将源操作数中的某些比特位移到目标操作数中。SHLD指令的操作如下图所示。SHRD的操作类似(TODO: 以后补上)。

如果觉得《Intel 64/x86_64/IA-32/x86处理器 - 通用指令(3) - 逻辑指令/移位指令》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。