第4章80x86指系统1(精品).ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《第4章80x86指系统1(精品).ppt》由会员分享,可在线阅读,更多相关《第4章80x86指系统1(精品).ppt(123页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第4章 80 x86/Pentium指令系统4.1 8086/8088指令编码指令编码4.2 8086/8088/8088寻址方式寻址方式4.3 8086/8088/8088指令系统指令系统4/7/202314.1 8086/8088指令编码n指令指令操作码操作码动作:动作:做什么做什么?n指令指令操作数操作数对象:对象:针对什么做动作针对什么做动作?汇编指令汇编指令:助记符形式的指令:助记符形式的指令。u 指令的书写格式指令的书写格式 操作码操作码操作码操作码 操作数操作数操作数操作数11,操作数,操作数,操作数,操作数22 如:如:如:如:MOV AXMOV AX,BXBX语法结构符合人类
2、语言的共同特点语法结构符合人类语言的共同特点语法结构符合人类语言的共同特点语法结构符合人类语言的共同特点动作对象动作对象动作对象动作对象4/7/20232u指令的编码格式指令的编码格式 采用变长编码格式,属于采用变长编码格式,属于CISC。由机器由机器识别和识别和执行执行8086/80888086/8088的指令编码长度在的指令编码长度在的指令编码长度在的指令编码长度在1 16 6字节范围内。字节范围内。字节范围内。字节范围内。一条指令性计划各编码字节总是连续存放于程序一条指令性计划各编码字节总是连续存放于程序一条指令性计划各编码字节总是连续存放于程序一条指令性计划各编码字节总是连续存放于程序
3、存储器中,且字节存储器中,且字节存储器中,且字节存储器中,且字节1 1一定放在最低的地址,字节一定放在最低的地址,字节一定放在最低的地址,字节一定放在最低的地址,字节2626依次向高地址存放。依次向高地址存放。依次向高地址存放。依次向高地址存放。MOV AXMOV AX,BX BX 【89D8H 89D8H】4/7/20233指令的执行时间指令的执行时间n8086指令的执行速率是由晶振控制产生的时钟决定指令的执行速率是由晶振控制产生的时钟决定的,每条指令执行时都需要几个时钟周期。的,每条指令执行时都需要几个时钟周期。如:若已知如:若已知8086CPU的工作时钟为的工作时钟为5MHz,则,则1个
4、个 时钟周期为:时钟周期为:指令指令时钟周期数时钟周期数执行时间执行时间MOV 寄存器,寄存器寄存器,寄存器CALL 段内直接调用段内直接调用CALL 段间间接调用段间间接调用21937+EA0.2s20.4s 0.2s193.8s 0.2s(37+EA)s 4/7/20234指令的执行时间指令的执行时间寻址方式寻址方式时钟周期数时钟周期数直接寻址直接寻址寄存器间接寻址寄存器间接寻址寄存器相对寻址寄存器相对寻址基址变址寻址基址变址寻址相对基址变址寻址相对基址变址寻址659781112计算计算EA所需的时间所需的时间4/7/20235操作码操作码:由:由CPU设计人员定义。每一种操作唯一对应设计
5、人员定义。每一种操作唯一对应一个操作码。一个操作码。例:例:加法加法操作助记符操作助记符ADD;数据传送数据传送操作助记符操作助记符MOV;比较比较操作助记符操作助记符CMP操作数操作数:可由编程人员采用不同方式给出。:可由编程人员采用不同方式给出。寻址方式:寻址方式:寻找操作数寻找操作数(操作数地址操作数地址)的方式;的方式;4.2 8086/8088寻址方式寻址方式汇编指令格式汇编指令格式:操作码:操作码 操作数操作数1,1,操作数操作数224/7/20236操作数操作数1.8086指令中指令中操作数的个数操作数的个数可以有以下几种可以有以下几种情况:情况:无操作数指令,例:等待指令无操作
6、数指令,例:等待指令 WAIT单操作数指令,例:加单操作数指令,例:加1指令指令 INC AL双操作数指令,例:减法指令双操作数指令,例:减法指令 SUB AL,BL源操作数:后者源操作数:后者(BL)目的操作数:前者目的操作数:前者(AL)4/7/202372 2、操作数、操作数存放地点存放地点,可以有以下几种:,可以有以下几种:vv 立即数:操作数直接包含在指令中。立即数:操作数直接包含在指令中。立即数:操作数直接包含在指令中。立即数:操作数直接包含在指令中。例:例:例:例:MOV ALMOV AL,50H50H vv 寄存器操作数:操作数存放在寄存器中。寄存器操作数:操作数存放在寄存器中
7、。寄存器操作数:操作数存放在寄存器中。寄存器操作数:操作数存放在寄存器中。例:例:例:例:INC INC ALALvv I/OI/O操作数:操作数来自操作数:操作数来自操作数:操作数来自操作数:操作数来自I/OI/O端口。端口。端口。端口。例:例:例:例:IN ALIN AL,28H28Hvv 内存操作数:操作数存放在内存单元中。内存操作数:操作数存放在内存单元中。内存操作数:操作数存放在内存单元中。内存操作数:操作数存放在内存单元中。例:例:例:例:MOV ALMOV AL,2000H2000H 操作数操作数4/7/202388086/8088寻址方式寻址方式4/7/202394.2.1 非
8、存储器寻址方式非存储器寻址方式1、立即数寻址方式、立即数寻址方式 源操作数以源操作数以8位或位或16位常数的形式直接出现在指位常数的形式直接出现在指令中。令中。例例4-1:MOV AX,3102H B80231H2、寄存器寻址方式寄存器寻址方式 8位或位或16位寄存器的值就是操作数本身。与其位寄存器的值就是操作数本身。与其它寻址方式相比,该方式执行速度最快。它寻址方式相比,该方式执行速度最快。例例4-2:MOV AL,BL INC CX4/7/202310非存储器寻址方式非存储器寻址方式3、固定寻址(隐含寻址)、固定寻址(隐含寻址)操作数并不直接出现在指令中,而是操作数并不直接出现在指令中,而
9、是由操作码由操作码隐含地指定为某一固定内容隐含地指定为某一固定内容。例:例:MUL BX PUSH AX ;目操作数隐含为栈顶字单元;目操作数隐含为栈顶字单元 POP BX ;源操作数隐含为栈顶字单元源操作数隐含为栈顶字单元 4、I/O端口寻址端口寻址 仅用于仅用于输入输入/输出指令输出指令IN、OUT。4/7/2023114.2.2 存储器寻址方式存储器寻址方式 1、直接寻址方式、直接寻址方式 操作数存放在存储器单元中,由指令直操作数存放在存储器单元中,由指令直接给出该单元的偏移地址。接给出该单元的偏移地址。操作数的物理地址操作数的物理地址 PA=(DS)*16+EA例例4-3:MOV AX
10、,3000H 寻址过程示意寻址过程示意段超越前缀段超越前缀 MOV AX,ES:0500H4/7/2023122、寄存器间接寻址方式寄存器间接寻址方式 操作数在存储器单元中,操作数在存储器单元中,操作数的偏移地址在指操作数的偏移地址在指令中给出的令中给出的16位寄存器(间址寄存器)中位寄存器(间址寄存器)中。PA=(DS)*16+(BX)或或=(DS)*16+(SI)或或=(DS)*16+(DI)或或=(SS)*16 +(BP)例例4-4:MOV AX,DI 寻址过程示意寻址过程示意必须是必须是必须是必须是SISI、DIDI BX BX、BPBP段超越前缀段超越前缀段超越前缀段超越前缀:MOV
11、 BXMOV BXMOV BX,ES:BPES:BPES:BP MOV AX MOV AX MOV AX,SS:SISS:SISS:SI4/7/2023133、寄存器相对寻址、寄存器相对寻址 寄存器相对寻址和寄存器间接寻址类似,只是寄存器相对寻址和寄存器间接寻址类似,只是操作数的有效地址操作数的有效地址EA等于指令所指示的寄存器中等于指令所指示的寄存器中的内容再加上指令中给定的的内容再加上指令中给定的816位的位移量。位的位移量。例例4-6:MOV AX,DATABX 寻址过程示意寻址过程示意其它等效写法:其它等效写法:MOV AX,BX+DATA 4/7/2023144、基址变址寻址方式、基
12、址变址寻址方式 操作数的有效地址是一个基址寄存器操作数的有效地址是一个基址寄存器(BX或或BP)和一个变址寄存器和一个变址寄存器(SI 或或DI)的内容之和。的内容之和。例例4-7:MOV AX,BXDI 寻址过程示意寻址过程示意其它等效写法:其它等效写法:MOV AX,BX+DI (SI)(DI)注意:指令中不允许同时出现两个基址寄存器或个注意:指令中不允许同时出现两个基址寄存器或个变址寄存器。例如,以下指令是非法的:变址寄存器。例如,以下指令是非法的:MOV AX,BXBPMOV AX,SIDIPA=(DS)*16+(BX)+或或 PA=(SS)*16+(BP)+(SI)(DI)4/7/2
13、023155、基址变址相对寻址方式、基址变址相对寻址方式 操作数的有效地址是一个基址寄存器和操作数的有效地址是一个基址寄存器和一个变址寄存器的内容,再加上指令中指定一个变址寄存器的内容,再加上指令中指定的的8位或位或16位位移量之和。位位移量之和。PA=(DS)*16+(BX)+位移量位移量 或或 PA=(SS)*16+(BP)+位移量位移量例:例:MOV AX,4BXDI 寻址过程示意寻址过程示意其它等效写法:其它等效写法:MOV AX,4BX+DI MOV AX,BX+DI+4(SI)(DI)(SI)(DI)4/7/2023164.3 8086/8088指令系统4.3.1 数据传送指令数据
14、传送指令4.3.2 算术运算指令算术运算指令4.3.3 逻辑运算及移位指令逻辑运算及移位指令4.3.4 串操作指令串操作指令4.3.5 控制转移指令控制转移指令4.3.6 处理器控制指令处理器控制指令4/7/2023174.3.1 数据传送指令数据传送指令(14条条)u通用传送指令通用传送指令基本传送指令基本传送指令MOVMOV堆栈操作指令堆栈操作指令PUSHPUSH、POPPOP数据交换指令数据交换指令XCHGXCHG查表指令查表指令XLATXLATu地址传送指令地址传送指令LEA、LDS、LESuu标志传送指令标志传送指令LAHF、SAHF、PUSHF、POPFuu输入输出指令输入输出指令
15、IN、OUT4/7/202318基本传送指令基本传送指令MOV(MOVe)n功能:将源操作数内容复制到目的操作数中功能:将源操作数内容复制到目的操作数中n格式:格式:MOV OPD,OPS;(OPD)(OPS)nOPD:R、M、SR;OPS:R、M、SR、Imn不影响标志位不影响标志位4/7/202319MOV指令指令MOV指令有以下指令有以下5种传送路径种传送路径:立即数立即数通用寄存器或存储单元通用寄存器或存储单元MOV AX,0220HMOV WORD PTRDI,1000H 通用寄存器通用寄存器通用寄存器通用寄存器MOV AL,BL ;BL中的中的8位数据送到位数据送到AL中。中。通用
16、寄存器通用寄存器段寄存器段寄存器MOV DS,AX ;AX中的中的16位数据送到位数据送到DSMOV BX,ES ;ES中的中的16位数据送到位数据送到AX4/7/202320通用寄存器通用寄存器存储单元存储单元MOV 4DI,AL ;(DI)4)ALMOV AX,SI ;AX(SI)段寄存器段寄存器存储单元存储单元MOV BX+SI,CS ;CS的内容送到的内容送到BX+SI和和BX+SI+1的两单元的两单元MOV DS,3000H ;3000H和和3001H两单元的内容送到两单元的内容送到DSMOV指令指令4/7/202321MOV指令指令n特别注意特别注意MOV指令不能直达的路径:指令不
17、能直达的路径:n立即数立即数段寄存器段寄存器n存储单元存储单元存储单元存储单元n段寄存器段寄存器段寄存器段寄存器4/7/202322堆堆 栈栈 的的 概概 念念 堆栈堆栈以以“先进后出先进后出”原则组织起来的连续的原则组织起来的连续的存储空间。存储空间。堆栈操作以堆栈操作以字字为单位。固定为单位。固定以以SS:SP为指针指示为指针指示栈顶,出、入堆栈的操作均针对栈顶单元进行。栈顶,出、入堆栈的操作均针对栈顶单元进行。80X86的堆栈生长方向为的堆栈生长方向为“向下增长向下增长”。入栈,指针减入栈,指针减入栈,指针减入栈,指针减出栈,指针加出栈,指针加出栈,指针加出栈,指针加4/7/202323
18、堆栈操作指令堆栈操作指令1、入栈入栈指令指令PUSHn可使用的操作数类型:可使用的操作数类型:PUSH CX ;通用寄存器;通用寄存器PUSH DS;段寄存器;段寄存器PUSH 0040H ;存储器;存储器n目操作数隐含为栈顶单元目操作数隐含为栈顶单元n指令执行后指令执行后SP减减2n入栈过程示意入栈过程示意2 2、出栈出栈出栈出栈指令指令指令指令POPPOPn n可使用的操作数类型:可使用的操作数类型:可使用的操作数类型:可使用的操作数类型:POP SIPOP SI;通用寄存器通用寄存器通用寄存器通用寄存器POP ESPOP ES;段寄存器段寄存器段寄存器段寄存器POP BXPOP BX;存
19、储器存储器存储器存储器n n源操作数隐含为栈顶单元源操作数隐含为栈顶单元源操作数隐含为栈顶单元源操作数隐含为栈顶单元n n指令执行后指令执行后指令执行后指令执行后SPSP加加加加2 2n出栈过程示意出栈过程示意不能用不能用CS!不影响标志位不影响标志位不影响标志位不影响标志位不影响标志位不影响标志位4/7/202324数据交换指令数据交换指令XCHGn功能功能:将将源、目操作数的内容源、目操作数的内容互相交换互相交换,指令执,指令执 行行后源、目操作数同时被改变后源、目操作数同时被改变n指令形式指令形式:XCHG OPD,OPS ;(OPD)(OPS)nOPD:R,M;OPS:R,Mn不影响标
20、志位不影响标志位。交换指令对操作数有如下要求:交换指令对操作数有如下要求:两个操作数字长必须相同,可以是字节交换,也可以两个操作数字长必须相同,可以是字节交换,也可以是字交换是字交换4/7/202325可以在寄存器与寄存器、寄存器与存储器之间交可以在寄存器与寄存器、寄存器与存储器之间交可以在寄存器与寄存器、寄存器与存储器之间交可以在寄存器与寄存器、寄存器与存储器之间交换,但是不能在存储单元与存储单元器之间交换。换,但是不能在存储单元与存储单元器之间交换。换,但是不能在存储单元与存储单元器之间交换。换,但是不能在存储单元与存储单元器之间交换。数据交换指令数据交换指令XCHG 如:如:如:如:XC
21、HG ALXCHG AL,CLCL XCHG AX XCHG AX,BXBX XCHG DI XCHG DI,DX DX 寄存器寄存器寄存器寄存器存储器存储器存储器存储器段寄存器也不能作为操作数。段寄存器也不能作为操作数。段寄存器也不能作为操作数。段寄存器也不能作为操作数。4/7/202326n【例例4-9】设设(DS)=2000H,(SI)=0100H,(DL)=11H,(20100H)=22H,则执行指令,则执行指令“XCHG SI,DL”后,后,DL的内容发生了什的内容发生了什么样的变化?么样的变化?数据交换指令XCHG4/7/202327查表指令查表指令XLATn指令功能:指令功能:将
22、将AL中的值中的值(码码)转换为内存表格中转换为内存表格中 的某一值后,再送回的某一值后,再送回AL中。中。n指令形式:指令形式:XLAT ;(AL)(BX)+(AL)或或 XLAT 转换表转换表【例例4-10】已知十进制数已知十进制数09的七段的七段LED显示码对显示码对照表如表照表如表4-3所示。试用所示。试用XLAT指令求数字指令求数字6的七的七段显示码。段显示码。4/7/202328十进制数的七段显示码十进制数的七段显示码 十进制数字十进制数字七段显示码七段显示码十进制数字十进制数字七段显示码七段显示码0123440H79H24H30H19H5678912H02H78H00H18H4/
23、7/202329TABLE DB 40H,79H,24H,30H,19H DB 12H,02H,78H,00H,18H MOV AL,6 ;数字;数字6的位移量送的位移量送AL MOV BX,OFFSET TABLE ;表格首址送;表格首址送BX XLAT TABLE 4/7/202330地址传送指令地址传送指令u 有效地址(偏移地址)传送指令有效地址(偏移地址)传送指令LEA:LEA 16位寄存器,存储器位寄存器,存储器源操作数的有效地址源操作数的有效地址EA(不是内容不是内容!)目标寄存目标寄存器器例:假设例:假设SI=1000H,DS5000H,(51000H)1234HLEA BXLE
24、A BX,SI SI 执行后:执行后:BX等价于等价于等价于等价于 MOV BXMOV BX,OFFSET SIOFFSET SIMOV BXMOV BX,SI SI 执行后:执行后:BX?1234H1000H?4/7/202331地址传送指令地址传送指令u 全地址指针传送指令全地址指针传送指令LDS:LDS 16位寄存器,存储器位寄存器,存储器 将源操作数单元的内容当作将源操作数单元的内容当作32位全地址指针,位全地址指针,偏移量(低偏移量(低16位)位)目标寄存器,目标寄存器,段基址(高段基址(高16位)位)DS。LDS SILDS SI,450H450H 执行后:执行后:SI=F346H
25、F346H DS=0A90H0A90HMemory0AH46HF3H90H12450H12451H12452H12453H例:例:设设 DS1200H,(12450H)F346H (12452H)0A90H4/7/202332地址传送指令地址传送指令u 全地址指针传送指令全地址指针传送指令LES:LES 16位通用寄存器,存储器位通用寄存器,存储器将源操作数单元的内容当作将源操作数单元的内容当作32位全地址指针,位全地址指针,偏移量(低偏移量(低16位)位)目标寄存器,目标寄存器,段基址(高段基址(高16位)位)ES。4/7/202333标志传送指令标志传送指令n标志装入指令标志装入指令LAH
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 80 x86 系统 精品
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内