微型计算机原理及接口技术 教学课件 ppt 作者 赵全利 吕建平 邹雪艳 第3章 微型计算机指令系统

上传人:E**** 文档编号:89501329 上传时间:2019-05-26 格式:PPT 页数:33 大小:171KB
返回 下载 相关 举报
微型计算机原理及接口技术 教学课件 ppt 作者 赵全利 吕建平 邹雪艳 第3章 微型计算机指令系统_第1页
第1页 / 共33页
微型计算机原理及接口技术 教学课件 ppt 作者 赵全利 吕建平 邹雪艳 第3章 微型计算机指令系统_第2页
第2页 / 共33页
微型计算机原理及接口技术 教学课件 ppt 作者 赵全利 吕建平 邹雪艳 第3章 微型计算机指令系统_第3页
第3页 / 共33页
微型计算机原理及接口技术 教学课件 ppt 作者 赵全利 吕建平 邹雪艳 第3章 微型计算机指令系统_第4页
第4页 / 共33页
微型计算机原理及接口技术 教学课件 ppt 作者 赵全利 吕建平 邹雪艳 第3章 微型计算机指令系统_第5页
第5页 / 共33页
点击查看更多>>
资源描述

《微型计算机原理及接口技术 教学课件 ppt 作者 赵全利 吕建平 邹雪艳 第3章 微型计算机指令系统》由会员分享,可在线阅读,更多相关《微型计算机原理及接口技术 教学课件 ppt 作者 赵全利 吕建平 邹雪艳 第3章 微型计算机指令系统(33页珍藏版)》请在金锄头文库上搜索。

1、第3章 微型计算机指令系统 3.1 指令系统简介 1. 指令 指令是计算机完成某一特定操作的命令。 人们要计算机处理的任何问题,都必须转换为计算机能够识别和执行的一步步的操作命令,这些命令用计算机与程序设计员都能识别的信息表示出来,就称其为指令。在计算机系统中,指令的表示形式一般有两种: CPU可直接识别并执行的机器指令。 汇编指令。 机器指令是以二进制代码的形式表示的,也称目标代码,CPU能够直接执行机器指令,执行速度最快 汇编指令实际上是符号化的机器指令,一条汇编指令必有一条机器指令与之对应。,2.汇编指令格式 汇编指令格式由以下几个部分组成: 标号: 操作码 目的操作数 ,源操作数 ;注

2、释 其中, 中的项表示为可选项。 例如: LOOP: MOV AL , 20H ; A20H. 标号:又称为指令地址符号,一般是由16个字符组成,标号是以字母开头的字母-数字串,它与操作码之间用冒号分隔。 操作码:是由助记符所表示的指令的操作功能,任何指令都必须具有操作码。 操作数:是指参加操作的数据或数据的地址。操作数与操作码之间必须用空格分隔,操作数与操作数之间必须用西文逗号“,”分隔。 注释:是为该条指令作的说明,以便于阅读,注释部分不产生目标代码。,3.2 8086指令的寻址方式 3.2.1 操作数及分类 在8086指令系统中,操作数分为两大类: 1.数据操作数 数据操作数可分为: (

3、1)立即数操作数 (2)寄存器操作数 (3)存储器操作数 (4)输入输出操作数 .转移地址操作数转移地址操作数是转移指令操作的数据,它是表示地址的数据。,3.2.2 8086数据寻址方式 寻址方式就是指令中寻找或获得操作数的方式,它是指令系统中最重要的内容之一。 8086数据操作数的寻址方式有以下几种类型: 1.立即寻址 立即寻址是指操作数直接存放在指令中。 例如: MOV AL,12H ; AL12H. 2.寄存器寻址 寄存器寻址是指操作数就在8位或16位通用寄存器中。 例如: MOV AL,CL ; AL (CL),3.存储器寻址 存储器寻址是指操作数在存储器单元数据区中。 8086几种存

4、储器寻址方式如下: (1)直接寻址 指存储器操作数的有效地址(偏移量)就在指令中. 例如:MOV AX, 1234H ; 1234H为源操作数字存储单元的 偏移量. (2)寄存器间接寻址 指存储器操作数的有效地址就在寄存器中。,例如:MOV AX, BX ; 基地寻址,即AX(BX). MOV AX, SI ; 变址寻址, 即AX(SI). MOV AX, BXSI ;基址加变址寻址, AX(BX)+(SI). 【例】执行MOV AX, BX 后,AX的内容是什么? 设(DS)=2000H,(BX)=1000H,(21000H)=3412H, 则源操作数的物理地址为: (DS)10H+(BX)

5、=2000H10H+1000H =20000H+1000H =21000H(字地址) 指令执行后,(AX)=3412H。,(3)寄存器相对寻址 例如:MOV AX, BX64H ; 相对的基址寻址, AX(BX)+64) MOV AX, BXSI16H ;相对的基址加变址寻址. MOV AX, SI+16H ;相对的变址寻址.,4输入/输出端口寻址方式 在寻址外设端口时,8086CPU提供两种寻址方式: (1) 直接端口寻址 在I/O指令中以8位立即数的形式直接给出端口地址 例如: IN AL, 20H ;读取端口地址20H单元的 字节数据到AL中. OUT 21H, AL ;将AL的内容输出

6、到端口地址 为21H字节单元中.,(2)寄存器间接端口寻址 当端口地址大于255时,用寄存器(DX)间接寻址. 例如: MOV DX, 200H ;将端口地址200H传送给 寄存器DX. IN AL, DX ;读取200H单元的字节数 据到寄存器AL中.,3.3 8086指令系统 8086指令系统按其功能可分以下6种类型: 数据传送指令 算术运算指令 逻辑运算指令 串处理指令 控制转移指令 处理机控制与杂项操作指令,3.3.1 数据传送指令 1.通用数据传送指令 (1)MOV指令 指令格式:MOV DST, SRC 指令功能:DST (SRC) DST表示寻址目的操作数;SRC表示寻址源操作数

7、(以下表示相同)。指令功能是把源操作数传送到目的操作数. (2)XCHG指令 指令格式:XCHG OPR1, OPR2 OPR1、OPR2分别表示操作数1和操作数2。 指令的功能:在操作数OPR1和操作数OPR2之间相互交换数据。,(3)PUSH和POP指令 堆栈操作的指令。 所谓堆栈,就是以“先进后出”方式进行数据操作的存储器中某一连续的存储块。堆栈只有一个数据出入口,称为栈顶。堆栈指针寄存器SP始终指向栈顶存储单元,SP可由指令设置。 PUSH指令又称压栈指令: 例如: PUSH AX ;SP(SP)- 2,将AX内容压入堆 栈,SP指向栈顶. POP指令又称出栈指令: 例如: POP C

8、X ;将栈顶元素最先弹出到CX,然后 SP(SP)+2.,(4)XLAT指令 XLAT指令又称查表指令。 指令功能:AL(BX)+(AL) 【例】设(DS)=2000H,(BX)=1000H,(21001H)=31H, (21002H)=32H。 指令段为: MOV AL, 2H XLAT 在执行XLAT时,源操作数的物理地址为: (DS)10H+(BX)+(AL)=2000H10H+1000H+2 =20000H+1000H+2H =21002H 指令执行后,(AL)=32H。,(5)目标地址传送指令 LEA DST, SRC 功能:将源操作数SRC的有效地址传送给目的操作数 DST。 LD

9、S DST, SRC 功能:把源操作数指定的连续4个存储单元中存放的32位地址指针传送到段寄存器DS和16位通用寄存器中。,(6)标志传送指令 LAHF: 功能: 将标志寄存器的低8位送AH SAHF 功能: 将AH中的内容送标志寄存器的低8位。 PUSHF 功能: 将栈顶内容弹出到标志寄存器。 POPF 功能: 将标志寄存器的内容压入堆栈。,3.3.2. 算术运算指令 1 加法指令 指令格式: ADD DST, SRC 功能: DST (DST)+(SRC) 指令格式:ADC DST, SRC 功能: DST (DST)+(SRC)+CF 指令格式:INC OPR 功能: OPR (OPR)

10、+1( 非压缩BCD码调整指令AAA 压缩BCD码调整指令DAA,【例】非压缩BCD码00000111(7D)与00001001(8D)相加,结果存放在1000H单元。 指令段如下: MOV AL, 07H ; AL00000111B. MOV BL, 08H ; BL00001000B. ADD AL, BL ;AL(AL)+(BL) = 00001111B AAA ;AL(AL)+0110B & 清除AL的高4 位. MOV 1000H,AL 结果:AL=0000 0101(5D),2. 减法指令 SUB DST, SRC 功能:DST(DST)-(SRC) SBB DST, SRC(带借

11、位的减法指令) 功能: DST(DST)-(SRC)-CF 减1指令DEC OPR 功能:OPR(OPR)-1 求补指令 NEG OPR 功能: 对操作数的各位取反,末位加1,结果送回目的操作数. 比较指令:CMP DST, SRC 功能:用于两个操作数的比较,该指令同SUB指令操作相同,但不传送运算结果。 非压缩BCD码调整指令AAS。 压缩BCD码调整指令DAS。,3. 乘法指令 无符号数乘法指令: MUL SRC (隐含目的操作数AL/AX/DX) 有符号数乘法指令: IMUL SRC (隐含目的操作数AL/AX/DX) 4 除法指令 无符号数除法指令: DIV SRC (隐含目的操作数

12、AX、DX) 有符号数除法指令IDIV IDIV SRC (隐含目的操作数AX、DX) 5.符号扩展指令 CWD指令功能:将AX中数的符号扩展到DX寄存器中。 CBW指令功能:将AL中数的符号扩展到AH寄存器中。,3.3.3 逻辑运算及移位指令 1. 逻辑运算指令 逻辑与指令: AND DST, RSC ;DST(DST)(RSC) 逻辑或指令OR: OR DST, RSC ;DST(DST)(RSC) 逻辑非指令NOT: NOT OPR ; OPR的取反指令 逻辑异或指令: XOR DST, RSC ;DST(DST)(RSC) 测试指令TEST TEST OPR1, OPR2 ; (DST

13、)(RSC)结果影响标志位.,2.移位和循环移位指令 移位指令是指对操作数进行二进制数的移位操作。 逻辑左移指令: SHL DST, CL/1 ;CL/1表示移位次数可以放在CL中或移位1次 逻辑右移指令 SHR DST, CL/1 算术左移指令 SAL DST, CL/1 算术右移指令 SAR DST, CL/1 循环左移指令 ROL DST, CL/1 循环右移指令 ROR DST, CL/1 带进位位CF的循环左移指令RCL RCL DST, CL/1 带进位位CF的循环右移指令 RCR DST, CL/1,3.3.4 串操作类指令 数据串是指存储器中连续存储的字节串或字串. 串操作的指

14、令由基本串操作指令和重复串操作助记符组成。 基本串操作指令: 串传送指令MOVB/MOVW 串比较指令CMP/BCMPW 串搜索指令SCAB/SCASW 串存储指令STOSB/STOSW 取字符指令LODSB/LODSW 重复串操作助记符:可作为重复前缀,与基本串操作指令配合。 重复串操作助记符有: REP(重复操作前缀) REPNZ(不为0时重复操作前缀) REPZ(为0时重复操作前缀),串操作指令使用注意: 串操作指令助记符最后一个字母为B,表示该指令为字节操作;最后一个字母为W,表示该指令为字操作。 所有串操作指令操作数都可以采用隐含寻址。 源操作数必须在数据段DS、由源变址寄存器SI指

15、向段内地址。 目的操作数必须在附加段ES、由目的变址寄存器DI指向段内地址。 在使用串操作指令前,必须对DS、ES、SI和DI进行设置。 基本串操作指令每执行一次后, 自动改变源变址指针SI和目的变址指针DI,其变化方向取决于标志位DF。 若使DF置0,则地址指针为增量方向(操作数为字节时地址指针增加1,操作数为字时地址指针增加2)。 若使DF置1,则地址指针为减量方向。 可以重复操作的串指令可加重复前缀REP,重复次数由寄存器CX给出。,例如:串传送字节操作指令: MOVSB 首先执行操作:ES:(DI) (DS:(SI) 然后执行操作: 当DF=0时,SI (SI)+1, DI (DI)+1 当DF=1时,SI (S)-1 , DI (DI)-1,例如:串比较字操作指令: CMPSW 执行操作: (DS: (SI)-(ES:(DI) ; 结果影响标志位, 操作数不改变。 当DF=0时,SI (SI)+2, DI

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号