电工文库|80C51单片机指令系统的7种寻址方式

   更新日期:2017-03-25     来源:建材之家    作者:水电之家    浏览:27    评论:0    
核心提示:寻址方式就是寻找操作数或指令地址的方式。寻址方式包含两方面的内容:一是操作数的寻址,二是指令地址的寻址(如转移指令、调用指令)。寻址方式是计算机性能的具体体现,也是编写汇编语言程序的基础,必须非常熟悉并灵活运用。 对于两操作数指令,源操作数有寻址方式,目的操作数也有寻址方式。若不特别声明,后面提到的寻址方式均指源操作数的寻址方式。 80C51单片机指令系统共有7种寻址方式,包括:立即寻址、寄存器寻

合格PE管材应达到的要求

推荐简介:(1)使用寿命:在特定的环境温度、压力的情况下(由施工标准觉定),PE管材可以具有产品标准的使用寿命(一般为50年)。(2)耐腐性能:厂家生产的PE管材能够耐大多数化学物品(酸碱盐)以及承受PH值范围在1-14的高浓度酸和碱的腐蚀的腐蚀,可以在浓度小于80%的浓盐酸中应用,在浓度小于75%的硫酸、浓度小于20%的硝酸中性能相当稳定。(3)抗磨性能:PE管材应具有一定的耐磨要求,即抗滑动摩擦能力......
水电之家讯:寻址方式就是寻找操作数或指令地址的方式。寻址方式包含两方面的内容:一是操作数的寻址,二是指令地址的寻址(如转移指令、调用指令)。寻址方式是计算机性能的具体体现,也是编写汇编语言程序的基础,必须非常熟悉并灵活运用。

对于两操作数指令,源操作数有寻址方式,目的操作数也有寻址方式。若不特别声明,后面提到的寻址方式均指源操作数的寻址方式。

80C51单片机指令系统共有7种寻址方式,包括:立即寻址、寄存器寻址、直接寻址、寄存器间接寻址、变址寻址、相对寻址和位寻址。现以7条指令为例说明这7种寻址方式。

(1)立即寻址:将操作数直接写在指令中。

如指令①: MOV A,#3AH 执行的操作是将立即数3AH送到累加器A中,因为指令中有立即数3AH,所以称此寻址方式为立即寻址。注意,立即数前面必须加“#”号,以区别立即数和直接寻址。该指令的执行过程如图1所示。



图1 立即数寻址示意图

(2)寄存器寻址:是指将指令操作数存放于寄存器中,寄存器包括工作寄存器R0~R7、累加器A、通用寄存器B、地址寄存器DPTR等。

如指令②: MOV A,R0 ;(A)←(R0)

该指令将寄存器R0中的数送入累加器A中,因为指令源操作数为寄存器R0,所以称此寻址方式为寄存器寻址。

如果程序状态寄存器PSW的RS1RS0=00(选中第0组工作寄存器,对应地址为(00H~07H),设RAM区00H的内容为20H,则执行MOV A,R0指令后,累加器A中的内容变为20H。该指令执行过程如图2所示。



图2 寄存器寻址示意图

(3)直接寻址 :是指把存放操作数的内存单元的地址直接写在指令中。在80C51单片机中可以直接寻址的存储器主要有内部RAM区和特殊功能寄存器SFR区。

如指令③:MOV A,30H ;(A)←(30H)

该指令将地址为30H的存储单元的内容送入累加器A,因为指令源操作数为地址直接给出的存储单元,故称此寻址方式为直接寻址。若(30H)=3AH,指令③执行后,(A)=3AH,该指令的执行过程如图3所示。



图3 直接寻址示意图

(4)寄存器间接寻址:将存放操作数的存储单元的地址放在寄存器中,指令中只给出该寄存器。执行指令时,首先根据寄存器的内容,找到所需要的操作数地址,再由该地址找到操作数并完成相应操作。在80C51指令系统中,用于寄存器间接寻址的寄存器有R0、R1和DPTR,称为寄存器间接寻址寄存器。

注意:间接寻址寄存器前面必须加上符号“@”。

如指令④:MOV A,@R0 ;(A)←((R0))

该指令将以R0中内容为地址的存储单元的内容送入累加器A中,因为指令操作数是存储单元,其地址由寄存器R0间接给出,所以称此寻址方式为寄存器间接寻址。

设R0=3AH,内部RAM 3AH中的值是65H,则指令MOV A,@R0的执行结果是累加器A的值为65H,该指令的执行过程如图4所示。



图4 寄存器间接寻址示意图

(5)变址寻址 :是指将基址寄存器与变址寄存器的内容相加,结果作为操作数的地址。DPTR或PC是基址寄存器,累加器A是变址寄存器。这种寻址方式称为变址寻址。该寻址方式主要用于查表操作。

当执行指令⑤时,设(A)=50H ,(DPTR)=2007H,(2057H)=60H ,指令⑤执行后MOVC A,@A+DPTR ;(A)←((A)+(DPTR))=(50H+2007H)=(2057H)=60H。

该指令将DPTR中的基地址2007H与A中的偏移地址50H相加,形成实际地址2057H,再将地址为2057H的存储单元中的内容60H送入累加器A中。显然这种寻址方式称为变址寻址。该指令执行过程如图5所示。



图5 变址寻址示意图

(6)相对寻址 :是指程序计数器PC的当前内容与指令中的操作数相加,其结果作为跳转指令的转移地址(也称目的地址)。这种寻址方式称为相对寻址。该类寻址方式主要用于跳转指令。

如指令⑥:SJMP rel ;(PC)←(PC)+rel

当执行指令⑥时,设当前(PC)=2009H,而相对偏移量rel=02H,则执行该指令后,(PC)=2009H+02H=200BH,即程序由地址为2009H处跳转到200BH处执行,其跳转的距离为相对偏移量rel=02H。由于指令中的操作数为相对偏移量rel ,所以称这种寻址方式为相对寻址。该指令的执行过程如图6所示。



图6 相对寻址示意图

(7)位寻址 :指令中操作数为8位二进制数某一位,称为位寻址。80C51单片机中,操作数不仅可以按字节为单位进行操作,也可以按位进行操作。当我们把某一位作为操作数时,这个操作数的地址称为位地址。

位寻址区包括专门安排在内部RAM中的两个区域:一是内部RAM的位寻址区,地址范围是20H~2FH,共16个RAM单元,位地址为00H~7FH;二是特殊功能寄存器SFR中有11个寄存器可以位寻址。参见位地址的定义。

例如:SETB ACC.0 ;(ACC.0)←1 该指令将累加器的最低位ACC.0置1,由于指令中的操作数为一位二进数,故称此寻址方式为位寻址。该指令的执行过程如图7所示。



图7 位寻址示意图

由寻址方式的讨论可知,操作数按类型可分为:立即数、寄存器、存储单元、位操作数、相对偏移量。而存储单元地址又可有直接寻址,寄存器间接寻址,变址寻址三种。

各种寻址方式对应操作数的指令符号规定如下。

(1)#data:表示8位立即数,如#3AH。

(2)#data16:表示16位立即数,即0000H~FFFFH。

(2)Rn:表示寄存器R0~R7。

(3)direct:表示片内存储单元的直接地址, 如30H。

(4)addr16,addr11:表示指令中的16位或11位转移地址。

(5)rel:表示相对偏移量,如 02H。

(6)bit:表示位地址,如ACC.0。

(7)( ):表示存储单元的内容,如(30H)=40H。

(8)(( )):表示间接寻址的存储单元内容,((R0))=(7FH)=50H。

水电之家为您提供最全面的管材,管件,水电,电线,电工,管材水电品牌的装修知识点和各种管材水电的导购与在线购买服务,拥有最便宜的管材水电价格和最优质的售后服务,每天都有秒杀的抢购活动哦!敬请登陆水电之家:http://shuidian.jc68.com/
小程序码
 
打赏
 
更多>文章标签:管材
更多>同类水电电工资讯
0相关评论

推荐图文更多...
点击排行更多...
最新视频更多...
推荐产品更多...
老姚之家 | 全景头条 | 照明之家 | 防水之家 | 防盗之家 | 区快洞察 | 潜江建材 | 仙桃建材 | 恩施建材 | 随州建材 | 咸宁建材 | 黄冈建材 | 荆州建材 | 孝感建材 | 荆门建材 | 鄂州建材 | 襄樊建材 | 宜昌建材 | 十堰建材 | 黄石建材 | 长沙建材 | 湘西建材 | 娄底建材 | 怀化建材 | 永州建材 | 郴州建材 |
建材 | 720全景 | 企业之家 | 移动社区 | 关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图 | 排名推广 | 广告服务 | 积分换礼 | RSS订阅 | sitemap | 粤ICP备14017808号-1
(c)2015-2017 BYBC.CN SYSTEM All Rights Reserved
Powered by 电工之家