8051单片机指令系统的7种寻址方式解析.doc

上传人:白大夫 文档编号:3245354 上传时间:2019-08-05 格式:DOC 页数:4 大小:19KB
返回 下载 相关 举报
8051单片机指令系统的7种寻址方式解析.doc_第1页
第1页 / 共4页
亲,该文档总共4页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《8051单片机指令系统的7种寻址方式解析.doc》由会员分享,可在线阅读,更多相关《8051单片机指令系统的7种寻址方式解析.doc(4页珍藏版)》请在三一文库上搜索。

1、8051单片机指令系统的7种寻址方式解析寻址方式:寻址就是寻找操作数的地址。绝大多数指令执行时都需要操作数,因此就存在如何确定操作数地址的问题。所谓寻址方式就是通过什么途径获取操作数的方式。根据指令操作的需要,计算机总是提供多种寻址方式。一般来说,寻址方式越多计算机的寻址能力就越强,但指令系统也就越复杂。8051指令系统有7种寻址方式:寄存器寻址,直接寻址,寄存器间接寻址,立即寻址,基址寄存器加变址寄存器间接寻址,相对寻址,位寻址,下面分别介绍。寄存器寻址寄存器寻址:寄存器寻址就是操作数在寄存器中,因此指定了寄存器就得到了操作数。采用寄存器寻址方式的指令都是一字节的指令,指令中以符号名称来表示

2、寄存器。例如:MOV A R1 这条指令的功能是把工作寄存器R1的内容传送到累加器A中,由于操作数在R1中,因此指令中指定了R1,也就得到了操作数。寄存器寻址方式的寻址范围包括:工作寄存器组R0R7,部分特殊寄存器ACC,B,DPTR等。直接寻址直接寻址:直接寻址就是在指令中直接给出操作数所在单元的真实地址。这里给出的操作数直接地址为8位二进制地址。程序中一般用十六进制数表示。例如:指令MOV A,30H 把内部RAM单元30H中的数据传送给累加器A,指令中30H就是操作数的直接地址。直接寻址方式的寻址范围包括:内部数据存储器低128单元,特殊功能寄存器。特殊功能寄存器在指令的表示中除了可以以

3、直接地址形式给出外,还可以以寄存器符号形式给出,如对累加器A,在指令中可使用其直接地址OEOH,也可使用其符号形式ACC。立即寻址立即寻址:立即寻址方式就是实际操作数作为指令的一部分,在指令中直接给出,取指令时,可在程序存储器中直接取得操作数。通常把出现在指令中的操作数称为立即数。采用立即寻址方式的指令,在立即数前面加上立即寻址符“#”。例如指令MOV A,#30H中30H就是立即数,指令功能为将30H赋给累加器A。8051中除了一条指令需16位长的立即数外,其余都是8位的立即数,这条16位的立即寻址指令是:MOV DPTR,#data16 指令的功能是将16位的立即数赋给数据指针DPTR寄存

4、器。寄存器间接寻址寄存器间接寻址:寄存器间接寻址方式中,寄存器内存放的是操作数的地址,即操作数是通过寄存器间接得到的,因此称为寄存器间接寻址。寄存器的间接寻址需要以寄存器符号的形式来表示,且在寄存器名称前面加上间接寻址符号“”。例如指令MOV A,R0就使用了寄存器间接寻址方式,这条指令的意义为将地址指针R0指向的内部数据存储器单元中的数据送入累加器A中。假设R0中内容为30H,则此指令的功能是以R0寄存器的内容30H为地址,把内部RAM 30H单元中的内容传送给累加器A。8051规定,采用R0、R1 DPTR作为间接寻址寄存器,可寻址片内数据存储器RAM的低128B单元和片外数据存储器的低2

5、56单元。采用DPTR作间址寄存器,可寻址片外数据存储器的整个64KB地址空间。堆栈指针SP用于指示堆栈操作的地址,因此,PUSH和POP指令也是寄存器间接寻址。基址寄存器加变址寄存器间接寻址基址寄存器加变址寄存器间接寻址:这种寻址方式用于寻址程序存储器的地址空间,它是以DPTR或PC作基址寄存器,以累加器A作为变址寄存器,以两者的内容之和形成的16位数作为操作数地址,也称为变址寻址。例如指令MOVC A,A+DPTR就是变址寻址,其功能为把DPTR和A的内容之和作为程序存储器的地址,再将程序存储器中该地址单元的内容传送给累加器A。假如执行指令前,A=30H。 DPTR=22F1H。根据本寻址

6、方式形成的操作数地址为22F1H+30H=2321H。程序存储器ROM的地址单元2321H中内容为68H。故指令执行结果为A的内容变为68H。这种寻址方式是专门针对程序存储器的寻址方式。基址寄存器不同,其寻址范围不同。用PC作基址寄存器时,寻址范围为以当前PC值为起始的256B。MOVC A,A+PC 寻址范围为64KB程序存储器空间。采用这种寻址方式的指令只有3条。MOVC A,A+DPTR MOVC A,A+PC JMP A+DPTR前2条是程序存储器读指令,也称查表指令。后1条是无条件转移指令,又叫散转指令。相对寻址相对寻址:相对寻址方式是为实现程序的相对转移而设计,由相对转移指令所采用

7、。在这种寻址方式下,将程序计数器PC的当前值加上由指令中给出的偏移量rel,从而构成了程序转移的目的地址。这里应注意,PC的当前值为该相对转移指令的下一条指令的地址。因而转移目的地地址可表示如下:目的地址=转移指令地址+转移指令字节数+rel,相对地址的偏移量rel是一个8位带符号二进制补码,范围为+127-128。即相对寻址时,向前可跳转127字节,向后可跳转128字节。例如在程序存储器地址2000H处有一条采用相对寻址方式的两字节转移指令JC 35H,并且在执行此指令前进位CY=1,按照指令的功能应发生相对转移JC 35H为两字节指令,因此在计算目的地址时,PC的当前值为下一条指令的地址2

8、002H,偏移量为35H,因此计算出的目的地址为2037H,将它赋给PC,则程序转移到2037H地址继续运行。位寻址位寻址:8051具有独立的位处理机即布尔处理机,对寻址的位进行处理。相应的,在指令系统中有一类位操作指令,它们仅允许采用位寻址方式,直接寻址内部数据存储器16个字节单元的128个位,以及特殊功能寄存器中可直接寻址的位,可位寻址的各位都具有独立的8位二进制表示的位地址。在布尔处理机中,以进位位CY作为位累加器。例如指令ANL C,31H就是一条位寻址指令,其功能是布尔累加器C的值与位地址31H中的值进行逻辑“与”操作。位寻址方式的寻址范围是内部ROM中字节地址20H2FH的16字节单元共128个二进制位,位地址为007FH。在8051中,位地址的表示可以采用下面几种形式:直接使用位地址表示 ,例如进位位CY的位地址为0D7H。采用字节单元地址加位的表示法,如20H.5,表示字节单元地址20H的位5。这种表示法可以避免查表或计算,比较方便。对可位寻址的特殊功能寄存器可直接用寄存器名称加位的方法。如以PSW.7表示进位位CY,以ACC.5表示累加器ACC的第五位。使用位名称:在可位寻址的特殊功能寄存器中,一些位是有符号名称的,例如PSW中位5是F0标志,可用直接F0表示该位,进位位可用CY表示等。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1