《指令系统系统》ppt课件

上传人:tia****nde 文档编号:68970106 上传时间:2019-01-11 格式:PPT 页数:134 大小:1.14MB
返回 下载 相关 举报
《指令系统系统》ppt课件_第1页
第1页 / 共134页
《指令系统系统》ppt课件_第2页
第2页 / 共134页
《指令系统系统》ppt课件_第3页
第3页 / 共134页
《指令系统系统》ppt课件_第4页
第4页 / 共134页
《指令系统系统》ppt课件_第5页
第5页 / 共134页
点击查看更多>>
资源描述

《《指令系统系统》ppt课件》由会员分享,可在线阅读,更多相关《《指令系统系统》ppt课件(134页珍藏版)》请在金锄头文库上搜索。

1、第 4 章,8086指令系统系统,第4章 8086指令系统系统,本章重点: 掌握8086/8088 CPU的寻址方式、指令系统中指令的分类及其常用指令的格式和功能。 本章难点: 灵活运用指令解决问题及其快速查阅指令表。,概述,指令是微处理器执行某种操作的命令,微处理器全部指令的集合称为指令系统(指令集)。 指令有两种书写格式:机器指令和符号指令。 机器指令指令的二进制数描述 硬件只能识别机器指令,用机器指令书写的程序可以直接运行 符号指令用规定的助记符和规定的书写格式书写的指令 与机器指令一一对应,需要翻译成机器指令才能运行 10110000 00000001 MOV AL, 1,1. 指令,

2、2. 程序,程序是为解决某一问题而编写在一起的指令序列 机器语言程序:由机器指令书写的程序 汇编语言程序:由符号指令书写的程序 高级语言程序:由高级语言书写的程序,高级语言的基础是语句,而不是处理器的指令系统,汇编语言程序和高级语言程序必须先翻译成机器语言程序才能执行。这一翻译过程对汇编语言程序叫做汇编(assemble),对高级语言程序叫做编译(compilation)或解释(interpretation),符号指令的书写格式为: 标号: 操作码助记符 操作数助记符 ;注释 标号代表该指令在存储器中的地址,为分支、循环提供转移目标。可选 操作码助记符如ADD, MOV等,指出指令要实现的功能

3、 操作数是指令操作的对象。当一条指令需要一个以上的操作数时,操作数间用逗号分隔,逗号前为目标操作数,逗号后为源操作数。 注释可增强可读性。可选,3. X86系列微处理器指令系统的发展,基本指令集,8086/8088 116条指令,基本指令集,增,强,指,令,集,系,统,控,制,指,令,集,保护模式,实模式,Pentium 306条指令,4.1 寻址方式,寻址方式:寻址方式是指在指令中用于说明操作数所在地址的方法。8086指令系统把寻址方式分为与数据有关的寻址方式和与地址有关的寻址方式两类。 操作数有三种可能的存放方式: 直接包含在指令中 立即数 立即寻址 包含在某个寄存器中 寄存器操作数 寄存

4、器寻址 在内存中 存储器操作数(内存操作数) 存储器寻址,(1) 立即寻址方式 定义:有一部分指令所用的8位或16位操作数就直接放在指令中,紧跟在操作码的后面,与操作码一同放在代码段区域中。 用途:主要用来给寄存器或储存单元赋值。 MOV AL,80H,4.1 寻址方式,4.1.1 与数据有关的寻址方式,(2) 寄存器寻址方式 定义:指令中操作数由寄存器提供的寻址方式。 MOV DL,AL INC CX,4.1 寻址方式,4.1.1 与数据有关的寻址方式,(3) 直接寻址方式 定义:有效地址EA在指令的操作码后面直接给出的寻址方式。 说明:默认段寄存器DS,若操作数在其他段,应在指令中使用段跨

5、越前缀。 即:EA=段寄存器:位移量; PA=(段寄存器)左移4位位移量 MOV AX,1000H,4.1 寻址方式,4.1.1 与数据有关的寻址方式,指令中的操作数部分直接给出操作数的有效地址EA,操作数可以是16位或32位整数,操作数默认在DS段中 MOV AX, 3000H,低地址,高地址,CS段,操作码,00H,30H,34H,12H,34H,12H,AX,DS段,50000,53000,DS,5000,0,3000,53000,+,如果操作数在DS以外的其他段(CS,SS,ES )中,指令中必须包含段超越前缀 MOV AX, ES:3000H,低地址,高地址,CS段,操作码,00H,

6、30H,34H,12H,34H,12H,AX,FS段,20000,23000,ES,2000,0,3000,23000,+,(4) 寄存器间接寻址方式 定义:EA存放在由指令指明的寄存器中;只有通过访问寄存器才间接得到EA。 (BX) (SI)操作数存放在由DS指示的数据段。 (DI) PA=(DS)左移4位+(BX)/(SI)/(DI) (BP)操作数存放在由SS指示的堆栈段中。 PA=(SS)左移4位+(BP) 如果DS=2000H,SI=1000H,21000H=40H, 21001=32H。 MOV AX,SI指令执行后结果:AX=3240H。,4.1.1 与数据有关的寻址方式,低地址

7、,高地址,CS段,操作码,34H,12H,34H,12H,AX,SS段,70000,73000,SS,7000,0,3000,73000,+,MOV AX, BP,BP,(5) 寄存器相对寻址方式 定义: 以寄存器(BX、SI、DI和BP)内容为基地址加上位移量(8位或16位)得到有效地址EA的寻址方式。,4.1 寻址方式,4.1.1 与数据有关的寻址方式,低地址,高地址,CS段,操作码,00H,15H,34H,12H,34H,12H,DX,DS段,70000,73500,BX,1500,73500,+,MOV DX, BX+1500,DS,7000,0,2000,若选择BX、SI、DI寄存器

8、相对寻址,存放操作数的段寄存器默认为DS,若选择BP寄存器相对寻址,则对应的段寄存器默认为SS。如果操作数不在默认段,则要用前缀指出相应的段寄存器名。即操作数的有效地址为:,MOV AX,SI+10H,4.1.1 与数据有关的寻址方式,(6) 基址变址寻址方式 定义:由基址寄存器(BX,BP)的内容加上变址寄存器(SI,DI)的内容得到操作数有效地址EA的寻址方式。 操作数的有效地址为:,MOV AX,BX+DI 设DS=1000H,BX=5000H,DI=2000H,在执行时,有效地址为7000H,指令执行结果为17000H和17001H两单元的内容取到AX中。,4.1.1 与数据有关的寻址

9、方式,(7) 基址变址相对寻址方式 由基址寄存器(BX,BP)的内容加上变址寄存器(SI,DI)的内容,再加上位移量(8位或16位)得到操作数有效地址EA的方式称为基址变址相对寻址方式。 操作数的有效地址为: MOV AX,BX+SI+4500H 若 DS=3000H,BX=2000H,SI=1000H, 37500H=56H,37501H=12H, 指令执行后 AX=1256H。,4.1.1 与数据有关的寻址方式,单元(0,0),单元(0,1),单元(0,n),(位移量),二维数组的基址加变址寻址方式,基址寄存器,+,MOV AX, BX+SI+100H,单元(m,n),变址寄存器,+,在8

10、086指令系统中,有一些对指令的地址进行寻址的指令,这种寻址方式叫与地址有关的寻址方式。 (1) 段内直接寻址 用段内直接寻址方式时,指令中给出一个相对位移量,有效转移地址为IP的当前内容再加上一个8位或16位的位移量。段内直接转移寻址也称为相对寻址。,4.1.2与地址有关的寻址方式,(2) 段内间接寻址 用段内间接寻址方式时,有效地址总是在寄存器中或者在内存单元中,段内间接寻址方式可适用于于无条件转移指令和调用指令。 (3) 段间直接寻址 用段间直接寻址方式进行寻址时,指令中要给出转移地址的段值和偏移量。产生转移时,将段值送入CS中,将偏移量送入IP中。用这种寻址方式,可以提供一种使程序从一

11、个代码段转移到另一个代码段的方法。,4.1.2与地址有关的寻址方式,(4) 段间间接寻址 在段间间接寻址方式下产生转移时,IP和CS的内容用内存中2个连续的字来替换。而对这2个内存字,可以通过对数据的各种寻址方式来访问,不过立即数寻址方式和寄存器寻址方式除外。段间转移和段内间接转移必须是无条件转移指令和调用指令。换句话说,条件转移指令只能用段内直接寻址方式,而且转移范围只能是指令所在位置前后的-128+127个单元。,4.1.2与地址有关的寻址方式,总结: 寻址方式既针对源操作数,也针对目标操作数 实模式下段的最大长度为64KB,因此必须保证有效地址不超过FFFFH 立即 寄存器 寄存器间接

12、寄存器相对 直接 基址变址 相对基址变址,80868088的指令系统中包含133条基本指令,可以分为以下六个功能组。 (1)传送指令; (2)逻辑运算和移位指令; (3)控制转移指令; (4)算术运算指令; (5)串操作指令; (6)处理器控制指令。,4.2 8086指令系统,8086数据传送指令有如下四类: (1) 通用传送指令; (2) 累加器专用传送指令; (3) 地址传送指令; (4) 标志传送指令。,4.2 8086指令系统,4.2.1 传送指令,1通用传送指令(General Purpose Transfer) 通用传送指令中包括MOV、XCHG、堆栈和地址传送指令。 (1) 最基

13、本的传送指令 格式:MOV DST,SRC 功能:把一个字节或字的源操作数送到目标操 作数所在的单元。 例: MOV AL,BL ;BL中的8位数据送AL,4.2.1 传送指令,MOV MEM,REG MOV REG, MEM MOV REG1,REG2 MOV REG,DATA MOV MEM,DATA MOV SREG,REG MOV SREG,MEM MOV REG,SREG MOV MEM,SREG,具体指令,可以字型,也可以字节型,但是必须匹配,只能是字型操作,MOV AX , 100 MOV AX , 100H 的区别?,操作数即可以是字节型,也可以是字型,但两个类型必须相同。 两

14、个操作数不能都是存储器操作数 代码段寄存器不能是目标操作数 段寄存器不能直接用立即数赋值 两个操作数必须有一个能确定类型 所有MOV指令不影响标志寄存器,注意:,(2) 堆栈操作指令 堆栈操作指令分为:入栈指令PUSH和出栈指令POP。 格式:PUSH SRC 功能:堆栈指针SP减2后,把一个字的源操作数传送到目 的操作数所在的单元。 格式:POP DST 功能:把SP指出的栈顶中的一个字传送到目标操作数所 在的单元,然后加2。 说明:堆栈是按“先进后出”原则工作的一段存储器区 域。 例: PUSH AX ;将AX的内容推入堆栈 PUSH DS ;将DS的内容推入堆栈 PUSH BX ;将栈顶

15、两单元弹出送BX,4.2.1 传送指令,注释,所有堆栈操作都是16位的操作 除CS外,段寄存器都可以作为POP的操作数 栈操作不允许立即数 不影响标志寄存器,(3) 交换指令 格式:XCHG DST, SRC 功能:使源操作数与目的操作数相互交换。 说明:交换指令XCHG可以实现字节交换,也 可以实现字交换。 例: XCHG AL,BL XCHG 2530,CX,4.2.1 传送指令,注释,可以字节,也可以字操作,但是类型要一致 不能出现段寄存器 不能两个存储器操作数 不能有立即数 不影响标志寄存器,2累加器专用传送指令 累加器专用传送指令主要有输入指令IN、输出指令OUT和换码指令XLAT。 (1) 输入输出指令 格式:IN AL,PORT 功能:把来自端口PORT的一个字节送入AL寄 存器中,4.2.1 传送指令,2累加器专用传送指令 输入输出指令 格式:IN AX,PORT 功能:把来自PORT和PORT +1两个端口的数据构 成一个字送入AX寄存器中 格式:OUT PORT,AL 功能:把AL寄存器中的一个字节送入端口PORT 格式:OUT PORT,AX 功能:把AX寄存器中的一个字送入PORT和PORT+1 两个端口,4.2.1 传送指令,注释,可以8位也可以16位,8位时AL,16位时AX 若端口地址小于256,可以直接在指令中给出,否则必须由DX提供端

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

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

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