寻址方式与指令系统_第1页
寻址方式与指令系统_第2页
寻址方式与指令系统_第3页
寻址方式与指令系统_第4页
寻址方式与指令系统_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第2章:2.28088/8086的寻址方式从8088/8086的指令格式入手,论述:立即数寻址方式寄存器寻址方式存储器寻址方式进而熟悉8088/8086汇编语言指令格式,尤其是其中操作数的表达方法为展开8088/8086指令系统做好准备第4章:4.1计算机指令格式操作码说明计算机要执行哪种操作,如传送、运算、移位、跳转等操作,它是指令中不可缺少的组成部分,其长度取决于指令系统中的指令条数操作对象(操作数)是指令执行的参与者,即各种操作的对象有些指令不需要操作数,通常的指令都有一个或两个操作数,也有个别指令有3个甚至4个操作数操作码操作对象指令由操作码和操作对象两部分组成4.1计算机指令格式零地址指令,一般有如下两种情况:无需任何操作数,如空指令所需操作数是隐含约定的一地址指令,一般有如下两种形态:只有目标操作数,功能:OP(D1)→D1隐含约定目的操作数,功能:按D1取出源操作数,从约定的累加器A中取出目的操作数进行OP运算,结果存入A。即(D1

)OP(A)→AOP格式:NOP;空操作CLI;清除中断标志OP格式:D1例如:INCCX;(CX)+1→CXOP格式:D1例如:MULBL;(AL)*(BL)→AL4.1计算机指令格式二地址指令格式功能(D1

)OP(D2

)→D1

举例目的OPD1D1源ADDCX,2000H;(CX)+2000H→CXADDAX,BX;(AX)+(BX)→AX4.1计算机指令格式三地址指令格式功能(D1

)OP(D2

)→D3

大、中型机上采用,微型机一般不用OPD1D2D3第4章:指令的助记符格式(补充)操作数2,常被称为源操作数src(一般在执行过程中保持不变),它表示参与指令操作的一个对象操作数1,成被称为目的操作数dest(一般涌来存放结果),它不仅可以作为指令操作的一个对象,还可以用来存放指令操作的结果分号后的内容是对指令的解释

操作码

[操作数1],[操作数2]

;注释汇编语句格式第4章:指令的助记符格式(补充)每种指令的操作码:用一个助记符表示(指令功能的英文缩写)对应着机器指令的一个或多个二进制编码指令中的操作数:可以是一个具体的数值可以是存放数据的寄存器或指明数据在主存位置的存储器地址4.2指令长度与字长的关系指令的长度主要取决于指令操作码的长度、操作数地址的长度和操作数地址的个数通常把最常用的指令设计成短格式指令,以便节省存储空间和提高指令的执行速度指令字长与主存的编址单位及CPU的机器字长有一定的关系在变字长的指令系统中,一般都将指令操作码放在第一字节中,相关信息段,最好按一定的顺序排列,便于CPU解释执行8086/8088CPU指令系统格式举例操作码寻址方式与寄存器号位移量/立即数位移量/立即数立即数立即数第1字节2字节3字节4字节5字节6字节4.380X86指令(编码)格式与寻址方式4.3.18086/8088/80286指令编码格式opcodemodregr/mdispData操作码方式寄存器(Mod字节)位移量立即数第一个字节为操作码第二个字节为操作数的寻址方式,分三个域第三部分为操作数关于寻址方式字节的分析操作码字节中的D1、D0位分别用于表示指令中数据传送的方向和操作数类型D=0,则reg域指定的寄存器用作源操作数D=1,则reg域指定的寄存器用作目的操作数,而源操作数可来自r/m域中的存储器或另一个寄存器W(宽度)用于表示操作数是8位还是16位。W=0,指令中两个操作数均为8位,W=1,则为16位。DWD7D6D5D4D3D2D1D0D7D6D5D4D3D2D1D0Modregr/m操作码字节寻址方式字节关于寻址方式字节的分析Reg域:规定一个寄存器操作数,他在指令中作为源操作数还是目的操作数由D位规定Mod域:用来区分另一个操作数是在寄存器,还是在存储器中关于寻址方式字节的分析r/m域:受寻址方式mod域所控制。若mod=11为寄存器寻址,r/m域指出第二个操作数所在寄存器号;mod=00、01、10时均为存储器寻址方式,r/m域指出应如何求得操作数存放在寄存器中的有效地址举例例1:写出指令MOV[BX+DI-6],CL的机器语言编码1.可用符号写成MOVmem,reg的形式,故该指令编码形式为:100010DWmodregr/mdisp82.由于目的数是存储器寻址,D=0和reg域指定了源寄存器。CL的reg编码为001,操作数为8位,W=0,则有:10001000mod001r/mdisp83.r/m=001,是对[BX+DI+disp]的寻址计算。位移量disp=-6,为FAH。当mod=01时,为选取8位位移量,则有:100010000100100111111010=88H、49H、FAH例2:写出MOVAH,[BX+DI+50H]的机器语言编码。例3:写出ADDAX,[BX+DI+0826H]的机器语言编码。opcodeDWmodregr/mdisp8100010100110000101010000=8AH、61H、50HopcodeDWmodregr/mDisp-LDisp-H00000011010000010010011000001000=03H、41H、26H、08H4.3.28086/8088的寻址方式指令系统设计了多种操作数的来源寻找操作数的过程就是操作数的寻址把寻找操作数的方式叫做(操作数)寻址方式理解操作数的寻址方式是理解指令功能的前提操作数采取哪一种寻址方式一方面,会影响处理器执行指令的速度和效率另一方面,对程序设计也很重要操作数的存放位置有3种:包含在指令字节中放在CPU内部寄存器中放在内存单元(数据区)中程序转移地址的寻址方式MOV指令4.3.2立即数寻址方式指令中的操作数直接存放在机器代码中,紧跟在操作码之后(操作数作为指令的一部分存放在操作码之后的主存单元中)这种操作数被称为立即数imm可以是8位数值i8(00H~FFH)也可以是16位数值i16(0000H~FFFFH)立即数寻址方式常用来给寄存器和存储单元赋值,多以常量形式出现演示MOVAX,0102H ;AX←0102H又如:主要用途:对寄存器赋值特点:数据可从指令队列中取出,不必执行单独的总线周期注意:只能是整数,只能为源操作数。16位时,底字节跟在指令码后面MOVAL,80H ;AL←80HADDAX,3064H ;AX←(AX)+3064H寄存器寻址方式操作数存放在CPU的内部寄存器reg中:8位寄存器r8:AH、AL、BH、BL、CH、CL、DH、DL16位寄存器r16:AX、BX、CX、DX、SI、DI、BP、SP4个段寄存器seg:CS、DS、SS、ES特点:速度快。且双操作数指令中的一个操作数必为寄存器寻址演示MOVAX,BX ;AX←BX存储器寻址方式操作数在主存储器中,用主存地址表示程序设计时,8088采用逻辑地址表示主存地址段地址在默认的或用段超越前缀指定的段寄存器中指令中只需给出操作数的偏移地址(有效地址EA)8086设计了多种存储器寻址方式1、直接寻址方式2、寄存器间接寻址方式3、寄存器相对寻址方式4、基址变址寻址方式5、相对基址变址寻址方式1.直接寻址方式直接寻址方式的有效地址在指令中直接给出默认的段地址在DS段寄存器,可使用段超越前缀改变用中括号包含有效地址,表达存储单元的内容演示MOVAX,[2000H] ;AX←DS:[2000H]MOVAX,ES:[2000H] ;AX←ES:[2000H]2.寄存器间接寻址方式有效地址存放在基址寄存器BX或变址寄存器SI、DI中,即寄存器中的内容是操作数的有效地址默认的段地址在DS段寄存器,可使用段超越前缀改变演示MOVAX,[BX] ;AX←DS:[BX]3.寄存器相对寻址方式有效地址是寄存器内容与有符号8位或16位位移量之和,寄存器可以是BX、BP或SI、DI有效地址=BX/BP/SI/DI+8/16位位移量段地址对应BX/SI/DI寄存器默认是DS,对应BP寄存器默认是SS;可用段超越前缀改变演示MOVAX,[SI+06H] ;AX←DS:[SI+06H]MOVAX,06H[SI] ;AX←DS:[SI+06H]4.基址变址寻址方式有效地址由基址寄存器(BX或BP)的内容加上变址寄存器(SI或DI)的内容构成:有效地址=BX/BP+SI/DI段地址对应BX基址寄存器默认是DS,对应BP基址寄存器默认是SS;可用段超越前缀改变演示MOVAX,[BX+SI] ;AX←DS:[BX+SI]MOVAX,[BX][SI] ;AX←DS:[BX+SI]5.相对基址变址寻址方式有效地址是基址寄存器(BX/BP)、变址寄存器(SI/DI)与一个8位或16位位移量之和:有效地址=BX/BP+SI/DI+8/16位位移量段地址对应BX基址寄存器默认是DS,对应BP基址寄存器默认是SS;可用段超越前缀改变演示MOVAX,[BX+DI+6] ;AX←DS:[BX+DI+6]MOVAX,6[BX+DI]MOVAX,6[BX][DI]存储器寻址方式中的变量(补充)变量指示内存中的数据,变量名具有地址属性。存储器寻找方式中经常采用变量形式变量的定义WVARDW1234H;定义16位变量WVAR,具有初值1234H;假设其偏移地址为10H单独引用变量名是直接寻址方式MOVAX,WVAR;指令功能:AX=1234H;等同于MOVAX,[0010H]相对寻址方式中,变量名表示其偏移地址,相当于位移量MOVAX,[DI+WVAR];=MOVAX,WVAR[DI];等同于MOVAX,[DI+0010H]相对寻址方式中的位移量(补充)在寄存器相对和相对基址变址寻址方式中,其位移量不仅可用常量表示,也可用符号表示这个符号可以是变量名,例如WVAR变量,而且支持多种表达形式MOVAX,[DI+WVAR];;等同于MOVAX,WVAR[DI]MOVAX,[BX+SI+WVAR]

;等同于MOVAX,[SI+WVAR]

;等同于MOVAX,WVAR[BX+SI]

;等同于MOVAX,WVAR[BX][SI]I/O端口寻址若I/O端口与存储器统一编址,上述7种寻址方式同样适用单独编址时,寻址方式有:直接端口寻址方式—端口地址用8位表示,是指令的一部分。如:INAL,21H间接端口寻址方式—此时端口地址为16位表示,并规定只能存放在DX中。如:OUTDX,AL程序转移地址的寻址方式段内直接(相对)寻址方式转移地址为IP当前内容与指令规定的8位或16位位移量之和。8位时称为短程转移;16位时为近程转移适用于条件转移和无条件转移指令,条件转移只能用8位位移量位移量指令IPEA有效转移地址程序转移地

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论