博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Intel 64/x86_64/IA-32/x86处理器 - 通用指令(3) - 逻辑指令/移位指令
阅读量:2043 次
发布时间:2019-04-28

本文共 902 字,大约阅读时间需要 3 分钟。

Logical Instructions

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

指令

描述

AND

对操作数执行按位逻辑“与”操作

OR

对操作数执行按位逻辑“或”操作

XOR

对操作数执行按位逻辑“异或”操作(exclusive OR)

NOT

对操作数执行按位逻辑“非”操作

 

对与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

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

指令

描述

SAR

算术右移(每右移1比特位,等价于有符号数除以2)

SHR

逻辑右移(每右移1比特位,等价于无符号数除以2)

SAL/SHL

算术左移/逻辑左移(每左移1比特位,等价于数值乘以2)

SHRD

双精度右移

SHLD

双精度左移

 

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

指令

描述

ROR

循环右移

ROL

循环左移

RCL

带进位的循环左移

RCR

带进位的循环右移

 

转载地址:http://gdpof.baihongyu.com/

你可能感兴趣的文章
Leetcode C++ 《第202场周赛》
查看>>
云原生 第十二章 可观测性:监控与日志
查看>>
Leetcode C++ 《第203场周赛》
查看>>
云原生 第十三章 Kubernetes网络概念及策略控制
查看>>
《redis设计与实现》 第一部分:数据结构与对象 || 读书笔记
查看>>
《redis设计与实现》 第二部分(第9-11章):单机数据库的实现
查看>>
算法工程师 面经2019年5月
查看>>
搜索架构师 一面面经2019年6月
查看>>
稻草人手记
查看>>
第一次kaggle比赛 回顾篇
查看>>
leetcode 50. Pow(x, n)
查看>>
leetcode 130. Surrounded Regions
查看>>
【托业】【全真题库】TEST2-语法题
查看>>
博客文格式优化
查看>>
【托业】【新托业全真模拟】疑难语法题知识点总结(01~05)
查看>>
【SQL】group by 和order by 的区别。
查看>>
【F12】谷歌浏览器--前台效果可以在不访问服务器的前提下直接改样式看效果是否是预期值。...
查看>>
【Python】详解Python多线程Selenium跨浏览器测试
查看>>
Jmeter之参数化
查看>>
Shell 和Python的区别。
查看>>