汇编语言——移位指令
基本概念
移位操作指令:移位操作指令是一组经常使用的指令,属于汇编语言逻辑指令中的一部分,它包括移位指令(含算术移位指令、逻辑移位指令),循环移位指令(含带进位的循环移位指令),双精度移位指令三大类。其功能为将目的操作数的所有位按操作符规定的方式移动1位或按寄存器CL规定的次数(0~255)移动,结果送入目的地址。目的操作数是8位(或16位)的寄存器数据或存储器数据。
基本格式
格式为:xxx oper1,CL/1
移位次数只能是1或者存放在CL里面。
移位指令
一、算术移位指令
1、算术左移指令SAL
功能:左移一次,最低位补0,最高位送入CF标志位,如图:
意义:左移n次,等于x2的n次幂。所以可用于有符号操作数做x2的n次幂运算。
2、算术右移指令SAR
功能:右移一次,最高位保持不变,最低位送入CF标志位,如图:
意义:右移n次,等于/2的n次幂。所以可用于有符号操作数做/2的n次幂运算。
二、逻辑移位指令
1、逻辑左移指令SHL
功能:同SAL,如图:
意义:同SAL
2、逻辑右移指令SHR
功能:右移一次,最高位补0.区别!最低位送入CF标志位。如图:
意义:用于实现无符号数/2的n次幂操作。
三、循环移位指令
1、循环左移指令ROL
功能:左移一次,左移前的最高位送入最低位以及CF.如图:
2、循环右移指令ROR
功能:右移一次,右移前的最低位送入最高位以及CF.如图:
3、带进位的循环左移指令RCL
功能:左移一次,左移前的最高位送入CF,CF的内容送入最低位.如图:
4、带进位的循环右移指令RCR
功能:右移一次,右移前的最低位送入CF,CF的内容送入最高位.如图:
四、双精度移位指令
1、双精度左移指令SHLD
2、双精度右移指令SHRD
参考文章
https://blog.csdn.net/qq_41627235/article/details/80368254
https://baike.baidu.com/item/%E7%A7%BB%E4%BD%8D%E6%8C%87%E4%BB%A4/10562725?fr=aladdin
汇编语言——移位指令相关推荐
- 剑指offer:汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。
汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果.对于一个给定的字符序列S,请你把其循环左移K位后的序列输出.例如,字符序列S="abc ...
- 汇编语言中各种移位指令的区别与联系
本文转载自:https://blog.csdn.net/richerg85/article/details/27558005 SHL.SHR.SAL.SAR: 移位指令 ;SHL(Shift Left ...
- 计算机组成原理移位图,逻辑运算和移位指令-计算机组成原理与汇编语言-电子发烧友网站...
3.4.1 逻辑运算和移位指令 1.逻辑运算指令 (1)NOT OPRD 该指令对操作数进行求反操作,然后将结果送回.操作数可以是寄存器或贮器的内容.该指令对标志位不产生影响. 例如: NOT AL ...
- 8086汇编语言精华笔记总结~
目录 第一章 汇编语言的基础知识 1.计算机系统概述 硬件(Handware) 软件(Software) 2.汇编语言介绍 3.数据表示 1. BCD码 2. ASCII码 3. 真值和机器数 4. ...
- ATT汇编语言与GCC内嵌汇编简介
AT&T汇编语言与GCC内嵌汇编简介 1 AT&T 与INTEL的汇编语言语法的区别 1.1大小写 1.2操作数赋值方向 1.3前缀 1.4间接寻址语法 1.5后缀 1.6指令 2 G ...
- 王爽著的《汇编语言》第3版笔记
王爽著的<汇编语言>(第3版)于2013年出版,虽然是2013年出版的,但书中部分内容感觉已过时: (1). 基于intel 8086 CPU介绍,intel 8086是英特尔公司上个世纪 ...
- 8086汇编语言命令速查与详解
http://note.sdo.com/u/1729301760/n/D4MQ0~jJXgEpnM0sI000Gx 汇编语言命令速查 一.数据传输指令 ──────────────────────── ...
- 8086汇编语言指令总结
根据工作需要,从基础学起,设计一台嵌入式CISC模型计算机,稍后上传. 先总结下,汇编语言指令,如下 1. MOV(传送) 指令写法:MOV target,source 功能描述:将源操作数sour ...
- GCC中的内嵌汇编语言
一.声明 虽然Linux的核心代码大部分是用C语言编写的,但是不可避免的其中还是有一部分是用汇编语言写成的.有些汇编语言代码是直接写在汇编源程序中的,特别是Linux的启动代码部分:还有一些则是利 ...
- 《IBM-PC汇编语言程序设计》(第2版)【沈美明 温冬婵】——第三章——自编解析与答案
3.1 给定(BX)=637DH,(SI)=2A9BH,位移量D=7237H,试确定在以下各种寻址方式下的有效地址是什么? (1) 立即寻址 (2) 直接寻址 (3) 使用BX的寄存器寻址 (4) 使 ...
最新文章
- 经验 | Pytorch还是Tensorflow?英伟达工程师帮你总结了
- ComplexHeatmap绘制热图(一)
- [bzoj 2456]mode
- config之安全(用户认证)
- python random包含尾部吗_你真的了解Python的random模块吗?
- python FTP服务器实现(Python3)
- 计算机单词修改是否正确,计算机组装必懂的53个单词及装机步骤51条.doc
- OpenCV学习(二十四 ):角点检测(Corner Detection):cornerHarris(),goodFeatureToTrack()
- 异常捕获try...catch... c#
- 怎么调出matlab的函数,matlab定义函数【搞定方法】
- 01 离散时间信号的时域表示
- 爬虫+pyecharts数据分析实例:当当网
- java的学习--第一章 java基础入门
- Ubuntu20.04 vscode + opencv4教程(2021.10.27完成)
- android自动画廊,Android3D画廊效果与自动轮播Banner
- Python练习实例---房贷计算机
- 搭建静态的响应式个人官网
- linux脚本课程设计通讯录,Linux简单电子通讯录源码
- Android 网易云信直播
- NC-Verilog仿真