1. 定义:
(1) OR是或运算,A OR B的结果:当A、B中只要有一个或者两个都为1时,结果为1,否则为0。
    原则:两个输入有真则真。
    汇编指令OR,称为逻辑包含“或”。
(2) XOR是异或运算,A XOR B的结果:当A、B两个不同时结果为1,否则为0。
    原则:两个输入相异则真。
    汇编指令XOR,称为逻辑互斥“或”(注:使用的是exclusive的第二个字母缩写,因为e已被其它缩写占用)。
2. OR 和 XOR的应用示例:
执行这2条指令(还有逻辑AND指令也是一样)后会将结果存入目标寄存器,对标志位的影响为:会清除溢出标志位(OF)和进位标志位(CF); 符号标志位(SF), 0标识位(ZF)和奇偶标志位(PF)视结果而定。辅助进位标志(AF)未定义。
示例:
TestAsm proc
    xor rax,rax  ;清除eax的内容
    mov rcx,0FFFFFFFFFFFFFFFFH   ; 置为全1
    or rax,rcx   ; ecx的内容存入eax
    ret
TestAsm endp

说明:
(1) 执行 xor rax,rax 指令前,标志寄存器状态:
OV = 0 UP = 0 EI = 1 PL = 0 ZR = 0 AC = 0 PE = 1 CY = 0
(标识位请看这里:标识寄存器状态说明)
rax的状态:RAX = 000000EB55796C00,这是一个随机值
(2) 执行 xor rax,rax 指令后,标志寄存器状态:
OV = 0 UP = 0 EI = 1 PL = 0 ZR = 1 AC = 0 PE = 1 CY = 0
ZR=1,表示操作结果的目标值为0,看rax的值:RAX = 0000000000000000,xor后值存入目标寄存器。
(3) 执行mov rcx,0FFFFFFFFFFFFFFFFH指令后,RCX = FFFFFFFFFFFFFFFF,标志寄存器状态没有变化。
(4) 执行or rax,rcx指定后,rax = FFFFFFFFFFFFFFFF,标志寄存器状态为:
OV = 0 UP = 0 EI = 1 PL = 1 ZR = 0 AC = 0 PE = 1 CY = 0
目标寄存的值rax = FFFFFFFFFFFFFFFFH,因为ZR = 0,表示不为0。

因此,根据其特点,常用or rax,rax 写法(相同寄存器作源操作寄存器,又作目标寄存器)来清0标识寄存器的溢出标志和进位进志(在进行四则运算前),因为它不改变寄存器的值,仅改变标识寄存器的状态;常用xor rax,rax写法来清0寄存器的值。

汇编语言逻辑“或”指令与应用示例:OR (Logical Inclusive OR)和 XOR (Logical Exclusive OR)相关推荐

  1. 汇编语言符号扩展指令及应用示例

    1. 什么是符号扩展?为什么要用符号扩展? 所谓符号扩展,就是将数据的表示大小加倍,数值仍保持不变,即将符号位扩展到同样大小的寄存器空间中去,由两部分构成一个比原值表示大一倍的数.正数必须要0扩展,负 ...

  2. C语言逻辑左移指令shl怎么用,汇编语言SHL(左移)指令:将操作数逻辑左移一位...

    SHL(左移)指令使目的操作数逻辑左移一位,最低位用 0 填充.最高位移入进位标志位,而进位标志位中原来的数值被丢弃: 若将 1100 1111 左移 1 位,该数就变为 1001 1110: SHL ...

  3. 汇编语言 AND逻辑与指令

    AND逻辑与指令 指令格式:AND 目的, 源 指令功能:对两个操作数进行按位逻辑与操作,结果送回目的操作数,即目的←目的^源 它主要用于操作数的某些保留(和"1"相与),而使某些 ...

  4. std在汇编语言是什么指令_汇编语言指令

    汇编指令英文全称 1.通用数据传送指令 MOV----> move MOV dest,src ;dest←src MOV指令把一个字节或字的操作数从源地址src传送至目的地址dest. MOVS ...

  5. 汇编语言—常见汇编指令汇总

    (1)mov指令 mov    寄存器 ,数据                如:mov ax ,8 mov   寄存器,寄存器              如:mov ax,bx mov   寄存器, ...

  6. #有关汇编语言的org指令(许多不为人知的故事):

    有关汇编语言的org指令(许多不为人知的故事): 也许不知道是从什么时候开始,java这种高级语言已经占领市场,连我毕业的大学,现在都不再教C语言的内容了,为了就业率,但是其实作为一个程序员,我表示深 ...

  7. std在汇编语言是什么指令_汇编语言的所有指令

    汇编语言的所有指令 数据传送指令集 MOV 功能 : 把源操作数送给目的操作数 语法 : MOV 目的操作数 , 源操作数 格式 : MOV r1,r2 MOV r,m MOV m,r MOV r,d ...

  8. 关于循环位移指令ROL,RCL ;逻辑右移指令 SHR , 算术右移指令 SAR

    关于循环位移指令ROL,RCL ;逻辑右移指令 SHR , 算术右移指令 SAR 书上说 ROL的功能为,对操作数进行循环左移,每执行一次,把最高位移到最低位,同时还把最高位移到CF 那么 CF=0 ...

  9. 汇编语言---跳转指令ja、jb、jl

    汇编语言-跳转指令ja.jb.jl ~~~ JE ;等于则跳转 JNE ;不等于则跳转JZ ;为 0 则跳转 JNZ ;不为 0 则跳转JS ;为负则跳转 JNS ;不为负则跳转JC ;进位则跳转 J ...

最新文章

  1. div自己移除自己/移除div下面的所有子元素
  2. 拦截器获取请求参数post_「SpringBoot WEB 系列」RestTemplate 之自定义请求头
  3. java8编译_为什么在Java7中编译而在Java8中编译?
  4. java 手势识别_java – 如何在Android中实现手势识别
  5. XML CDATA的作用
  6. 部署Docker----解决删除none镜像问题
  7. Java Memcached的使用
  8. 改版更新后的领英职场不能搜索开发客户怎么办?两种方法加一个工具解决
  9. Python金融数据挖掘 第11章 复习思考题3 某年各省级行政区环境污染状况的统计数据(已经过标准化处理),现采用K均值聚类方法,编写Python程序将省级行政区分成4类。
  10. 软件公司之间合作的保密协议范本
  11. 计算机进入桌面黑屏怎么办,电脑进入桌面后黑屏如何修复 电脑经常进入桌面之后黑屏的处理方法...
  12. fc安卓模拟器_[10月26号]VirtuaNES FC游戏模拟器:附300个无敌版Roms游戏!非常受欢迎的FC游戏模拟器...
  13. 电脑bios进入方法介绍
  14. stm32视频教程分享:心率检测仪的设计与实现
  15. DL notes 05:深度学习相关的优化基础(入门级)
  16. 公众号资源方法,数据集,绘图学习持续更新记录~~~
  17. 未来的技术型人才,社会杰出人物的java人生实时记录
  18. [转载] 晓说——第30期:海上霸主航母(下)
  19. 如何分辨一个公司是玩你还是爱你?
  20. 2018.7.17 绍兴一中模拟赛 解题报告

热门文章

  1. 洛谷 P2327 [SCOI2005]扫雷 解题报告
  2. Python 800 道习题 (°ー°〃) 测试你学废了嘛
  3. 利用LDA和主题模型发现9种冠状病毒研究趋势
  4. 尚硅谷大数据开发Day04
  5. 数字城市的意义有哪些?如何构建数字城市?
  6. 关于手机联系人的中文字母排序问题
  7. 夏磊2019MySQL高级学习笔记
  8. 网络营销促销的方式有哪些?
  9. 计算机科学导论参考文献,物联网毕业论文参考文献精选
  10. Python 有趣的囚犯问题