8086逻辑运算和移位
一、逻辑运算指令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逻辑运算和移位相关推荐
- 逻辑运算、移位运算、算术运算,整数和浮点数的加减法
文章目录 一.逻辑运算 1.1 位模式上的逻辑运算 1.2 模式层次上的逻辑运算 求反 使指定的位复位 对指定的位置位 使指定的位反转 二.移位运算 2.1 逻辑移位运算 逻辑移位 循环移位 2.2 ...
- 8086汇编语言寻址方式、基本指令和调试指令
一.80x86/Pentium 各种寻址方式 1.立即寻址 立即寻址方式下,操作数作为立即数直接包含在指令中,紧跟在操作码之后与其一起 存放在代码段区域.因此,立即数总是和操作码一起被存入 CPU 的 ...
- 汇编c语言基础教程编程达人,编程达人 《汇编、C语言基础教程》第一章 进制1.6 逻辑运算(连载)...
逻辑运算 逻辑运算在我们今后的编程中会经常使用到的. 本节必须掌握的知识点: u 掌握逻辑运算 计算机中所有的数据都是使用二进制保存,但是这些复杂的电路又是如何做运算的呢? 1.6.1[逻辑运算] 逻 ...
- python全栈开发学习 01
本节内容 01 计算机发展史简介 02 计算机的组成 03 计算机的基本原理 01 计算机发展史简介 计算机(computer,是一种用于高速计算的电子计算机器,可以进行数值计算,又可以进行逻辑计算, ...
- 微型计算机出版时间,《微型计算机技术》低价购书_陈慈发 主编_计算机与互联网_孔网...
本书以80x86微处理器系列微型计算机为背景,以8086为主线,全面系统地讲述了微型计算机的基本组成.工作原理和接口技术.全书共分9章,包括:微型计算机概论.微处理器系统结构.指令系统.汇编语言程序设 ...
- 微机期末速通---不挂科版
寄存器一格放8位一个字节 伪指令和指令的区别在于,每一条指令必须生成机器代码,然后在程序运行期间由CPU来执行其操作:而伪指令是在汇编期间由汇编程序执行的操作命令,除了数据定义及存储器分配伪指令分配存 ...
- 微机原理(FPGA设计CPU理解)
目录 8088内部寄存器 通用寄存器 控制寄存器 段寄存器 内存储器管理 内存地址变换 段寄存器 逻辑段与逻辑地址 堆栈及堆栈段的使用 指令与指令系统 指令的格式 指令中操作数 立即数 寄存器操作数 ...
- io端口与ion内存
木子你妹 博客园 首页 新随笔 联系 管理 订阅 随笔- 109 文章- 12 评论- 8 <摘录>io端口和io内存 linux中的 IO端口映射和IO内存映射 (一)地址的概念 ...
- 汇编(二)——微机原理与接口
8088系列微处理器 8086/8088 区别 8088外部总线宽度8位,8086为16位 拐角都是40个拐角,但是有一个拐角上8088中IO/M‾=0IO/\overline{M}=0IO/M=0表 ...
最新文章
- 深入理解python之self
- Vue.JS项目中二级路由下刷新浏览器仍呈现当前路由的实现方案
- java字节码指令简介(仅了解)
- OpenStack基础知识-virtualenv工具详解
- 如何利用Shader来渲染游戏中的3D角色
- matlab怎么定义矩阵变量_MATLAB小技巧及策略制定实例
- 力扣20. 有效的括号(JavaScript)
- 深入理解Date对象
- 39. 二叉树的深度(C++版本)
- 101.对称二叉树(力扣leetcode) 博主可答疑该问题
- 资源分享 | 网易云课堂价值 399 的 office 三合一自学教程
- 最简单!阿里云服务器采用 LNMP一键安装包 配置 Linux+Nginx+Mysql+PHP
- 关于 Nginx 0day 漏洞,需要采取哪些措施?
- python爬虫爬取qq音乐巅峰榜热歌歌词,jieba中文分词,词云展示
- JavaScript运算规则
- 操作系统--6设备管理
- 隐藏高德地图左下角LOGO
- linux常用命令_Linux常用命令总结
- MJ对2008年10月6日大盘预测(节后第一天)
- 霍尔电流传感器CH701/CH701W应用于电动汽车模式2充电的装置