微机原理==第二章16位和32位微处理器(5)

本文详细介绍了8086微处理器中的逻辑运算指令,包括AND、OR、XOR,并解析了移位指令如SHL、SHR、SAL、SAR以及循环移位指令ROL、ROR、RCL、RCR,阐述了它们对标志位的影响。此外,还概述了串操作指令的工作原理和自动修改地址指针的规则。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

(1)逻辑运算指令

AND可用于复位某些位(同0相与),不影响其他位。例如:and bl,11110110B
OR可用于置位某些位(同1相或),不影响其他位。例如:or bl, 00001001B
XOR指令可用于求反某些位(同1相异或),不影响其他位。例如:xor bl, 00001001B

(2)移位指令

对寄存器操作数或内存操作数进行指定位数的移位。可一次移一位,也可一次移位CL规定的次数。
非循环移位 SHL SHR SAL SAR
循环移位 ROL ROR RCL RCR

非循环移位 (B/W)

SHL reg/mem,1/CL
;逻辑左移,最高位进入CF,最低位补0
SHR reg/mem,1/CL
;逻辑右移,最低位进入CF,最高位补0

SAL reg/mem,1/CL
;算术左移,最高位进入CF,最低位补0
SAR reg/mem,1/CL
;算术右移,最低位进入CF,最高位不变

对标志的影响

按照移入的位设置进位标志CF
根据移位后的结果影响SF、ZF、PF
对AF没有定义
进行1次移位后,如果移位前的操作数最高位与移位后操作数的最高位不同,则OF=1;否则OF=0。

循环移位(B/W)

将操作数从一端移出的位返回到另一端形成循环,分成不带进位和带进位,分别具有左移或右移操作。

ROL reg/mem,1/CL ;不带进位循环左移
ROR reg/mem,1/CL ;不带进位循环右移

RCL reg/mem,1/CL ;带进位循环左移
RCR reg/mem,1/CL ;带进位循环右移

对标志的影响

循环移位指令影响CF和OF标志。
按照移入的位设置进位标志CF
进行1次移位后,如果移位前的操作数最高位与移位后操作数的最高位不同(有变化),则OF=1;否则OF=0。

4)串操作指令

串操作指令的操作数是内存中连续存放的数据串(String)。
串操作对象以字节(B)或字(W)为单位。
源操作数 ——DS:[SI],允许段超越。
目的操作数——ES:[DI],不允许段超越。

每执行一次串操作指令,SI和DI将自动修改: ±1(字节串)或±2(字串)
执行CLD,DF = 0,地址指针增1或2
执行STD,DF = 1,地址指针减1或2
MOVSB/MOVSW
CMPSB/CMPSW
SCASB/SCASW
LODSB/LODSW
STOSB/STOSW
REP、REPZ/REPE、REPNZ/REPNE

字节串传送
MOVSB ;ES:[DI]←(DS:[SI])
;SI←(SI)±1,DI←(DI)±1

字串传送
MOVSW ;ES:[DI]←(DS:[SI])
;SI←(SI)±2,DI←(DI)±2

不影响标志位

字节串比较
CMPSB ; (DS:[SI])-(ES:[DI])
;SI←(SI)±1,DI←(DI)±1

字串比较
CMPSW ;(DS:[SI])-(ES:[DI])
;SI←(SI)±2,DI←(DI)±2

影响标志位

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值