第03章指令系统.pptx
《第03章指令系统.pptx》由会员分享,可在线阅读,更多相关《第03章指令系统.pptx(286页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第3章 指令系统汇编语言与微机接口21 1汇编语言简介汇编语言简介2 2数据寻址方式数据寻址方式3 3指令的机器码表示指令的机器码表示4 4数据传送指令数据传送指令第第3章章指令系统指令系统5 5算术运算指令算术运算指令总目录总目录36 6逻辑运算和移位指令逻辑运算和移位指令7 7程序控制指令程序控制指令8 8串操作指令串操作指令9 9处理器控制指令处理器控制指令第第3章章指令系统指令系统43.1汇编语言简介汇编语言简介 1 1、操作码操作码 2 2、操作数操作数 3 3、寻址方式寻址方式 4 4、指令指令 5 5、指令系统指令系统 53.1指令格式指令格式1 1、操作码、操作码 是指令操作功
2、能的记述是指令操作功能的记述 。2 2、操作数、操作数 指出指令执行的操作所需指出指令执行的操作所需要数据的来源要数据的来源。OPCodeOperand63.1指令格式(续)指令格式(续)3 3、寻址方式、寻址方式 就是寻找就是寻找操作数操作数或或操作数操作数地址的方式地址的方式。MOVMOVAX,1234HAX,1234H;B83412;B83412MOVMOVAX,1234HAX,1234H;A13412;A13412操作码操作数7指令与指令系统4、指令:控制计算机完成某种操作的命令。指令中应包含的信息:运算数据的来源、运算结果的去向、执行的操作。5、指令系统:处理器所能识别的所有指令的集
3、合。83.2数据寻址方式数据寻址方式 3.2.3.2.1 1 立即寻址立即寻址 3.2.2 3.2.2 寄存器寻址寄存器寻址 3.2.3 3.2.3 直接寻址直接寻址 3.2.4 3.2.4 寄存器间接寻址寄存器间接寻址 3.2.5 3.2.5 寄存器相对寻址寄存器相对寻址 3.2.6 3.2.6 基址加变址寻址基址加变址寻址 3.2.7 3.2.7 相对的基址加变址寻址相对的基址加变址寻址 3.2.8 3.2.8 隐含寻址隐含寻址9 1 1、逻辑地址逻辑地址LALA 2 2、有效地址有效地址EAEA 3 3、物理地址物理地址PA PA 3.2数据寻址方式数据寻址方式 三种地址三种地址103.
4、2数据寻址方式数据寻址方式 1 1、逻辑地址、逻辑地址:(LogicalAddress)2 2、有效地址、有效地址:(EffectiveAddress)指令中给出的操作数地址指令中给出的操作数地址,叫逻辑地址。叫逻辑地址。以以段基值:偏移量段基值:偏移量形式呈现。形式呈现。如:如:DSDS:BX BX 在寻址方式中,逻辑地址的形成是由多个分量组合而在寻址方式中,逻辑地址的形成是由多个分量组合而成,该组合中的偏移地址又叫有效地址。成,该组合中的偏移地址又叫有效地址。有效地址有效地址EAEA是一个是一个1616位无符号数,表示位无符号数,表示操作数操作数所在所在单元到段首的距离。即单元到段首的距离
5、。即逻辑地址逻辑地址的的偏移地址偏移地址。113.2数据寻址方式数据寻址方式 3 3、物理地址、物理地址:(PhysicalAddress)4 4、PAPA的实际意义:的实际意义:在在存储器存储器里以里以字节字节为单位存储信息为单位存储信息,每一个字节单元每一个字节单元给以一个唯一的给以一个唯一的存储器地址存储器地址,称为物理地址,称为物理地址。PA就是,出现在就是,出现在CPU外部地址总外部地址总线上的寻址物理内存的地址信号线上的寻址物理内存的地址信号 12 目的操作数和源操作数均可采用不同的寻址方式;目的操作数和源操作数均可采用不同的寻址方式;目的操作数和源操作数均可采用不同的寻址方式;目
6、的操作数和源操作数均可采用不同的寻址方式;两个操作数的类型必需一致。两个操作数的类型必需一致。两个操作数的类型必需一致。两个操作数的类型必需一致。5 5、MOVMOV数据传送指令数据传送指令格式格式:MOVdest,source目的目的源源13操操作作数数可可能能存存放放的的场场所所操作数就在指令中操作数就在指令中 操作数在操作数在CPUCPU的的RegisterRegister中中操作数在操作数在MemoryMemory中中143.2.13.2.1立即寻址(立即寻址(Immediate addressingImmediate addressing)例:例:例:例:MOVMOVBL,20HBL
7、,20H;B320B320MOVMOVAX,34EAHAX,34EAH;B8EA34B8EA34 n操作数就在指令中,紧跟在操作码后面。作为指操作数就在指令中,紧跟在操作码后面。作为指令一部分存放在内存的代码段中。令一部分存放在内存的代码段中。n这种操作数称为立即数。这种操作数称为立即数。153.2.13.2.1立即寻址立即寻址(ImmediateImmediateaddressingaddressing)立即数只能作为源操作数。立即数只能作为源操作数。立即数可以是无符号数或带符号数。立即数可以是无符号数或带符号数。其数值应在可以取值的范围内。其数值应在可以取值的范围内。16 图3.2 立即寻
8、址 17 MOV AL,80H MOV AX,1090H MOV EAX,12345678H18例:例:MOVAL,BL;88D8MOVAX,1234H;B83412MOVAL,AH;88E0 3.2.2寄存器寻址(Register addressing)n操作数在操作数在CPUCPU中的寄存器中。中的寄存器中。n指令中源操作数和目的操作数都可用这种寻址方式。指令中源操作数和目的操作数都可用这种寻址方式。19 3.2.2寄存器寻址(Register addressing)20存储器寻址存储器寻址在大多数情况下,操作数在存储器中。有效地址(EffectiveAddress)EA=基址基址+变址变
9、址比例因子比例因子+位移量位移量21例例:MOVAX,2100H;A10021MOV1234H,AL;A234123.2.3 3.2.3 直接寻址直接寻址(Direct addressing)n有效地址在指令中直接给出;有效地址在指令中直接给出;n默认段基地址在默认段基地址在DSDS段寄存器,可使用段超越前段寄存器,可使用段超越前缀改变。缀改变。22MOVAX,2000H有效地址EA=2000H其过程如图3.3所示。指令中的16位段内偏移地址的低字节在前,高字节在后。23图3.3 直接寻址 24两个概念两个概念u段超越:段超越:MOVAX,2100HMOVAX,ES:2100Hu符号地址:符号
10、地址:MOVAX,RESULT25(Registerindirectaddressing)MOV AX,BXMOVAX,SIMOVAX,DIMOVAX,BP3.2.4寄存器间接寻址寄存器间接寻址n 内存单元的逻辑偏移地址通过寄存器间接给出。内存单元的逻辑偏移地址通过寄存器间接给出。26n由寄存器间接给出操作数的偏移地址;n存放偏移地址的寄存器称为间址寄存器间址寄存器,它们是:BX,BP,SI,DIn操作数的段地址(数据处于哪个段)取决于选择哪一个间址寄存器:3.2.4寄存器间接寻址寄存器间接寻址BP默认在堆栈段SSBX,SI,DI默认在数据段DS27n例:MOVAX,SIn其过程如图3.5(a
11、)所示。n例:MOVAX,BPn其过程如图3.5(b)所示。28图3.5 寄存器间接寻址 29(RegisterRelativeAddressing)EA=+DISP BP BX EA=+DISP DI SI 3.2.5 寄存器相对寻址寄存器相对寻址n这种寻址方式中提出位移量的概念。这种寻址方式中提出位移量的概念。n即在寄存器间接寻址给出的偏移地址上,加一相即在寄存器间接寻址给出的偏移地址上,加一相对位移量。对位移量。305 5、寄存器相对寻址、寄存器相对寻址(续)(续)当使用当使用BXBX或或BPBP寄存器时,称寄存器时,称基址寻址基址寻址。使用使用SISI或或DIDI寄存器时,称寄存器时,
12、称变址寻址变址寻址。例例:MOVCX,BX+36HMOVBP20,ALDISP 可以为8位、16位或32位补码。31在一般情况下,若用BX、SI或DI进行相对寻址时,以数据段寄存器DS作为地址基准。而用BP寻址时,则以堆栈段寄存器作为地址基准。例:MOVAX,DISPSI其过程如图3.6所示。32图3.6 寄存器相对寻址 33 (Based Indexed addressing addressing)EA=+BP DI BX SI 3.2.6 基址加变址寻址n将基址寄存器和变址寄存器联合起来进行将基址寄存器和变址寄存器联合起来进行的寻址就称为基址加变址寻址。的寻址就称为基址加变址寻址。34BX
13、BPSIDI基址寄存器变址寄存器EA=EA=基址基址+变址变址35同理,若用BX作为基地址,则操作数应放在数据段DS区域中;若用BP作为基地址,则操作数应放在堆栈段SS区域中。例:MOVAX,BXSI其过程如图3.7所示。36 图3.7 基址、变址寻址 37(Relative BasedIndexedaddressing)例例:MOVAX,8AHBXSI该例中该例中EABXSI8AHPADS10HBXSI8AH 3.2.7 3.2.7 相对的基址加变址寻址相对的基址加变址寻址n它的它的EAEA是由三部分组成的。是由三部分组成的。n基址寄存器基址寄存器BXBX或或BPBP的内容,加上变址寄存的内
14、容,加上变址寄存器的内容,再加位移量。器的内容,再加位移量。38 3.2.7 3.2.7 相对的基址加变址寻址(续)相对的基址加变址寻址(续)EA=+BP DI 位移量BX SI 8位或16位n基址、变址、相对寻址方式实际上是第基址、变址、相对寻址方式实际上是第6 6种寻址方种寻址方式的扩充。式的扩充。n即操作数的地址是由基址、变址方式得到的地址再即操作数的地址是由基址、变址方式得到的地址再加上由指令指明的加上由指令指明的8 8位或位或1616位的相对位移地址而得位的相对位移地址而得到的。到的。39例:MOV AX,DISPBXSI其过程如图3.8所示。40图3.8 基址、变址、相对寻址 41
15、的使用规定的使用规定立即数在立即数在中表示直接地址,如中表示直接地址,如1000H;有相加的意思,下面几种写法是等价的有相加的意思,下面几种写法是等价的6BXSI,BX+6SI,BX+SI+6;只有只有BX,BP,SI,DI可以出现在可以出现在内,表示间内,表示间接地址。它们可以单独出现,也可以组合。接地址。它们可以单独出现,也可以组合。但但BX和和BP不允许出现在同一个不允许出现在同一个中中,SI和和DI也一样;也一样;若若中含中含BP,则隐含使用,则隐含使用SS来提供段基来提供段基址,其它均隐含用址,其它均隐含用DS。均可以段超越。均可以段超越。42433.2.8隐含寻址隐含寻址n 在指令
16、中没有明显的标出,而指定寄存器在指令中没有明显的标出,而指定寄存器参加操作,称之为参加操作,称之为“隐含寻址隐含寻址”。DAAMULBLPUSHAXPOPCX.44 8.隐含寻址(续)隐含寻址(续)n在有些指令的指令码中,不仅包含有操作码在有些指令的指令码中,不仅包含有操作码信息,而且还隐含了操作数地址的信息。信息,而且还隐含了操作数地址的信息。n例如乘法指令例如乘法指令MULMUL的指令码中只需指明一个的指令码中只需指明一个乘数的地址,另一个乘数和积的地址是隐含乘数的地址,另一个乘数和积的地址是隐含固定的。固定的。n 这种将操作数的地址隐含在指令操作码中的这种将操作数的地址隐含在指令操作码中
17、的寻址方式称为隐含寻址。寻址方式称为隐含寻址。4546 9.9.相对的带比例因子的变址寻址相对的带比例因子的变址寻址n即操作数的即操作数的EAEA地址是由变址寄存器之值乘以比例地址是由变址寄存器之值乘以比例因子后,再加上由指令指明的因子后,再加上由指令指明的8 8位或位或1616位的相对位的相对位移量而得到的。位移量而得到的。n比例因子为比例因子为K=1K=1、2 2、4 4、8 8。n方便处理:字节、字、双字和四字数据。方便处理:字节、字、双字和四字数据。EA=变址变址比例因子比例因子+位移量位移量例如:IMULEBX,ESI*4+07H4710.10.基址加比例因子的变址寻址基址加比例因子
18、的变址寻址n即操作数的即操作数的EAEA地址是由基址寄存器内容,地址是由基址寄存器内容,与变址寄存器之值乘以比例因子的乘积与变址寄存器之值乘以比例因子的乘积之和而得到的。之和而得到的。EA=基址基址+变址变址比例因子比例因子48例如:MOVEAX,EBXESI*4MOVECX,EDI*8EAX4911.11.相对的基址加比例因子的变址寻址相对的基址加比例因子的变址寻址EA=EA=基址基址+变址变址比例因子比例因子+位移量位移量n即操作数的即操作数的EAEA地址是由基址寄存器内容,与地址是由基址寄存器内容,与变址寄存器之值乘以比例因子的乘积之和,变址寄存器之值乘以比例因子的乘积之和,n再加上由指
19、令指明的再加上由指令指明的8 8位或位或1616位的相对位移量位的相对位移量而得到的。而得到的。50例如:MOVEAX,EBXESI*4+1200HMOVEAX,EDI*4EBP+80511.若若CS=A000H,求当前代码段在存储器中的物理地求当前代码段在存储器中的物理地址范围是什么?若数据段位于址范围是什么?若数据段位于52000H到到61FFFH的的64K范围内,问范围内,问DS=?2.若当前若当前SS=3500H,SP=0800H,说明堆栈段在存储说明堆栈段在存储器中的物理地址,若此时入栈器中的物理地址,若此时入栈10个字节,个字节,SP内容是内容是什么?若再出栈什么?若再出栈6个字节
20、,个字节,SP为什么值?为什么值?3.某程序数据段中存放了两个字某程序数据段中存放了两个字1EE5H和和2A8CH,已已知(知(DS)=7850H,数据存放的偏移地址为数据存放的偏移地址为3121H及及285AH。试画图说明它们在存储器中的存放情况。试画图说明它们在存储器中的存放情况。若要读取这两个字,需要对存储器进行几次操作?若要读取这两个字,需要对存储器进行几次操作?523.3指令的机器码表示指令的机器码表示 3.3.1 3.3.1 转移地址的寻址方式转移地址的寻址方式 3.3.2 3.3.2 指令格式和数据类型指令格式和数据类型 3.3.3 3.3.3 编码目的和特点编码目的和特点 3.
21、3.4 3.3.4 指令代码的编制指令代码的编制53 3.3.1 3.3.1 转移地址的寻址方式转移地址的寻址方式 1 1、段内直接寻址段内直接寻址 2 2、段内间接寻址段内间接寻址 3 3、段间直接寻址段间直接寻址 4 4、段间间接寻址段间间接寻址54四、四、转移地址的寻址方式(续转移地址的寻址方式(续1)(1 1)、程序转移:)、程序转移:(2 2)、段内转移:)、段内转移:取指令的地址由取指令的地址由CS和和IP决定。决定。所谓程序转移,就是修改所谓程序转移,就是修改CS和和IP的值。的值。只修改IP的值就是段内转移。55四、四、转移地址的寻址方式(续转移地址的寻址方式(续2)(3 3)
22、、段间转移:)、段间转移:(4 4)、直接转移和间接转移:)、直接转移和间接转移:同时修改同时修改CS和和IP的值,就是的值,就是 段间转移。段间转移。无论段内转移还是段间转移都有 直接转移和间接转移之分。56指令由操作码和操作数(地址码)组指令由操作码和操作数(地址码)组指令由操作码和操作数(地址码)组指令由操作码和操作数(地址码)组成。成。成。成。8086808680868086的指令长度是可变的,一条指的指令长度是可变的,一条指的指令长度是可变的,一条指的指令长度是可变的,一条指令一般由令一般由令一般由令一般由1 1 1 16 6 6 6个字节组成。个字节组成。个字节组成。个字节组成。操
23、作码操作码操作数操作数3.3.2指令格式和数据类型指令格式和数据类型1.1.指令格式:指令格式:572.2.指令中的操作数指令中的操作数 单操作数指令单操作数指令指令助记符指令助记符指令的指令的16进制代码进制代码INCAX;40HINCBX;43H58 双操作数指令双操作数指令指令助记符指令助记符指令的指令的16进制代码进制代码MOVAL,04;B004HMOVAX,04;B80400 三个操作数指令三个操作数指令三个操作数指令三个操作数指令 8086808680868086指指指指令令令令系系系系统统统统中中中中,大大大大多多多多数数数数指指指指令令令令中中中中只只只只有有有有1 1 1
24、12 2 2 2个个个个操操操操作作作作数数数数,但但但但也也也也有有有有少少少少数数数数指指指指令令令令中中中中有有有有3 3 3 3个个个个操操操操作作作作数数数数,不不不不过有一操作数隐含在操作码中。过有一操作数隐含在操作码中。过有一操作数隐含在操作码中。过有一操作数隐含在操作码中。ADD AX,BXADD AX,BXADD AX,BXADD AX,BX ;该指令完成操作数该指令完成操作数该指令完成操作数该指令完成操作数AXAXAXAX和和和和BXBXBXBX相加。相加。相加。相加。593.3.指令中的数据类型指令中的数据类型无符号数无符号数无符号数无符号数 带符号数带符号数带符号数带符
25、号数 ASCIIASCII码码码码 BCDBCD数(压缩数(压缩数(压缩数(压缩BCDBCD和非压缩和非压缩和非压缩和非压缩BCDBCD)603.3.3编码目的和特点编码目的和特点二、机器语言指令的编码目的和特点二、机器语言指令的编码目的和特点目的:用二进制编码表示各种操作和寻址方式。目的:用二进制编码表示各种操作和寻址方式。特点:没有指令与机器语言的对照表,只有每种特点:没有指令与机器语言的对照表,只有每种 基本指令类型的编码格式。基本指令类型的编码格式。613.3.4机器语言指令代码的编制机器语言指令代码的编制1.1.寄存器之间或寄存器与存储器之间数据传寄存器之间或寄存器与存储器之间数据传
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 03 指令系统
限制150内