欢迎来到天天文库
浏览记录
ID:36893262
大小:517.60 KB
页数:28页
时间:2019-05-10
《《寻址方式》PPT课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第三章指令系统曲阜师范大学杏坛学院3.28086/8088寻址方式寻址方式就是指令中用于说明操作数所在地址的方法,或者说是为获取实际操作数地址而采取的方法。8086/8088的基本寻址方式有六种。3.2.1立即寻址操作数直接由指令提供的寻址方式称为立即寻址方式。在立即寻址方式中所提供的操作数直接包含在指令中。它紧跟在操作码的后面,与操作码一起放在代码段区域中。如图所示。立即数:直接由指令提供的具体操作数称为立即数。例如:MOVAX,3000H特点:(1)立即数可以是8位的,也可以是16位的。若是16位的,则存储时低位在前,高位在后。只能是整数,不能是小数、变
2、量或其它数据类型。(2)立即数只能作为源操作数,立即寻址主要用来给寄存器或存储器赋初值。(3)速度快(操作数直接由指令中获得,不需要运行总线周期)(4)立即数作为指令操作码的一部分与操作码一起放在代码段区域中。3.2.1立即寻址【例3.1】MOVAX,10执行后(AX)=?该例中源操作数为立即寻址方式,立即数为10,存放在指令的下一单元。图形表示:执行:10→AX执行后:(AX)=000AH操作数的有效地址EA直接由指令直接提供的寻址方式称为直接寻址方式。在直接寻址方式中操作数地址的16位偏移量直接包含在指令中。它与操作码—起存放在代码段区域,操作数一般在数
3、据段区域中,它的地址为数据段寄存器DS加上这16位地址偏移量。如图所示。例如:MOVAX,DS:[2000H]3.2.2直接寻址特点:(1)如果指令中没有指明操作数存放在哪一段,则系统默认为数据段。如上例可写成:MOVAX,[2000H](2)操作数的有效地址与操作码—起存放在代码段区域,操作数一般在数据段区域中。(3)直接寻址是对存储器进行访问时可采用的最简单的形式。这种寻址方法是以数据段的地址为基础,可在多达64KB的范围内寻找操作数。(4)操作数的实际地址为数据段寄存器DS左移4位加上操作数的有效地址(16位地址偏移量)16位地址偏移量。(5)如果要对
4、除DS以外的其他段寄存器进行寻址,则在指令中必须指定段寄存器。如:MOVAX,[2000H];数据段(可省略DS)MOVBX,ES:[3000H];操作数在附加段ES(不能省略ES)(6)直接寻址的地址用“[]”括起来,以区别立即数。3.2.2直接寻址【例5.2】寄存器和存储器内容为:(AX)=1212H,BUF为数据段定义的变量,其偏移地址是2000H,(DS)=3000H,(32000H)=4545H。执行指令:MOVAX,BUF执行后:(AX)=?图形表示:执行:(32000H)→AX执行后:(AX)=4545H操作数直接存放在CPU的内部寄存器中(如
5、:寄存器AX、BX、CX、DX等)的寻址方式称为寄存器寻址方式。例如:MOVDS,AXMOVAL,BH特点:(1)操作数放在CPU的通用寄存器中。16位:AX、BX、CX、DX、SI、DI、SP、IP8位:AH、AL、BH、BL、CH、CL、DH、DL通常放在AX、AH、AL中,因为AX是累加器,结果一般放在AX中,这样指令会更短些。(2)采用寄存器寻址时,操作就在CPU内部进行,不需要使用总线周期,速度快。3.2.3寄存器寻址(3)一条指令中,既可以对源操作数采用寄存器寻址,也可以对目的操作数采用寄存器寻址,也可二者均采用寄存器寻址。【例3.3】下列程序执
6、行后,(AX)=?,(BX)=?MOVAX,1234HMOVBX,5678HADDAX,BX该程序中MOV指令为数据传送指令操作符,ADD指令为加法指令操作符,三条指令皆为双操作数指令。第一、二条指令AX、BX皆为目的操作数地址,为寄存器寻址方式。第三条指令中,AX为目的操作数地址,BX为源操作数地址。源地址和目的地址皆为寄存器寻址方式。3.2.3寄存器寻址3.2.4寄存器间接寻址操作数是在存储器中,但是,操作数的有效地址EA(偏移量)在以下四个寄存器SI、DI、BP、BX之一中。可以分成两种情况:(1)以SI、DI、BX间接寻址,则通常操作数在现行数据段区
7、域中,即数据段寄存器(DS)*16加上SI、DI、BX中的16位偏移量,为操作数的地址,例如:MOVAX,[SI],操作数地址是:(DS)╳16+(SI)(2)以寄存器BP间接寻址,则操作数在堆栈段区域中。即堆栈段寄存器(SS)*16与BP的内容相加作为操作数的地址,例如:MOVAX,[BP]操作数地址是:(SS)╳16+(BP)若在指令中规定是段超越的,则BP的内容也可以与其它的段寄存器相加,形成操作数地址。例如:MOVAX,DS:[BP]操作数地址是:(DS)╳16+(BP)特点:(1)指令中的基址寄存器是BX、SI、DI,则默认为操作数在数据段DS中,
8、指令中的基址寄存器若是BP,则默认为操作数在堆栈段S
此文档下载收益归作者所有