汇编移位指令SHR,SAR,SAL/SHL,ROR,ROL,RCR,RCL

article/2025/10/7 8:23:10

目录

逻辑右移SHR

算数右移SAR(重点)

算数/逻辑左移SAL/SHL(完成的操作都一样)

循环右移ROR

循环左移ROL

带进位循环右移RCR

带进位循环左移RCL

总结

例题


移位指令为双操作数指令,用于将目的的操作数中的二进制数移位。

目的操作数只能是寄存器或内存

源操作数为移位的次数,只能是CL寄存器或者立即数1

移动完,CL的值不变

逻辑右移SHR

shift right

 

无符号数除以2

MOV AL,10
SHR AL,1
;0000 1010(10)
;移动后
;0000 0101;(5) CF=0  SHR是对于无符号数,开头直接补0即可

算数右移SAR(重点)

完成了带符号数除以2

shift  arithmetic right

MOV AL,80H;(-128)
SAR AL,1
;1000 0000
;移动后
;1100 0000 (-64) ;补的是符号位,最低位移入CF,CF=0

算数/逻辑左移SAL/SHL(完成的操作都一样)

SAL和SHL指令是一条机器指令的两种汇编指令表示

完成的是×2的操作不论是有符号还是无符号数

MOV AL,08H
SHL AL,1
;0000 1000
;左移后
;0001 0000;  末尾补0,最高位移入CF,CF=0
MOV AL,0FFH(-1)
SHL AL,1
;1111 1111
;移动后
;1111 1110(-2)末尾补零,最高位移入CF=1

循环右移ROR

Rotate Right 

循环左移ROL

Rotate  left

带进位循环右移RCR

rotate carry right

 这时候CF很重要,先把原来CF的值移入最高位,在把最低位的值移出给CF

  

带进位循环左移RCL

rotate carry left

总结

 移出的位都去CF

 移位次数>1,次数必须放CL

SHL AL,4;错误;正确
MOV CL,4
SHL AL,CL

例题

MOV CL,04

SHL  DX,CL 

MOV BL,AH

SHL AX,CL

SHR BL,CL

OR DL,BL 

该程序段的功能是(DX和AX组合形成的32位数左移4位);若DX为1234H,AX为5678H,则程序运行后AX=(6780H

执行下面程序后,AX=(60

MOV AL,6

MOV AH,0

SAL AX,1

MOV BX,AX

SAL AL,1

SAL AL,1

ADD AX,BX


http://chatgpt.dhexx.cn/article/r2eHYtS0.shtml

相关文章

位移指令实现乘法、除法计算

前言 大家都知道51单片机是有乘法、除法指令的,不管是用C语言还是汇编语言,都是可以直接计算乘法、除法的,我以为,-,*,/ 这些算术运算是单片机的标配,而我公司使用的应广单片机居然没有乘法、除…

微机原理——移位指令

例题 思路 选择移位语句,右移,将AL移出的送入DX左端,将BL移出的送入DX左端。循环八次 MOV AL,01100101B; MOV BL,11011010B; XOR DX,DX;两个值相同,异或结果为0。等效:MOV DX,0 MOV CX,8;count L1: SHR AL,1;逻辑右…

汇编语言---移位指令

移位指令是一组经常使用的指令,包括:算数移位、逻辑移位、双精度移位、循环移位、带进位的循环移位; 移位指令都有一个指定需要移动的二进制位数的操作数,该操作数可以是立即数,也可以是CL的值;在8086中,该操作数只能是1,但是在其后的CPU中,该立即数可以是定义域[1,31]之内的数…

汇编语言——移位指令

基本概念 移位操作指令:移位操作指令是一组经常使用的指令,属于汇编语言逻辑指令中的一部分,它包括移位指令(含算术移位指令、逻辑移位指令),循环移位指令(含带进位的循环移位指令)&…

汇编指令之移位指令

移位指令包括了 算术移位指令、逻辑移位指令、循环移位指令。 格式为:xxx oper1,CL/1 ;移位次数只能是1或者存放在CL里面。 一、算术移位指令 1、算术左移指令SAL 功能:左移一次,最低位补0,最高位送入CF标志位,如图&am…

汇编指令(四)移位指令

学习概要 格式 移位指令主要分四种 一、逻辑移位指令 1.逻辑左移指令SHL 2.逻辑右移指令SHR 3.逻辑移位指令的功能 二、算术移位指令 1.算术左移指令SAL 2.算术右移指令SAR 最高位不变的意思就是,最高位原来是1(0),右移过后…

【大学生软件测试基础】白盒测试 - 语句覆盖 - 03

任务1、依据源代码画出程序流程图; 任务2、根据程序流程图,找出程序的所有执行路径; 任务3、找出能覆盖所有语句的最少路径; 任务4、根据最少路径设计语句覆盖用例; 流程图: 任务2、根据程序流程图&…

修正的判定条件覆盖例题_语句覆盖、判断覆盖、条件覆盖、条件判定组合覆盖、多条件覆盖、修正条件覆盖...

int function(bool a,bool b,boolc){intx; x=0;if(a&&(b||c)){x=1;returnx; } } 1、语句覆盖(SC) 选择足够多的测试数据,使得被测程序中的每条语句至少执行一次。 测试用例:a=T,b=T,c=T 2、判断覆盖(DC) 设计足够的测试用例,使得程序中的每个判定至少都获得一次真值…

语句覆盖,判定覆盖,条件覆盖,条件/判定覆盖,条件组合覆盖,路径覆盖

最近在复习软件测试的考试,每次到白盒测试这里都要为这几种逻辑覆盖方法感到头疼,这次终于决定好好整理出来。 逻辑覆盖是通过对程序逻辑结构的遍历实现程序的覆盖。它是一系列测试过程的总称,这组测试过程逐渐进行越来越完整的通路测试。 根…

软件测试培训之:白盒测试的语句覆盖法和判定覆盖法

白盒测试是相对于黑盒测试而言的,黑盒测试不关注程序内部的实现结构,仅仅是通过向程序进行输入来观察程序的输出对不对;白盒测试就需要关注程序内部的实现结构,对程序的逻辑结构实施相关的测试;那么下面来谈谈语句覆盖法、判定覆盖法和条件覆…

语句覆盖、判定覆盖、条件覆盖 - 白盒笔试题解析

1. 定义 黑盒测试 - 不关注内部结构的测试/基于输入输出的测试 白盒测试 - 基于内部结构的测试 白盒测试的关键: 覆盖度 2. 白盒相关概念 语句覆盖 - 设计一套测试 让被测对象中所有语句得到测试覆盖 判定覆盖 - 设计一套测试 让被测对象中所有判定得到测试覆…

白盒测试用例设计方法(语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合覆盖、路径覆盖、基本路径覆盖)

语句覆盖:每条语句至少执行一次。 判定覆盖:每个判定的所有可能结果至少出现一次。(又称“分支覆盖”) 条件覆盖:每个条件的所有可能结果至少执行一次。 判定/条件覆盖:一个判定中的每个条件的所有可能结果…

白盒测试的逻辑覆盖辨析(语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖)

白盒测试逻辑覆盖(语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖) 逻辑覆盖测试: 语句覆盖:每条语句至少执行一次判定覆盖:每一判定的每个分支至少执行一次条件覆盖:每一判定中的每个条件&…

白盒测试技术——语句覆盖、判定覆盖、条件覆盖

结合一个例子说: 画出相应的程序流程图,更方便分析: 首先我们要明确一点:测试用例要尽可能少。 1、语句覆盖:被测程序中每个语句至少执行一次 路径:s->a->b->c->d->e A2,B0&a…

语句覆盖、分支覆盖、谓词测试和路径覆盖

目录 语句覆盖分支覆盖(判定覆盖)谓词测试原子谓词覆盖(条件覆盖)分支-谓词覆盖(判定条件覆盖或分支条件覆盖)复合谓词覆盖(条件组合覆盖) 路径覆盖包含关系 语句覆盖 “语句覆盖”是一个比较弱的测试标准…

白盒测试 | 用例设计方法之语句覆盖

语句覆盖,顾名思义就是针对代码语句的嘛。它的含义是我们设计出来的测试用例要保证程序中的每一个语句至少被执行一次。通常语句覆盖被认为是“最弱的覆盖”,原因是它仅仅考虑对代码中的执行语句进行覆盖而没有考虑各种条件和分支,因此在实际…

逻辑覆盖测试(一)语句覆盖

语句覆盖: 设计测试用例时保证程序的每条语句至少执行一次。 简单来说,就是每个语句都覆盖一遍。 例子: 流程图如下: 测试用例如下: x4,z9,第一个if语句执行到了; x4,y7,第二个if语句为true…

设计测试用例实现语句覆盖,判定覆盖,条件覆盖,判定/条件覆盖,条件组合覆盖,路径覆盖.

第一题: 设计测试用例实现语句覆盖,判定覆盖,条件覆盖,判定/条件覆盖,条件组合覆盖,路径覆盖. 【1】语句覆盖(设计若干个测试用例,使程序中的每个可执行语句至少执行一次) (x>3)&&&…

语句覆盖、条件覆盖、判定覆盖、条件-判定覆盖、组合覆盖、路径覆盖

文章目录 语句覆盖判定覆盖条件覆盖条件--判定覆盖组合覆盖路径覆盖 逻辑覆盖率&#xff1a;语句覆盖<条件覆盖<判定覆盖<条件-判定覆盖<组合覆盖<路径覆盖 语句覆盖 基本思想&#xff1a;设计用例&#xff0c;使程序中的每个可执行语句至少执行一次。 每个可执…

软件测试 白盒测试用例设计方法动态 逻辑覆盖(语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖、路径覆盖)基本路径测试法

文章目录 1 静态2 动态2.1 逻辑覆盖2.1.1 语句覆盖2.1.2 判定覆盖2.1.3 条件覆盖2.1.4 判定条件覆盖2.1.5 条件组合覆盖2.1.6 路径覆盖 2.2 基本路径测试法&#xff08;重点&#xff09; 小结 白盒设计方法分为静态和动态。 1 静态 静态的白盒测试方法有桌面检查、代码审查、代…