资源描述:
《《指令的寻址方式》PPT课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、5.18086指令的寻址方式指令:微处理器提供的某一种基本操作功能。(*)进行什么操作(操作码)(*)对什么进行操作(操作数或操作数的来源)操作后的结果数据可以存放到某个原来的操作数位置指令系统:计算机提供所有的指令的集合。(*)指令系统随CPU的不同而不同机器语言:采用二进制的机器码表示指令、数据和指令数据的地址等信息的。101110000000010100000000汇编语言:采用助记符表示的程序设计语言。汇编语言源程序是机器语言程序的符号表示。(编译器处理)MOVAX,O3H汇编语言指令的格式:标号:指令助
2、记符操作数;注释例如:LINE1:INCCX;计数器加一ADDAX,BXDAA(*)标号的命名规则(*)指令助记符不可缺省(*)操作数在不同的情况下可以有2个,1个或者是没有(*)注释必须以分号开头,注释不生成目标代码(*)四个部分可以用制表符隔开。寻址方式:指令中给出操作数的方式操作数的寻址,例如MOVAX,[1234H]指令的寻址,例如JUMPLAB操作数的来源:①指令代码中直接给出。MOVAX,1200H②存放在寄存器中。MOVAX,BX③存放在指定的存储单元中。MOVAX,[3456H]1、立即寻址:操作
3、数直接包含在指令中,在操作码之后。,(*)不必执行总线周期访问存储器,故称之为立即数。(*)立即数可以是一个8位或16位数。例如:MOVAL,80HMOVAX,1090H(*)立即数寻址方式只能用于源操作数,不能用于目的操作数。错误:MOV1200,AX(*)一条指令中源操作数和目的操作数可能有不同的寻址方式2、寄存器寻址:操作数包含在CPU内的某个寄存器中,指令中直接给出该寄存器名,16位:AX,BX,CX,DX,SI,DI,SP,BP8位:AL,BL,CL,DL,AH,BH,CH,DH例如:INCCXMOV
4、AX,BX以下介绍的几个寻址方式将针对存储器操作数而言的。若操作数在存储器中,一般位于数据段、堆栈段或附加段中,这时指令中给出的是操作数所在单元的地址(EA)或产生EA的计算方式。显然执行这类指令时:①CPU首先要计算出有效地址EA(EA是一个不带符号的16位数)②再由总线接口部件BIU计算出物理地址③再执行总线周期按该物理地址访问存储器并取出操作数送给EU,由EU具体执行该指令。3、直接寻址:操作数在存储器中的16位有效地址由指令直接给出。例如:MOVAX,[1070H]MOVAL,[1070H](*)要用方
5、括号括起地址以免与立即数寻址混淆(*)默认是从数据段取数,如果不是数据段则要在前面加段跨越前缀例如:MOVBX,[2000H]MOVBX,ES:[2000H]4、间接寻址(4A)寄存器间接寻址:操作数的有效地址在指令中指定的某个寄存器中。例如:MOVAX,[BX](*)可用的寄存器只有四个BX,BP,SI,DI错误:MOVAX,[DX](*)如果间址寄存器为BP则默认为是堆栈段,如果间址寄存器为BX,SI,DI则默认为是数据段。(*)在一条指令中,不能同时有两个存储器操作数(避免指令过长)。错误:MOV[BX],
6、[1200H](4B)寄存器相对间接寻址:有效地址EA等于指令所指示的寄存器中的内容再加上指令中给定的8/16位的位移量。例如:MOVAX,[SI+100]MOVAX,[SI]+100MOVAX,100[SI](*)寄存器相对寻址有以上三种写法(*)寄存器相对寻址可以用来寻址一维表中的数据(4C)基址变址寻址:基址变址寻址是操作数的有效地址EA由指令指定的一个基址寄存器(BX或BP)和一个变址寄存器(SI或D1)内容之和。例如:MOVAX,[BX][DI]MOVAX,[BX+DI](*)基址变址寻址可以用来寻址二
7、维表中的数据(*)要注意只能是基址和变址的组合而不能用两个基址或两个变址的组合错误:MOVAX,[SI][DI]MOVAX.[BX][BP](4D)相对基址变址寻址:例如:MOVAX,100[BX][SI]MOVAX,[BX+SI+100H]MOVAX,100[BX+SI](*)所有的存储器操作数寻址方式都支持段跨越前缀。(*)使用BP寄存器做间接寻址时注意默认的段。测试题一:写出下列指令中源操作数的寻址方式:(1)MOVSI,1000(2)MOVBH,AL.(3)MOVAX,[SI][BX](4)MOVBP,[
8、BX](5)MOVDI,[2130H](6)MOVDL,[BX十SI十20H](7)MOVDI,[BX十100]测试题二:指出下列指令的错误之处(1)MOV1000H,AX(2)MOVAX,[DX](3)MOVAX,[SI][DI](4)MOV[BX],[SI](5)MOVBP,AL测试题三:设有关寄存器及有关存储单元的内容如下:(DS)=2000H,(BX)=0100H