3 微型计算机指令系统【精选-ppt】

上传人:繁星 文档编号:88292892 上传时间:2019-04-23 格式:PPT 页数:70 大小:160.09KB
返回 下载 相关 举报
3 微型计算机指令系统【精选-ppt】_第1页
第1页 / 共70页
3 微型计算机指令系统【精选-ppt】_第2页
第2页 / 共70页
3 微型计算机指令系统【精选-ppt】_第3页
第3页 / 共70页
3 微型计算机指令系统【精选-ppt】_第4页
第4页 / 共70页
3 微型计算机指令系统【精选-ppt】_第5页
第5页 / 共70页
点击查看更多>>
资源描述

《3 微型计算机指令系统【精选-ppt】》由会员分享,可在线阅读,更多相关《3 微型计算机指令系统【精选-ppt】(70页珍藏版)》请在金锄头文库上搜索。

1、第三章 微型计算机指令系统,指令系统是微处理器(CPU)所能执行的指令的集合,它与微处理器有密切的联系,不同的微处理器有不同的指令系统。在本章中我们主要讲解INTEL公司生产的8086/8088CPU的寻址方式以及各种指令系统,并通过具体实例讲述了各条指令的功能和使用方法。 通过本章的学习,读者应该掌握以下内容: 3种操作数的寻址方式 常用指令的格式、功能、以及对标志位的影响,3、1 8086/8088的寻址方式,操作码 操作数,汇编指令:,操作码:指令操作类型; 操作数:指令所需操作数或操作数的地址;操作数可以有一个,也可以有两个,一个源操作数,一个目的操作数。 例: MOV AX,CX ;

2、将CX的内容送入AX中。,本章主要介绍8086/8088的指令系统以及在指令中为取得操作数地址所使用的寻址方式。,3 、 1、1 立即寻址方式 指令操作数部分直接给出指令的操作数,操作数与操作码一起存入代码段中。立即数有8位和16位。 例 :MOV AL,5 ;源操作数为立即寻址 指令执行后,AL=05H,8位数据05H存入AL寄存器。 例 :MOV AX,3064H ;源操作数为立即寻址 指令执行后,AX=3064H,16位数据3064H存入AX寄存器。,3、 1、2 寄存器寻址方式 寄存器寻址方式的操作数是寄存器的值,指令中直接使用寄存器名,包括8位或16位通用寄存器和段寄存器。可使用的1

3、6位寄存器:AX、BX、CX、DX、SI、DI、SP、BP;其中:AX、BX、CX、DX可分成两8位使用。 例: MOV AX,CX ;(AX) (CX) MOV AL ;(AL) (AL)-1 3、1、3 内存寻址方式 在内存寻址方式中,操作数是某个内存单元的内容(值),指令中给出的是内存单元的有效地址EA(即偏移地址),段地址通常在隐含的某个段寄存器中。,1、直接寻址方式 直接寻址方式的操作数的形式为:Variable或Variable 在直接寻址方式中,操作数的偏移地址(有效地址EA)直接用指令加以指定(有直接地址值和标号两种形式),它存放在代码段中指定操作码之后,但操作数一般存放在存储

4、器的数据段中,所以必须先求出操作数的物理地址,然后再访问存储器才能取得操作数。段地址隐含的由DS 指定,也可以ES指定,但需在指令中指明。最后存储器地址为:DS:偏移地址 或 ES:偏移地址。 例: MOV AX,ES:2000H 将ES:2000H单元内容送入AX。 例: MOV AX,LABLE 或 MOV AX,LABEL 将标号为LABLE(存放操作数单元的符号地址) ,即DS:LABLE中的内容送入AX。,2、寄存器间接寻址 寄存器间接寻址方式的操作数形式为:reg 操作数的有效地址包含在基址寄存器BX,基址指针BP或一个变址寄存器(SI或DI)中。寄存器间接寻址要用方括号括起来,以

5、便与寄存器操作数相区别。 例: MOV AX,BX;将由BX决定的存储单元的内容送到AX寄存器。,0000,0001,0002,0003,BB,AA,TAB:,AX,AH AL,AA BB,间接寻址,数据段,0001,BX,操作数在存储器中,指令中寄存器内容作为操作数所在单元的有效地址。 (BX) (SI) (DI) (BP),有效地址 =,段寄存器为DS,段寄存器为SS,物理地址计算方法: 物理地址 = (DS)* 16 + (BX)或(SI)或(DI) 物理地址 = (SS)* 16 + (BP),例:已知:(DS)=2100H,(DI)=2000H 指令: MOV AX,DI ;(AX)

6、 (DI) 物理地址=(DS) * 16 + (DI) =2100H * 16 + 2000H =21000H + 2000H =23000H 指令结果:将23000H单元内容送AL中, 将23001H单元内容送AH中。,3、寄存器相对寻址方式 操作数在存储器内,指令中寄存器内容与指令指定的位移量(DISP)之和作为操作数所在单元的有效地址。 (BX) DISP8 (SI) (DI) (BP) DISP16,有效地址 =,段寄存器为DS,段寄存器为SS,+,物理地址 = (DS)* 16 +(BX)+DISP8 (SI)、(DI)、DISP16类同。 物理地址= (SS) *16 + (BP)

7、+DISP16,例: 如果 (DS)=3000H, (SI)= 2000H, COUNT=3000H, 则执行指令 MOV AX,CONUTSI,求出此种寻址方式对应的有效地址和物理地址。 有效地址= 2000H + 3000H = 5000H 物理地址=(DS)*16 + 5000H =30000H + 5000H =35000H 4、基址变址寻址方式: 操作数在存储器中,指令将基址寄存器(BX或BP)与变址寄存器(SI或DI)内容之和作为操作数所在存储单元的有效地址。,(BX) (SI) (BP) (DI),有效地址 =,+,物理地址 = (DS) * 16 + (BX)+ (SI)或(D

8、I) 物理地址 = (SS) * 16 + (BP) + (SI)或(DI) 例: MOV AX,BX+DI 或 MOV AX,BXDI DS:(BX)+(DI) 字存储单元内容送AX。 例: MOV AX,BP+SI 或 MOV AX,BPSI SS:(BP)+(SI) 字存储单元内容送AX。,例:如果 (DS)=2100H, (BX)= 0158H, (DI)=10A5H, EA=11FDH, 则执行指令 MOV AL,BXDI 有效地址:EA=(BX)+(DI)=0158H+10A5H=11FDH 物理地址:(DS) * 16 + 有效地址=21000H+11FDH=221FDH 执行结

9、果:将221FDH单元内容送入寄存器AL中。,5、相对基址变址寻址方式 操作数在存储器内,指令将基址寄存器(BX或BP)与变址寄存器(SI或DI)的内容之和再加上位移量(8位或16位),得到操作数所在单元的有效地址。 (BX) (SI) DISP8 (BP) (DI) DISP16,有效地址=,+,+,物理地址 = (DS)* 16 +(BX)产生的有效地址 物理地址 = (SS)* 16 +(BP)产生的有效地址 例:已知:(DS)=3000H,(BX)=2000H,(SI)=1000H,MK=0250H 指令: MOV AX,MKBXSI 或 MOV AX,MKBX+SI 或 MOV AX

10、,MK+BX+SI 有效地址:MK+(BX)+(SI)=0250H+2000H+0100H =3250H 物理地址:(DS)*16 +有效地址=30000H+3250H=33250H 执行结果:将33250H单元内容送AL,33251H内容送AH。,3、1、4 段超越 当操作数在内存单元时,系统根据隐含约定,自动将寄存器DS或SS的值作为段地址。然而,当操作数段地址不在隐含的段寄存器时,可以使用段超越前缀取代其隐含约定。 段超越前缀形式为: 段寄存器名: 例如: MOV AX,ES:BP ;段地址在ES MOV AX,CS:BX SI ;段地址在CS 段地址的基本约定和允许超越的情况如表所示:

11、,3、1、5 对8086内存寻址方式的注解 (1)在汇编后,指令中的变量名有具体的偏移地址所取代。,(2)在寄存器相对寻址与相对基址变址方式中,位移量disp可以是符号常量或变量,汇编后为一个常数,若是变量,则取其偏移地址。 (3)在Microsoft宏汇编MASM(Microsoft Macro Assembler)中,内存操作数可以采用多种书写形式。 (4)操作数中使用变量的地方也可以用下列形式: 变量名整数表达式。 5)计算出的有效地址以16位表示,若超过0FFFFH,CPU将忽略所有溢出。 (6)记忆8086内存操作数形式的简易方法如下: BX SI disp BP DI 每列选择0项

12、或一项,构成至少一项,即可得到有效的内存操作数形式。,3、2 标志位 在标志寄存器FLAGS中有若干标志位,这些标志用来表示CPU当前的操作方式和状态信息。 与普通应用程序有关的主要是FLAGS中的9个标志 6个状态标志(CF、OF、SF、ZF、AF、PF) 3个控制信息标志(DF、IF、TF) 3、2、1 深入认识CF和OF 1、 深入认识CF和OF CF表示无符号溢出,即运算结果超出了无符号数的表示范围。 OF表示带符号溢出,即运算结果超出了带符号数的表示范围。,2、CF和OF判断方法 (1)加法 CF的判断方法 从十进制角度来看,若无符号加的结果大于2n(n为位数),则CF=1,否则CF

13、=0。 从二进制角度来看,若结果最高位向前有进位,则CF=1,否则CF=0。 OF的判断方法 从十进制角度来看,若带符号加的结果不在范围n 1n-11(n为位数)内,则OF=1,否则OF=0。 从二进制角度来看,若两个数同号,而相加结果与之异号,说明溢出,则OF=1,否则OF=0。 例:8位数加法,判断CF和OF,二进制加法 看作无符号数 看作带符号数 0011 0000B 6 6 + 0000 1001B + 9 + 9,0011 1001B 15 15 CF=0 OF=0 0000 0111B 7 +7 + 1111 1011B +251 + (5),0000 0010B 258 +2 1 CF=1 OF=0 现为2结果错 0000 1001B 9 +9 + 0111 1100B + 124 +(+124),1000 0101B 133 +133 CF=0 OF=1 现为123,结果错 1000 0111B 135 (121) + 1111 0101B + 245 + (11),0111 1100B 380 132 1 CF=1 OF=1 现为124,结果错 现为124,结果错,(2)减法 CF的判断方法 从十进制角度来看,若无符号减数大于被减数,则CF=1,否则CF=0。 从二进制角度来看,若结果最高位向前有借位,则CF=1,否则CF=0。 OF的判断方法 从十进制角度来

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

当前位置:首页 > 办公文档 > 工作范文

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