《微型计算机系统原理及应用》第2章80868088指令系统

上传人:au****y 文档编号:56600839 上传时间:2018-10-14 格式:PPT 页数:35 大小:185.50KB
返回 下载 相关 举报
《微型计算机系统原理及应用》第2章80868088指令系统_第1页
第1页 / 共35页
《微型计算机系统原理及应用》第2章80868088指令系统_第2页
第2页 / 共35页
《微型计算机系统原理及应用》第2章80868088指令系统_第3页
第3页 / 共35页
《微型计算机系统原理及应用》第2章80868088指令系统_第4页
第4页 / 共35页
《微型计算机系统原理及应用》第2章80868088指令系统_第5页
第5页 / 共35页
点击查看更多>>
资源描述

《《微型计算机系统原理及应用》第2章80868088指令系统》由会员分享,可在线阅读,更多相关《《微型计算机系统原理及应用》第2章80868088指令系统(35页珍藏版)》请在金锄头文库上搜索。

1、1,第2章 8086/8088指令系统,2,主要内容:,指令系统的一般概念 对操作数的寻址方式 六大类指令的操作原理:操作码的含义指令对操作数的使用要求指令执行的结果,3,概述,指令控制计算机完成指定操作的命令; 指令系统CPU所有指令及其使用规则的集合; 指令的表示形式: 机器指令指令的二进制代码形式。例如CD21H 汇编指令助记符形式的指令。例如:INT 21H,8088/8086指令系统: (1)指令向后兼容(x86系列) (2)应用广泛,资料易于寻找,4,指令按功能分为六大类(92条),(1)数据传送类; (2)算术运算类; (3)逻辑运算和移位; (4)串操作; (5)控制转移类;

2、(6)处理器控制。,5,指令的基本构成,操作码,操作数,,操作数,说明要执行的是什么操作,操作对象,可以有0个、1个或2个,目的,源,6,指令举例:,ADD AX,SI+6,MOV AX , BX,操作码 操作数,INC BX,HLT,7,8088/8086的操作数分为4类,1)、立即数(常数) 取值范围如下表:,立即数只能用作源操作数,如,MOV AX,0FA00H ;正确 MOV 8000H,DX ;错误,8,2)、寄存器操作数,放在8个通用寄存器或4个段寄存器中的操作数,9,例 MOV AX , BXADD BX , BPMOV DX , DS,SI,DI,BP,SP,CS,DS,ES,

3、SS,10,3)、存储器操作数,存储器操作数,字节 字 双字,1 2 4,类型,存储单元个数,一般不允许两个操作数同时为存储器操作数,11,指令中凡带方括号 表示的就是存储器操作数。存储器寻址必须提供两个逻辑地址,即段基地址:偏移地址。 指令中给出的仅是存储器操作数的偏移地址(也称有效地址)或偏移地址的计算方法,而不是存储器操作数实际内容。一般存储器的段基值隐含, CPU采用默认的段寄存器来确定操作数所在的段。 例如,若(BX)=2000H, (SI)=0A00H, (DI)=2A00H,以下指令存储器操作数段基地址均默认由DS提供,分析可知,下列指令原操作数是一样的:MOV AL, 2A00

4、HMOV AL, BX+0A00HMOV AL, BXSIMOV AL, DI,12,4)、IO 接口操作数,IO端口操作数用直接端口地址形式或用DX内容间接给出端口地址形式表示。实际操作数是找到端口地址后其缓冲器的内容。例:IN AL , 80HOUT DX , AL,13,寻址方式寻找操作数的方法.在8086指令系统中,操作数的寻址方式可分为10种:立即寻址 变址寻址寄存器寻址 基址-变址寻址 直接寻址 隐含寻址寄存器间接寻址 IO端口直接寻址 基址寻址 IO端口间接寻址,2.1 8086/8088的寻址方式,14,操作数(为一常数)直接由指令给出立即寻址只能用于源操作数例:MOV AX,

5、 1C8FHMOV BYTE PTR2A00H, 8FH错误例: MOV 2A00H, AX ; 错误!,2.1.1 立即寻址(此操作数属立即数),15,02H,31H,AH,AL,AX,例:MOV AX,3102H ; AX 3102H执行后,(AH) = 31H,(AL) = 02H,16,2.1.2 寄存器寻址(属寄存器操作数),操作数放在某个寄存器中源操作数与目的操作数字长要相同 寄存器寻址没有地址的概念 例:MOV AX, BXMOV 3F00H, AXMOV CL, AL,17,AX,SI,2233H,2233H,指令操作例:MOV SI,AX ; SI AX 指令执行前:(AX)

6、=2233H指令执行后:(AX)=2233H,(SI)=2233H,18,2.1.3 直接寻址(属存储器操作数),指令中直接给出存储器操作数的16位偏移地址。偏移地址也称为有效地址(EA, Effective Address) 注意:直接寻址默认的段基地址由DS提供,但也可以指定其他段寄存器提供称为段超越前缀。偏移地址也可用符号地址来表示,如ADDR、VAR.但需预先定义。例:MOV AX , 2A00HMOV DX , ES:2A00H ;注意段基地址表示方式MOV SI , TABLE_PTR,19,指令操作例:MOV AX,3102H AL (3102H) , AH (3103H),如果

7、(DS)=2000H 则存储器操作数的物理地址为: 20000H+3102H = 23102H 指令执行后:(AX) = ABCDH,AH,AL,23102H 23103H,CDH,ABH,假设存储器,数据段,. .,20,2.1.4 寄存器间接寻址(属存储器操作数),存储器操作数的偏移地址(有效地址EA)由寄存器提供。 注: 只有SI、DI、BX和BP四个寄存器能够用于提供偏移地址,段基地址由约定段寄存器提供。例: MOV AX, BXMOV CL, CS:DI错误例 MOV AX, DX MOV CL, AX,EA =,(BX) (BP) (SI) (DI),21,同时注意:用BX/SI/

8、DI寄存器间接寻址时,段基地址默认由段寄存器DS提供,用BP寄存器间接寻址时,段基地址默认由段寄存器SS提供,如果不在约定段访问,需加前缀说明。,22,2.1.5 基址寻址(属存储器操作数),EA=BX/BP寄存器的内容加上一个8/16位的位移量,注意: 用BX做基址,段基地址默认由段寄存器DS提供,用BP做基址,段基地址默认由段寄存器SS提供。,23,例: MOV AX, BX+8 ;默认段寄存器为DS MOV AX, BP+1000H ; 默认段寄存器为SS 指令操作分析 例:MOV AX,DATABX若(DS)=6000H, (BX)=1000H, DATA=2A00H,(63A00H)

9、=66H, (63A01H)=55H则物理地址 = 60000H + 1000H + 2A00H = 63A00H指令执行后:(AX)=5566H (见下页图示),24,DS 6000,BX 1000,+ DATA 2A00,63A00,63A00H,AH,AL,AX,数据段,. . .,. . .,66H,55H,MOV AX,DATABX,25,EA=SI/DI寄存器的内容加上一个8/16位的位移量例 ADD AX , SI+0100H,2.1.6 变址寻址(属存储器操作数),注意: 变址寻址,段基地址默认由段寄存器DS提供。,26,2.1.7 基址-变址寻址(属存储器操作数),注意:同一

10、组内的寄存器不能同时出现。有多种书写形式。,例:,MOV AX,BASE SI BX MOV AX,BX+BASE SI MOV AX,BX+SI+BASE MOV AX,BX BASE SI MOV AX,BX+SI BASE,由一个基址寄存器的内容和一个变址寄存器的内容相加再加上一个位移量而形成存储器操作数的偏移地址,称为基址-变址寻址。,27,注意: 基址加变址寻址时,若用BX做基址,段基地址默认由段寄存器DS提供,用BP做基址,段基地址默认由段寄存器SS提供。,28,例:MOV AX,DATADIBX 若(DS)=8000H, (BX)=2000H, (DI)=1000H, DATA=

11、200H 则指令执行后(AH)=83021H, (AL)=83020H,83200,83200H,AH,AL,AX,+ DATA 0200,数据段,. . .,. . .,YY,XX,DS 8000,BX 2000,DI 1000,29,特别归纳: 1、如果段寄存器隐含,在 表示的寻址方式中,偏移地址表达式中含BP寄存器的,段基值默认由SS提供,其他情况,段基值默认由DS提供。 2、在 表示的寻址方式中,偏移地址表达式只能使用的寄存器有:BX、BP、SI、DI。同时,BX、BP不能同时使用。,30,2.1.8 隐含寻址,指令中,操作数是隐含的,在指令中未显式指明。例:MUL BL指令隐含了被乘

12、数AL及乘积AX类似的指令还有:DIV、CBW、MOVSB、 XLAT、 CMPSB、SCASB等,(AL)(BL)AX,31,2.1.9 I/O端口直接寻址(I/O操作数),对I/O进行输入或输出访问时, IO端口操作数用端口地址形式给出。 注:1)端口地址FFH时可使用此寻址方式。2)端口地址不是I/O操作数。例 IN AL , 80HOUT 80H ,AL,32,IO端口操作数用DX内容间接表示端口地址形式。 注: 1)0000H端口地址FFFFH时可使用此寻址方式。 2)DX寄存器内容不是I/O操作数。端口缓冲器内容才是实际操作数。例 IN AL , DX,2.1.10 I/O端口间接

13、寻址(属I/O操作数),33,寄存器的习惯用法,1.常用来存放参与运算的操作数或运算结果的寄存器有:AX(AH,AL),BX(BH,BL),CX(CH,CL),DX(DH,DL), BP,DI,SI。 2.对内存寻址时用来提供内存偏移地址的寄存器有:BX,BP,SI,DI。 3.对内存寻址时用来提供内存段基地址的寄存器有:CS,DS,ES,SS,34,特殊功用寄存器,1. AX(或AL):凡访问 I/O端口的指令必须通过AX(或AL)与接口传送信息; 2. CX:用于在循环指令中存放循环次数或串操作指令中存放重复次数; 3. DX:在32位乘除法运算指令时,用于存放高16位数;另外, 在间接寻址的I/O指令中用DX存放 I/O端口地址。 4. SP: 堆栈操作指令中用作堆栈指针。其内容为栈顶的偏移地址,堆栈操作时自动修正内容。 5. IP: 指令指针。其内容为下一条要执行的指令的偏移地址,执行指令时自动修正内容。,35,6. SI:源变址寄存器,在串操作指令中,用SI存放源操作数的偏移地址。串操作时自动修正内容。 7. DI:目标变址寄存器,在串操作指令中,用DI存放目标操作数的偏移地址。串操作时自动修正内容。,

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

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

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