微机原理 第3章6逻辑和移位指令
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1
SAR oprd, ROL oprd, ROR oprd, RCL oprd, RCR oprd,
CL
1
算术右移 (带符号数÷2) 带符号数÷
CL
1
循环左移(不带 循环左移( CF) 移8次还原 CF) 循环右移(不带 循环右移( CF) 移8次还原 CF) 带进位循环左移 移9次还原 带进位循环左移 移9次还原
逻辑“ 逻辑“非”指令
2
AND DST, SRC ; (DST) ← (DST) ∧ (SRC) OR DST, SRC ; (DST) ← (DST) ∨ (SRC) XOR DST, SRC ; (DST) ← (DST) ∀ (SRC) TEST DST, SRC ; (DST) ∧ (SRC) NOT OPR ; (OPR) ← (OPR) 测试 非
SF *
ZF *
PF *
AF 无定义
4
根据运算结果设置
逻辑运算的其它功能
例:屏蔽AL的第0、1两位 屏蔽AL的第 的第0 AND AL, 0FCH 例:置AL的第5位为1 AL的第 位为1 的第5 OR AL, 20H 20H 例:使AL的第0、1位变反 AL的第 的第0 XOR AL, 3 例:测试某些位是0是1 测试某些位是0 TEST AL, 1 JZ EVEN XOR OR AND
(BX) 为带符号数,求 (BX) / 2 为带符号数, BX, 1 ; (BX) = 0C278H
11
SAR
例: 将DX、AX组合起来构成32位寄存器向左移一位。 DX、AX组合起来构成 位寄存器向左移一位 组合起来构成32位寄存器向左移一位。 如下图所示: 如下图所示:
15
DX
0 15
AX
0
32位寄存器向左移一位 32位寄存器向左移一位
§ 3.4.3 位操作指令 3.4.3
逻辑运算指令
AND、OR、NOT、XOR、 AND、OR、NOT、XOR、TEST
移位指令
SHL、 SHL、SHR 、 SAL 、SAR、 SAR、 ROL、ROR、RCL、 ROL、ROR、RCL、RCR
1
1、逻辑运算指令
1)、AND(Logical )、AND AND(
OPR, CNT
带进位循环右移
RCR
OPR, CNT
CF
8
注意: 注意:
OPR不可为立即数 OPR不可为立即数 CNT=1, CNT=1,SHL OPR, 1 CNT>1, CNT>1,MOV CL, CNT SHL OPR, CL ;(以SHL为例) ;(以SHL为例) 为例 cnt=1, 可写在指令中,不能是1以外的常数。 cnt=1,1可写在指令中,不能是1以外的常数。 cnt>1, CL存放移位次数 不能是其他寄存器。 cnt>1,用CL存放移位次数 ,不能是其他寄存器。
6
2、移位指令 移位指令
逻辑左移 SHL
CF
OPR, CNT
0wenku.baidu.com
逻辑右移
SHR
0
OPR, CNT
CF
算术左移 算术右移
SAL SAR
OPR, CNT(同逻辑左移) CNT(同逻辑左移) OPR, CNT
CF
7
循环左移
ROL
CF
OPR, CNT
循环右移
ROR
OPR, CNT
CF
带进位循环左移
CF
RCL
**** **** 1111 1100 **** **00 **** **** 0010 0000 **1* **** **** **** 0000 0011 **** ****
5
三条(AX)清 三条(AX)清“0”指令: 指令:
XOR SUB MOV
AX , AX CF,2B,3T。 ; 清AX , 清CF,2B,3T。 ;清 CF,2B,3T。 AX, AX ;清AX , 清CF,2B,3T。 ;清 ,不影响标志位 不影响标志位, 4T。 AX , 0 ;清AX ,不影响标志位,3B,4T。
CF CF
CL
1 1 1 CL 11 1 CL
CF CF
13
3
与 或
异或
特点: 特点:
8088可对 16位操作数执行逻辑操作 8088可对8或16位操作数执行逻辑操作 可对8 逻辑运算是按位操作
影响条件码: 影响条件码: NOT指令 NOT指令不影响任何标志位 指令不影响任何标志位 其它指令影响任何标志位的情况 其它指令影响任何标志位的情况
CF 0
OF 0
10
例:(AX)= 0012H,(BX)= 0034H,把它们装配成 0012H, 0034H, (AX)= 1234H MOV ROL ADD 例:(BX) = 84F0H (1) (BX) 为无符号数,求 (BX) / 2 为无符号数, SHR (2) BX, 1 ; (BX) = 4278H CL, AX, AX, 8 CL BX
and
)
逻辑“ 逻辑“与”指令
2)、TEST(Test) 测试指令 )、TEST TEST( 3)、OR(Lgical inclusive or ) )、OR OR( 令 4)、XOR(Logical exclusive or) )、XOR XOR( 指令 5)、NOT(Logical not ) )、NOT NOT( 逻辑“ 逻辑“或”指 逻辑“异或” 逻辑“异或”
9
条件标志位: 条件标志位: CF = 移入的数值 1 CNT=1时,最高有效位的值发生变化 CNT=1时 0 CNT=1时,最高有效位的值不变 CNT=1时 移位指令: 移位指令: SF、ZF、PF 根据移位结果设置,AF无定义 SF、ZF、 根据移位结果设置,AF无定义 循环移位指令: 循环移位指令: 不影响 SF、ZF、PF、AF SF、ZF、PF、
程序: SHL 程序: RCL
AX , 1 DX , 1
12
小结: 小结:
指令格式
SHL oprd,
名称
逻辑左移 1 无符号数*2) (无符号数 ) CL 1 算术左移 CL 逻辑右移 1 符号数÷ CL (无 符号数÷2)
CF
执行操作
0
SAL oprd, SHR oprd,
CF 0
0 CF CF