第六节 指令的寻址方式.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第六节 指令的寻址方式

第六节 指令的寻址方式 6.1 指令的概念和格式 所谓指令,就是让计算机执行的基本操作命令。我们知道,计算机只能接受或发出二进制形式的信息。我们输入给计算机的任何指令,?最终也都要编译成二进制格式的指令代码,这称为机器码。以机器码格式编写指令是不方便?的。为了便于人们编写、阅读程序,计算机的指令往往允许被编写成具有某种便于记忆理解的符号形式?(也叫助记符),再经过专门的软件转换为对应的机器码,才能为计算机所认识,并执行。单片机中通常使用的由助记符组?成的指令格式,属于汇编语言。上面说的机器码,也可叫做机器语言。 指令的格式 用汇编语言表示的指令格式为: 标号:操作码助记符 目的操作数 ,源操作数;注释 标号是该指令的符号地址,可根据需要设置。某个语句一旦赋予某个标号,则在其?它语句的操作数中就可以引用该标号,以便控制程序的转移或寻址。标号与操作码之间?用冒号“:”分隔开。例如: MOV A,#05H ;给累加器A赋值05H LOOP:DEC A ;累加器A中的数据减1 JNZ LOOP ;累加器的内容不为0,程序转到被赋予LOOP标号的语句,否则,往下继续执行 ?操作码和操作数是指令的核心部分,在这二者之间用若干空格分隔开。操作码在汇?编语言中用助记符表示,它的作用是命令CPU作何种操作。操作数有目的操作数和源操?作数,二者之间用逗号“,”隔开。上例中语句MOV A,#05H,MOV为操作码,命令CPU执行把立即数05H传送到累加器A,A为目的操作数,#05H为源操作数。 汇编指令如何编译为可执行的机器码(1) 如何把我们编写的汇编指令转换为能够被计算机直接执行的机器码。一般编写汇编指令时,要求将操作码和源、目的操作数都写清楚。但对应的机器码?却常将操作数(尤其是目的操作数)隐含起来,以节约程序的存储容量。这样,不同指令的?机器码就会具有不同的字节数。单片机的指令可以分为单字节指令、双字节指令和三字节指?令。 例如,由寄存器向累加器A传送数据的指令“MOV A,Rn”对应的机器码仅有如下一?个字节,它隐含了A(目的)和Rn(源)两个操作数: 汇编指令如何编译为可执行的机器码(2) 汇编指令“MOV A,#05H’中显示出两个操作数:#05H(源)和A(目的),其?含义是“将一个数05H送给A”,而对应的机器码为: 汇编指令如何编译为可执行的机器码(3) 汇编指令“MOV Pl,#0FH”要求单片机进行的操作是“将一个数0FH送给P1?口”。它对应的机器码为: 6.2 指令的寻址方式 所谓寻址方式,就是寻找指令中操作数(包括目的操作数,源操作数)的方法。8051设有7种寻址方式,即:立即寻址、直接寻址、寄存器寻址、寄存器间接寻址、变址间接寻址、相对寻址和位寻址。 6.2.1 立即寻址 所谓立即寻址,就是在指令的操作数部分直接给出操作数本身。直接给出的操作数称为“立即数”,它和指令操作码一样都按顺序以二进制机器码的形式存放在程序存储器中,例如传送指令“MOV P1,#0FH”,该汇编指令转换为机器码应为75H、90H、0FH,其中源操作数#0FH,在指令“MOV P1,#0FH”中直接给出,立即数0FH与该指令的其他两个字节机器码顺序存放某一程序存储器的相应存储单元中 6.2.2 直接寻址 所谓直接寻址,就是在指令中给出操作数的存储地址。例如:? MOV A,30H ;E5H 30H ?该指令的功能是:将内部RAM中30H单元的内容送到累加器中,如图所示。?由于直接寻址方式只能使用8位二进制地址,寻址范围只限于内部RAM的低128个单?元00H~7FH和特殊功能寄存器SFR。 对于低128个单元,可直接以单元地址号寻址; 对于SFR,既可?以使用单元地址方式寻址,也可以使用专用寄存器符号寻址。例如, “MOV A,P1’也是属?于直接寻址的指令。 6.2.3 寄存器寻址 所谓寄存器寻址,就是在指令中给出存放操作数的寄存器,即以寄存器的内容作为操作?数。找到了指定的寄存器,也就等于找到了操作数。例如:? MOV A,R0 该指令的功能是,将寄存器R0的内容传送到累加器A中,如图所示。常用于寄存器寻址的寄存器有:累加器A,数据指针DPTR,工作寄存器Rn等。 6.2.4 寄存器间接寻址 6.2.5变址间接寻址 所谓变址寻址,其操作数的地址由“基址”和“变址”两部分相加得到。其中,基址存?放在数据指针DPTR或程序计数器PC中,作?为计算地址的基础;变址即累加器A的值,?作为相对于基址的偏移量(看成无符号数)。?即是说,以(A+DPTR)或(A+PC)的值?作为操作数的地址。例

文档评论(0)

qwd513620855 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档