微机原理与接口技术 教学课件 ppt 作者 何珍祥 第4章 8086CPU指令系统

上传人:E**** 文档编号:89500930 上传时间:2019-05-26 格式:PPT 页数:94 大小:457.50KB
返回 下载 相关 举报
微机原理与接口技术 教学课件 ppt 作者 何珍祥 第4章 8086CPU指令系统_第1页
第1页 / 共94页
微机原理与接口技术 教学课件 ppt 作者 何珍祥 第4章 8086CPU指令系统_第2页
第2页 / 共94页
微机原理与接口技术 教学课件 ppt 作者 何珍祥 第4章 8086CPU指令系统_第3页
第3页 / 共94页
微机原理与接口技术 教学课件 ppt 作者 何珍祥 第4章 8086CPU指令系统_第4页
第4页 / 共94页
微机原理与接口技术 教学课件 ppt 作者 何珍祥 第4章 8086CPU指令系统_第5页
第5页 / 共94页
点击查看更多>>
资源描述

《微机原理与接口技术 教学课件 ppt 作者 何珍祥 第4章 8086CPU指令系统》由会员分享,可在线阅读,更多相关《微机原理与接口技术 教学课件 ppt 作者 何珍祥 第4章 8086CPU指令系统(94页珍藏版)》请在金锄头文库上搜索。

1、本章教学重点和难点: 8086/8088 CPU的指令格式和寻址方式。 8086CPU指令系统中数据传送类、输入输出类、算术运算类指令的功能和使用。 Pentium系列CPU的新增寻址方式和新增指令。,第4章 8086 CPU指令系统,本章教学内容: 4.1 指令格式与寻址方式 (与数据有关、与转移地址有关的寻址方式) 4.2 8086 CPU指令系统 (数据传送指令、算术运算指令及逻辑指令) 4.3 Pentium系列CPU的指令系统 (Pentium系列CPU的新增寻址方式和新增指令),4.1.1 指令格式 1. 指令的一般格式,操作码字段,指示计算机所要执行的操作。 操作数字段,指指令执

2、行操作的过程中所需的操作数。,根据操作数字段的个数一般分为零地址、一地址、二地址、三地址指令。 如:MOV DST(目的操作数),SRC(源操作数) 8086/8088 指令为l6个字节。第l个字节和第2个字节(部分位)表示操作码,其余为指令操作数。,4.1 指令格式与寻址方式,4.1.2 寻址方式 寻址方式(Addressing Mode):在指令中指定操作数的位置,即给出地址信息,在执行时需要根据这个地址信息找到需要的操作数的方式。 1)与数据有关的寻址方式。 2)与转移地址有关的寻址方式。,1. 数据寻址方式 (1)立即寻址方式(Immediate addressing) 指令操作数部分

3、直接给出指令的操作数,与指令操作码相接,顺序存放在代码段中。立即数有8/16 位 。 注意: 立即数寻址方式只能用于源操作数,主要用于给寄存器和存储器赋值。 立即数寻址方式不执行总线周期,执行速度快。 立即数为16 位时,存放遵循“低前高后”原则,低位字节存放在存储器低地址单元,高位字节存放在存储器高地址单元。,(2)寄存器寻址方式(Register addressing) 操作数放在寄存器内,由指令直接给出某个寄存器的名字,以寄存器的内容作为操作数。寄存器可以是16位的AX、BX、CX、DX、SI、DI、SP、BP寄存器,也可是8位的AH、AL、BH、BL、CH、CL、DH、DL寄存器。 注

4、意: 寄存器寻址方式的指令操作在CPU内部执行,不需要执行总线周期,执行速度快。 寄存器寻址方式既适用于指令的源操作数,也适用于目的操作数,且可同时用于源操作数和目的操作数。,(3)与存储器寻址有关的相关知识 操作数在存储单元中时,在指令中直接或间接地给出存放操作数的逻辑地址,以存取操作数。 存储器的逻辑地址由两部分构成:段基址和段内偏移。 在8086的各种存储器寻址方式中,寻找存储单元对应的偏移地址可以由多种成分组成,称为有效地址(本教材中用EA表示)。 依据有效地址组成成分的不同,存储器寻址可以分为直接寻址、寄存器间接寻址、寄存器相对寻址、基址变址寻址和相对基址变址寻址等形式。 EA=基址

5、寄存器+变址寄存器+位移量(操作数部分的形式地址D) 程序实际运行时对应的物理地址基本计算公式如下: PA=(段基址寄存器)16+EA,(4)直接寻址方式(Direct addressing) 操作数在存储器中,指令中直接给出操作数所在存储单元的有效地址,代表操作数所在存储单元距离段首址的字节数。有效地址是一个无符号的16位二进制数。,【例4-3】,MOV AL,2000H EA=2000H,若假设DS=1000H,则: PA=DS16+EA=10000H+2000H=12000H 【例4-4】,MOV BX,ES:3000H EA=3000H,假设ES=3000H,内存单元(33000H)=

6、12H,(33001H)=34H,则: PA=ES16+EA=30000H+3000H=33000H 注意: 直接寻址方式的操作数所在存储单元的段地址一般在数据段寄存器DS中。 如操作数在其他段,则需用段超越前缀。 DB命令定义一个变量,或者说定义一个符号地址。,(5)寄存器间接寻址方式(Register indirect addressing) 操作数在存储器中,指令中寄存器的内容作为操作数在存储单元的有效地址。寄存器可以是某个基址寄存器BX、BP,或某个变址寄存器SI、DI。 EA=(REG) PA=(SREG)16+EA,【例4-6】,MOV AL,SI 假设DS=2345H,SI=10

7、23H,则:EA=SI)=1023H, PA=(DS)16+EA=23450H+1023H=24473H 【例4-7】,MOV BX,BP 注意: 直接寻址方式的操作数所在存储单元的段地址一般在数据段寄存器DS中。 BP对应段寄存器默认选SS,SI,DI和BX则默认选DS。,(6)寄存器相对寻址方式(Register relative addressing) 操作数在存储器内,指令中寄存器的内容与指令指定的位移量(DISP)之和作为操作数所在存储单元的有效地址。寄存器可以是基址寄存器BX、BP,也可以是变址寄存器SI,DI。位移量是一个8位(DISP8)或16位(DISP16)的带符号二进制数

8、。 EA=REG)+DISP8(或DISP16) PA=SREG)16+EA,(7)基址变址寻址方式(Based indexed addressing) 操作数在存储器内,指令将基址寄存器(BX或BP)与变址寄存器(SI或DI)内容之和作为操作数所在存储单元的有效地址EA。以基址寄存器为准选择段寄存器。 EA=(基址寄存器)+(变址寄存器) PA=(SREG)16+EA,(8)相对基址变址寻址方式(Relative based indexed addressing) 操作数在存储器内,指令将基址寄存器(BX或BP)与变址寄存器(SI或DI)内容以及与指令指定的位移量(DISP)之和作为操作数所

9、在存储单元的有效地址。位移量是一个8位(DISP8)或16位(DISP16)的带符号二进制数。以基址寄存器为准选择段寄存器。 EA=(基址寄存器)+(变址寄存器)+DISP8(或DISP16) PA=(SREG)16+EA,(9)与端口寻址有关的相关知识 端口(Port)是指专门负责和外设进行输入和输出工作的特殊寄存器,每个端口都有它的唯一的一个编号,这就是端口地址号。在端口寻址中,可以认为操作数位置在端口中或者说在外设中,在指令中直接或间接地给出存放操作数的端口地址,以存取操作数。 I/O端口的寻址方式有两种:直接端口寻址和间接端口寻址。 (10)直接端口寻址 指端口地址以8位立即数形式表示

10、,直接显式地出现在I/O指令中。此时端口的寻址范围为00HFFH(十进制的0255)。,(11)间接端口寻址 指端口地址事先赋予寄存器DX,出现在I/O指令中的是DX寄存器而不是显式的端口地址。因为DX是16位寄存器,这时端口的寻址范围为0000HFFFFH。 【例4-14】 MOV DX,0021H ;将端口号0021H送DX IN AL,DX,2. 与转移地址有关的寻址方式 PA=(CS)16+(IP) 8086 CPU中与转移有关的指令有:无条件转移、有条件转移、过程调用、循环和中断等类型。 直接寻址指转移的目标地址直接出现在指令,这种地址一般称呼为标号,含义就是机器指令所处的位置,或者

11、说以符号形式出现的指令的内存地址。 间接寻址方式指转移的目标地址不直接出现在指令,而是把转移的目标地址间接地存储在某一寄存器或者内存变量中。,转移寻址可分为以下类型: 段内直接寻址(Intrasegment direct addressing)、段内间接寻址(Intrasegment indirect addressing)、段间直接寻址(Intersegment direct addressing)和段间间接寻址(Intersegment indirect addressing)。,(1)段内直接短转移寻址 EA=当前(IP)+位移量DISP8IP PA=(CS)左移4位+EA,CS值不变

12、【例4-15】,JMP SHORT ALPHA 假设:ALPHA=20H,执行前(CS)=1500H,(IP)=3200H,则:PA=(CS)16+(IP)=15000H+3200H=18200H; 取出JMP语句后要转移去位置的 EA=当前(IP)+ALPHA=3202H+20H=3222H; 则:转移PA=(CS)16+转移EA=15000H+3222H=18222H。 结果:(IP)=3222H,CPU将转移到内存地址为18222H中去取指令来执行。,(2)段内直接近转移寻址 指目标地址与IP内容(下一条指令地址)之差在一个字整数范围之内,即两地址之差在 -32768+32767个单元内

13、。 转移语句 NEAR PTR 新指令所在位置:EA=当前(IP)+位移量DISP16IP PA=(CS)左移4位+EA,CS值不变,(3)段内间接转移寻址 指目标地址在同一个代码段,指令中不直接提供转移地址,而是放在寄存器或存储器中,这个寄存器或存储单元的内容可以用数据寻址方式中除了立即数以外的任何一种寻址方式取得,所取得的有效地址用来替代IP寄存器的内容,达到转移的目的,CS段寄存器内容不变。 转移语句 WORD PTR 存储器地址 新指令所在位置:对于使用寄存器的:EA=(REG),EAIP; 对于使用存储器单元的:EA=(存储器操作数),EAIP;PA=(CS)16+EA,例4-17,

14、JMP AX JMP WORD PTR BX+SI+100H 设:AX=2000H,BX=1000H,SI=3000H,DS=4000H, (CS)=1500H,(IP)=1000H,则内存中的JMP语句取出前: PA=(CS)16+(IP)=15000H+1000H=16000H; 则新位置: EA=(IP)=2000H,此时IP值即AX的值。 则:转移PA=(CS)16+转移EA=17000H。 存储器单元的:EA=(BX)+(SI)+100H=4100H PA=(DS)16+EA=44100H 设(44100H)=30H,(44101H=50H),IP=5030H。 于是新指令所在位置

15、EA=(IP)=5030H,PA=(CS)16+(IP)=15000H+5030H=1A030H;,(4)段间直接远转移寻址 指目标地址在另外一个代码段,指令中直接提供了要去的转移地址的段地址和偏移地址,用指令指定的偏移地址取代IP的内容,用指定的段地址取代CS的内容,完成段的转换。 常见语句形式: JMP FAR PTR 标号 新指令所在位置:EA=(IP),即标号低位地址信息(8086CPU是低16位,在前) CS=标号高位地址信息(最高16位,在后) PA=更新后(CS)左移4位+更新后(IP),4.2 8086 CPU指令系统,8086 CPU指令系统中的常用指令,大多数指令可处理字数

16、据、字节数据;算术、逻辑运算不局限于累加器,存储器操作数也可直接参加算术、逻辑运算。 按功能可分为6类: 数据传送指令、算术运算指令、 逻辑指令、 串处理指令、 控制转移指令、 处理器控制指令。,4.2.1 数据传送类指令 数据传送指令是将数据、地址或立即数传送到寄存器或存储单元中。 可分为:通用数据传送指令、地址传送指令和标志传送指令等三组。,4.2.1 数据传送指令 8086的4种数据传送指令 ,用于实现寄存器之间、存储器与寄存器、累加器AX或AL与I/O端口、立即数到寄存器或到存储器的字节或字的传送。 注意,哪些操作数可以作为源操作数,哪些可以作为目的操作数。,(1) CS、IP不能是目的操作数; (2) 默认的段寄存器情况; (3) 不允许堆栈空间变动过程中出现中断; (4) MOV指令不影响标志位; (5) 不允许在两个段寄存器之间直接传送数据,可利用通用寄存器过渡的方法; (6) 两个存储单元之间不能

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

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

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