8086逻辑运算和移位
来源:互联网 发布:如何优化前端页面 编辑:程序博客网 时间:2024/06/13 16:34
一、逻辑运算指令AND/OR/NOT/XOR/TEST(与,或,非,异或,测试)
①与,或,非,异或
这边大家都知道,这里不在重复,举几个例子:
AND AX,1000H ;AX中的16位数和1000H相与,结果送到AX中。
OR AX,00F0H ;AX中的值与00f0相或,结果在AX中
NOT AL ;AL中的内容求反码,结果在AL中
XOR AL,0FH ;AL和0fh相异或,结果在AL中
②测试TEST
测试指令执行AND指令操作,把OF,和CF标志清0,修改SF,ZF和PF标志,TEST指令不会送操作结果,而仅仅影响标志
TEST AL,01 ;如AL的最低位为1,则ZF=0,否则ZF=1
注意:
①在程序设计中,用AND指令对指定位清0
②OR指令对指定位置置1
③NOT指令常用来将某个数据取反码,再加上1便得到补码
④XOR常用来取反某位,0变为1,1变为0
⑤TEST指令用来检测指定位是1还是0
二、移位指令SAL/SAR/SHL/SHR/ROL/ROR/RCL/RCR
1)非循环移位指令SAL/SAR/SHL/SHR
算术移位指令SAL,SAR (A:算术)
逻辑移位指令SHL,SHR (H:逻辑)
注意:逻辑移位指令执行时,实际上是把操作数看成无符号数进行移位,所以,右移时最高位添0,;算术移位指令执行时,则将操作数看成有符号数进行移位,所以,右移时保持最高位的值不变,这里的最高位就是符号位。
所有移位指令执行时,都会影响标志位CF,OF,PF,SF,ZF.
所有移出的位都会在符号位里面。
2)循环移位指令ROL/ROR/RCL/RCR
循环分小循环和大循环,
小循环就是不带进位的循环:ROL/ROR
大循环就是带进位的循环:RCL/RCR
循环移位指令影响CF和OF标志。
按照移入的位设置进位标志CF
进行1次移位后,如果移位前的操作数最高位与移位后操作数的最高位不同(有变化),则OF=1;否则OF=0。
- 8086逻辑运算和移位
- 8086逻辑运算和移位
- 8086逻辑运算和移位
- 8086逻辑运算和移位指令
- 逻辑运算指令和移位指令
- 逻辑运算指令和移位指令
- 移位,逻辑运算实现加法,乘法和除法
- 只用逻辑运算和移位运算求两个数的平均数
- 【Java学习笔记】移位运算符和逻辑运算符
- 布尔运算 逻辑运算 移位运算
- 关于如何利用移位运算和逻辑运算来加速算法的小技巧
- [深入理解计算机系统]C语言中的位运算、逻辑运算和移位运算
- java 位运算符 位逻辑运算符 和 移位运算符
- 三,位操作类指令:包括逻辑运算指令,测试指令和移位指令
- 移位运算符 以及 位逻辑运算符
- Java 移位操作>>,<<,>>> 位逻辑运算符 &, |,~,^
- 逻辑运算之移位运算的学习
- 算术移位和逻辑移位
- 蓝桥网 算法训练 方格取数
- MAC下用homebrew安装及配置apache、php和mysql
- c++11多线程编程---线程安全队列
- 数据结构之非递归遍历和层次遍历(C语言版)
- Boost.Lockfree
- 8086逻辑运算和移位
- 安卓Andriod使用入门(一)【圆形Menu菜单】
- D-Link DP-LINK302打印服务器WIN7版软件
- 用友T3建立年度帐提示:对象名TAX_SB_NSSB_BJ_ZB无效
- Windows Server 2003修改系列号
- Windows2012微软取消了服务器桌面个性化选项
- 开发一款开源爬虫框架系列(三):聊聊并发包中的队列(Queue)
- TeamViewer ID 修改方法
- 用友软件修改辅助核算导致总账与辅助账对账不平问题解决方法