新《考研资料》chapter3.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)
《新《考研资料》chapter3.ppt》由会员分享,可在线阅读,更多相关《新《考研资料》chapter3.ppt(111页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第3章 80X86/Pentium指令系统3.1 80X86/Pentium 指令格式和寻址方式3.2 8086/8088 指令系统第三章第三章 80X86/Pentium80X86/Pentium指令系统指令系统指令系统:指令系统:微机处理器所能执行的各种指令的集合,不同的微 处理器有不同的指令系统。对对80X86/Pentium80X86/Pentium:8086、8088指令系统为基本指令系统286、386、486、Pentium在此基础上进行了扩充:8086/8088基本指令的增强及一些专用指令构成X86/Pentium系列的实模式指令集,系统控制指令对保护模式的多任务、存贮器管理、保
2、护机制提供了控制能力。本章重点本章重点:基本指令集基本指令集3.1.1 3.1.1 指令格式指令格式第第3 3章章 80X86/Pentium80X86/Pentium指令系统指令系统3.1 80X86/Pentium3.1 80X86/Pentium指令格式和寻址方式指令格式和寻址方式汇编语言指令的特点汇编语言指令的特点机器指令机器指令机器指令机器指令:指令的二进制代码形式。如:指令的二进制代码形式。如:指令的二进制代码形式。如:指令的二进制代码形式。如:89D8H89D8H汇编指令汇编指令汇编指令汇编指令:助记符形式的指令。如:助记符形式的指令。如:助记符形式的指令。如:助记符形式的指令。
3、如:MOV AXMOV AX,BXBX操作码助记符:操作码助记符:与动作一一对应与动作一一对应例:MOV AX,BX目目/源操作数:源操作数:可能有多种组合可能有多种组合操作数OP Code动作:动作:动作:动作:做什么做什么做什么做什么?对象:对象:对象:对象:针对什么做动作针对什么做动作针对什么做动作针对什么做动作?立即操作数立即操作数立即操作数立即操作数 MOV ALMOV AL,50H50H RegReg操作数操作数操作数操作数 INC INC ALAL存贮器操作数存贮器操作数存贮器操作数存贮器操作数 MOV ALMOV AL,2000H2000H I/OI/O操作数:操作数:操作数:
4、操作数:IN ALIN AL,28H28H操作码操作码:由CPU设计人员定义。每一种操作唯一对应一个操作码。例:加法加法操作助记符ADD;数据传送数据传送操作助记符MOV;比较比较操作助记符CMP;操作数操作数:可由编程人员采用不同方式给出。指令格式指令格式:指令中对操作码、操作数的编码方式。第第3 3章章 80X86/Pentium80X86/Pentium指令系统指令系统8086/80888086/8088指令格式:指令格式:由由1 16 6个字节组成个字节组成DATA(高)DATA(低)Disp/DATA(高)Disp/DATA(低)Mod r/mOP Code有效地址有效地址EAEA:
5、从段的首地址到操作数所在地址的距离,用字节数表示,是一个无符号16位整数,它指向段首地址开始的64KB。以8086/8088指令格式为例:1 16 6字节字节DATA(高)DATA(低)Disp/DATA(高)Disp/DATA(低)Mod r/mOP Code操作码 寻址方式 依据指令的不同而取舍第第3 3章章 80X86/Pentium80X86/Pentium指令系统指令系统规定指规定指令的操令的操作类型作类型两个操作数两个操作数存放地址及存放地址及EA计算方法计算方法指出指出存贮器操作数地址的位移量存贮器操作数地址的位移量或或立即数立即数在指令中的操作数3.1.2 3.1.2 寻址方式
6、寻址方式操作数位置:操作数位置:1.操作数在指令中,与代码存放在一起,称为立即操作数。立即寻址立即寻址 2.操作数在Reg.中,指令中操作数部分是对应.的编码。寄存器寻址寄存器寻址 3.操作数在MEM中,指令中操作数部分是操作数所在的内存地址。存贮器寻址存贮器寻址 第第3 3章章 80X86/Pentium80X86/Pentium指令系统指令系统一、寻址方式与有效地址的概念一、寻址方式与有效地址的概念 寻址方式寻址方式寻找操作数寻找操作数(操作数地址)的方式。的方式。依据寻址方式,可方便地访问到各类操作数依据寻址方式,可方便地访问到各类操作数。存贮器寻址时,指令的操作数部分给出的地址是段内偏
7、移地址。存贮器寻址时,指令的操作数部分给出的地址是段内偏移地址。为了处理各种数据结构的需要,这个段内偏移量可以有几个基本部分组成,故称其为有效地址有效地址EAEA(区别于指令代码中计算物区别于指令代码中计算物理地址时的位移量)。理地址时的位移量)。第第3 3章章 80X86/Pentium80X86/Pentium指令系统指令系统在8086中,任何内存单元的实际地址都是由两部分组成:段基地址和段内偏移地址段基地址和段内偏移地址(段内偏移量)(段内偏移量)而存贮器寻址时,指令中给出的是段内偏移地址。如:ES:TABLE 对实地址方式ES是段基地址,TABLE 为偏移量。PAES16TABLE有效
8、地址有效地址EAEA组成:组成:EAEA 基址基址RegReg 变址变址RegReg 位移量位移量基址基址REG:BX,BPREG:BX,BP变址变址REG:SI,DIREG:SI,DI 第第3 3章章 80X86/Pentium80X86/Pentium指令系统指令系统1.1.立即寻址立即寻址 操作数包含在指令中,操作数本身是指令代码的一部分.例:例:MOV AL,80H MOV AX,1234H 立即操作数可以是8、16位,若是16位的,则存放时必须满足低对低对低,高对高低,高对高的原则。此指令中的立即数只能是源源,不能是目的目的。常用于给Reg.赋初值。1234立即寻址方式示意图立即寻址
9、方式示意图第第3 3章章 80X86/Pentium80X86/Pentium指令系统指令系统二、各种寻址方式二、各种寻址方式 例:例:INCSIMOVAX,BX 3.3.存储器寻址存储器寻址操作数在存贮区中,操作数的有效地址EA在指令中。操作数的物理地址PAPADSDS1616EAEA (或或SSSS、ESES)第第3 3章章 80X86/Pentium80X86/Pentium指令系统指令系统 Reg是任何CPU中的通用RegAX,BX,CXBPAH,AL 等 操作数在Reg中,无需访问存贮器,执行速度快。若选用AX,执行指令时间更短。2.2.寄存器寻址寄存器寻址 操作数存放在指令规定的8
10、、16位Reg中,Reg名字出现在指令中。指令执行后,源操作数不变,目的操作数为源的内容。(1 1)直接寻址直接寻址(EA立即数)有效地址EA直接在指令中给出,它存放在代码段操作码之后。操作数一般在数据段DS中,这是一种默认方式。将ES段中2000H、2001H单元内容分别送AL,AH(低对低,高对高)不管数据在那个段内存放,不管数据在那个段内存放,只要不是只要不是DS,一定要加段超越一定要加段超越前缀。前缀。允许段超越 例:MOV AX,ES:2000H (或 ES:MOV AX,2000H)第第3 3章章 80X86/Pentium80X86/Pentium指令系统指令系统例:例:MOVA
11、L,2000H;将DS段中2000H单元的内容送AL 若DS4000H,则物理地址为:4000H16+2000H42000H。见右图见右图.AXES:2000H2001H 直接寻址中EA可以以变量名的形式给出。例:VALUE DB 12H MOV AL,VALUE或 MOV AL,VALUE ;VALUE又称为符号地址可作寄存器间接寻址的Reg有:DIDI、SISI、BPBP、BXBX,这时:若以若以DIDI、SISI、BXBX间接寻址,则默认操作数在数据段中间接寻址,则默认操作数在数据段中.操作数物理地址操作数物理地址DSDS1616BXBX(或(或SISI、DIDI)若以若以BPBP间接寻
12、址,则默认操作数在堆栈段内间接寻址,则默认操作数在堆栈段内.操作数物理地址操作数物理地址SSSS1616BPBP 若操作数不在以上规定段内,则必须在指令中加上段超越前缀。第第3 3章章 80X86/Pentium80X86/Pentium指令系统指令系统(2)寄存器间接寻址)寄存器间接寻址操作数的有效地址EA在指令的Reg中,即:EA(Reg)例:例:MOV AX,SI ;将DS段SISI1的内容送AL,AH MOV BH,BP ;将SS段BP的内容送BH MOV CX,ES:BX ;将ES段BXBX1内容送CL,CH寄存器间接寻址示意图寄存器间接寻址示意图第第3 3章章 80X86/Pent
13、ium80X86/Pentium指令系统指令系统例:MOV AX,BX 设DS4000H,BX=0100H 寄存器间接寻址示意 图如左。(3)基址寻址)基址寻址 EA(基址基址RegReg)位移量位移量 位移量在指令中给出并与代码一起存放在代码段中。Reg使用规定如下:BPBP、BXBX作基址作基址RegReg,其中其中BPBP默认在默认在SSSS段,段,BXBX默认在默认在DSDS段段,位移量是8或16位,且跟在操作码之后存放在代码段中。EA 位移量BXBP8位16位物理地址DS16BX8位或16位位移量SS16BP8位或16位位移量例:例:MOV AX,BX+05或MOV AX,05BXM
14、OV AX,COUNTBP或MOV AX,BX48位或16为位移量第第3 3章章 80X86/Pentium80X86/Pentium指令系统指令系统第第3 3章章 80X86/Pentium80X86/Pentium指令系统指令系统基址寻址示意图基址寻址示意图(MOV AL,BX+05)(4)变址寻址)变址寻址EA(变址寻址)位移量变址寻址)位移量书写格式、寻址过程皆同基址寻址 SIDIEA 8位或16位位移量第第3 3章章 80X86/Pentium80X86/Pentium指令系统指令系统(6)基址加变址寻址)基址加变址寻址EA(基址基址Reg)()(变址变址RegReg)BX SI B
15、P DIEA 第第3 3章章 80X86/Pentium80X86/Pentium指令系统指令系统注:注:当一种寻址方式中,当一种寻址方式中,基址、变址基址、变址Reg的默认的默认段段Reg不同时,一般由不同时,一般由基址基址Reg来决定默认段来决定默认段Reg,并允许段超越。并允许段超越。例:例:MOV AX,BXSI (或MOVAX,BXSI)默认DS为段Reg。基址加变址寻址示意图基址加变址寻址示意图(7)带位移量的基址加变址寻址()带位移量的基址加变址寻址(又称为相对基址变址寻址又称为相对基址变址寻址)EA(基址基址Reg)()(变址变址Reg)位移量位移量 基址Reg与变址Reg的规
16、定同前,对段Reg的默认同前。第第3 3章章 80X86/Pentium80X86/Pentium指令系统指令系统例:例:MOV AH,MASKBXDI PADS16 BXSIMASK 示意图见右方示意图见右方三、存贮器寻址时的段约定三、存贮器寻址时的段约定存贮器寻址时,一般并不在指令中给出段Reg,而是遵寻一 种约定(默认)方式。见P99表3-2。存储器操作类型默认段寄存器允许超过的段寄存器偏移地址寄存器取指令代码 CS IP堆栈操作 SS SP源串数据访问 DSCS,ES,SS,SI目的串数据访问 ES DI通用数据访问 DSCS,ES,SS偏移地址EA以BP,SP间接寻址的指令 SSCS
17、,ES,SS偏移地址EA第第3 3章章 80X86/Pentium80X86/Pentium指令系统指令系统3.2 8086/80883.2 8086/8088指令系统指令系统第第3 3章章 80X86/Pentium80X86/Pentium指令系统指令系统 8086/8088指令系统是指令系统是80X86的基本指令集。指令的操作数宽度的基本指令集。指令的操作数宽度是是8位或位或16位,偏移地址宽度是位,偏移地址宽度是16位。位。3.2.1 3.2.1 数据传送类指令数据传送类指令(最基本、最重要、最常用的一类操作)(最基本、最重要、最常用的一类操作)1.存储器与寄存器存储器与寄存器2.寄存
18、器与寄存器寄存器与寄存器3.累加器与累加器与I/O端口端口4.立即数到立即数到Reg或存储器或存储器之间的数据传送。之间的数据传送。数据传送类、算术运算类、逻辑运算与移位类、数据传送类、算术运算类、逻辑运算与移位类、串操作类、控制转移类、处理器控制类。串操作类、控制转移类、处理器控制类。共分为共分为6类类指令的助记符指令的助记符 操作数的正确书写格式操作数的正确书写格式指令执行后对标志位的影响。指令执行后对标志位的影响。要求掌握要求掌握可实现可实现指令操作数符号说明规定如下:指令操作数符号说明规定如下:16位立即数 imm168位立即数 imm8立即数,长度可以是8位或16位。imm16位存储
19、器 mem168位存储器 mem8存储器,长度可以是8位或16位。mem16位通用寄存器 reg168位通用寄存器 reg8段寄存器 Sreg通用寄存器,长度可以是8位或16位。reg在多操作数指令中,OPRD1为目标操作数,OPRD2源操作数OPRD1,OPRD2操作数 OPRD 意义 符号 指令操作数符号说明指令操作数符号说明第第3 3章章 80X86/Pentium80X86/Pentium指令系统指令系统 共有14条指令,分为4组,见表3-4。指令类型指令类型 指令功能指令功能 指令书写格式指令书写格式 通用数据传送 字节或字传送字压入堆栈字弹出堆栈字节或字交换字节翻译 MOV 目标,
20、源PUSH 源POP 目标XCHG 目标,源XLAT 地址传送 装入有效地址装入DS寄存器装入ES寄存器 LEA 目标,源LDS 目标,源LES 目标,源 标志位传送 将FR低字节装入AH寄存器将AH内容装入FR低字节将FR内容压入堆栈从堆栈弹出FR内容 LAHFSAHFPUSHFPOPF I/O数据传送 输入字节或字输出字节或字 IN 累加器,端口OUT 端口,累加器 第第3 3章章 80X86/Pentium80X86/Pentium指令系统指令系统除了SAHF和POPF指令外,其余指令执行后对标志位都没有没有影响。一、通用数据传送指令一、通用数据传送指令 共5条,它们(除XCHG外)是唯
21、一允许以Sreg作为操作数的指令。1MOV指令 指令格式:MOV OPRD1,OPRD2;助记符汇编语言格式 OPRD2 OPRD1 两者可以是8/16位,但必须等长。MOV指令有如指令有如下一些形式:下一些形式:MOV reg/Sreg,regMOV reg,SregMOV reg/Sreg,memMOV mem,reg/SregMOV reg,immMOV mem,imm 通用寄存器通用寄存器(AX,BX,CX,DX,BP SP,SI,DI)存存储储器器立立即即数数 段寄存器段寄存器 (CS,SS,DS,ES)传送关系示意图第第3 3章章 80X86/Pentium80X86/Pentiu
22、m指令系统指令系统例:例:MOV AL,CH ;通用寄存器之间传送字节数据MOV DS,AX ;通用寄存器段寄存器(CS不能是目标)MOV AX,0FF3BH ;立即数通用寄存器MOV AL,BUFFER ;存储器通用寄存器MOV DATBP+DI,ES ;段寄存器存储器MOV 1000H,25H ;立即数存储器MOV CX,1000H ;存储器通用寄存器 使用使用MOV指令传送数据时应该注意:指令传送数据时应该注意:立即数和段寄存器立即数和段寄存器CS,IP不能作为目标操作数;不能作为目标操作数;立即数不能直接传送到段寄存器;(立即数不能直接传送到段寄存器;(MOVDS,1000H)两个存储
23、单元之间不能直接传送数据(两个存储单元之间不能直接传送数据(可通过Reg做中介););两个段寄存器之间不能直接传送数据(两个段寄存器之间不能直接传送数据(MOV DS,ES)。(MOV AX,ES MOV DS,AX)第第3 3章章 80X86/Pentium80X86/Pentium指令系统指令系统2堆栈操作指令PUSH/POP 堆栈是按照LIFO原则组织的一段内存区域。内存区域。堆栈设置在堆栈段(SS)内,用SP始终指向堆栈的顶部。始终指向堆栈的顶部。堆栈用于在子程序调用或处理中断时,保存当前的断点地址保存当前的断点地址CS和和IP)和现场数据和现场数据,以便子程序执行完毕后,正确返回到主
24、程序。指令格式:PUSHOPRD2 POP OPRD1源操作数:通用Reg,Sreg,mem目标操作数:通用Reg,Sreg(CS除外),mem.SSSP堆栈示意图第第3 3章章 80X86/Pentium80X86/Pentium指令系统指令系统 断点地址的保存由子程序调用指令子程序调用指令或中断响应来完成(机器做);现场数据保存可通过堆栈操作指令通过堆栈操作指令来实现。堆栈操作时,一定是堆栈操作时,一定是16位操作位操作,一次操作一次操作,需要两个存储单元读需要两个存储单元读(写写)。第第3 3章章 80X86/Pentium80X86/Pentium指令系统指令系统具体的入具体的入/出栈
25、指令如下出栈指令如下:PUSH reg16;POPreg16 PUSH Sreg ;POPSreg PUSH mem16;POPmem16指令格式:PUSHOPRD2 ;SP SP-2 ;(SP1),(SP)OPRD2 POP OPRD1 ;OPRD1SP ;SP SP2指令指令PUSH AX的执行情况的执行情况注:注:1.程序中有一个PUSH,必有一个对应的POP。2.遵循后进先出原则。3.按字进行操作(PUSH AH ;POP BL(错误)4.PUSH CS ;POP CS (可以)(错误)3交换指令XCHG例:XCHG AX,BXXCHG 2530H,CX注:注:1.两个存储器操作数之间
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 考研资料 考研 资料 chapter3
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内