编辑: 鱼饵虫 2019-07-14
微机原理与接口技术

第三章 8086CPU指令系统 董明皓 dminghao@xidian.

edu.cn 2018版 汇编语言基本概念

1 2

3 8086的六类指令

4 总结

5 汇编语言指令分类 数据与转移地址的寻址方式 汇编语言基本概念

1 2

3 8086的六类指令

4 总结

5 汇编语言指令分类 数据与转移地址的寻址方式 4. 8086的指令系统 b 数据传送指令 b 算术运算指令 b 逻辑运算指令 b 移位指令 b 串操作指令 b 控制转移指令 b 处理器控制指令 4.4 移位类指令 在8086指令系统中, 移位类指令有: 1. 逻辑左移SHL 2. 逻辑右移SHR 3. 算术左移SAL 4. 算术右移SAR 循环移位类指令有: 1. 循环左移ROL 2. 循环右移ROR 3. 带进位循环左移RCL 4. 带进位循环右移RCR 视OPR为有符号数:算术移位;

视OPR为无符号数:逻辑移位 4.4 移位类指令 ? 移位是一种运算(段寄存器不能参加) ? DST为DW或DB型?DST:通用REG、MEM单元 ? CNT:=1/CL ? 正常设置除AF外的5个PSW,其中CF表示指令所移出的一 位,OF=1表示移位前后符号位发生了变化,AF未定义 逻辑左移:SHL DST, CNT 逻辑右移:SHR DST, CNT 算术左移:SAL DST, CNT 算术右移:SAR DST, CNT ?1.逻辑移位指令(SHL/SHR-shift logical left/right byte or word) 4.4 移位类指令 左移 SHL DST, CNT 右移 SHR DST, CNT

0 CF D7 D1 D0 CF

0 D7 D1 D0 右移1位操作相当于将DST除以2;

左移1位操作相当于将DST乘以2. 正常设置5个标志位(除AF),其中OF定义为:指令执行 前后最高位数字发生变化时,OF置1 移位空出来的位补零;

移出来的位放入CF ?2.算术移位指令(SAL/SAR-shift arithmetic left/right byte or word)2 4.4 移位类指令 移出来的位放入CF 左移 SAL DST, CNT 右移 SAR DST, CNT

0 CF DST DST CF 与SHL完全相同 空位由符号位补充 ?逻辑移位指令(SHL/SHR-shift logical left/right byte or word) 4.4 移位类指令 例:请先判断指令合法性,再叙述下列指令完成的功能 (AL)=

10110100 B,SHR AL,

1 ;

1 0

1 1

0 1

0 0

1 0

1 1

0 1

0 0

0 CF CF=0

1 0

1 1

1 1

0 0

000 CF

0 0

1 0

1 1

1 0 CF=1 (CL)=3, (AL) =10111100B,SHR AL, CL;

?1.逻辑移位指令(SHL/SHR-shift logical left/right byte or word) 4.4 移位类指令 SHL DAT1[SI],CL SHR BL,

2 ;

将MEM单元的内容左移CL中所中指定的次数 ;

*,当移位次数>1时,必须用CL提供移位次数 ?1.逻辑移位指令(SHL/SHR-shift logical left/right byte or word) 4.4 移位类指令 例:请编程实现5*12 解1:MOV AL,

5 MOV BL,

12 MUL BL 解2:MOV AL,

5 MOV CL,

2 SHL AL, CL MOV BL, AL SHL AL,1 ADD AL, BL 省时间,耗内存 耗时间,省内存 ?逻辑移位指令(SHL/SHR-shift logical left/right byte or word) 4.4 移位类指令 例:将两个非组合BCD数(高阶存于BL,低阶存于AL中), 转换成一个组合的BCD数,存于AL中.

0000 **** BL

0000 **** AL OR ****

0000 BL SHL MOV CL,4 SHL BL,CL OR AL,BL ?循环左/右移位指令ROL/ROR-rotate left/right byte or word 4.4 移位类指令 左移 ROL DST, CNT 右移 ROR DST, CNT CF DST CF DST ?带进位循环左/右移位指令RCL/RCR-rotate through carry left/right byte or word 左移 RCL DST, CNT 右移 RCR DST, CNT CF DST CF DST ? 只影响OF、CF,对剩余4个标志未定义 4.4 移位类指令 例:DX:AX中存放32位数,将其扩大16倍解:MOV CX,

4 REP1 : SHL AX,1 RCL DX,1 LOOP REP1 4.4 移位类指令 例.若(BX)=10110110B,(CL)=3,CF=1, 则CPU执行: RCR BX, CL 指令后,(BX)=? (BX)=A016H,CF=1

下载(注:源文件不在本站服务器,都将跳转到源网站下载)
备用下载
发帖评论
相关话题
发布一个新话题