普中开源电子分享网

 找回密码
 立即注册
搜索
查看: 5795|回复: 0

8051寻址方式

 关闭 [复制链接]

139

主题

382

帖子

1531

积分

金牌会员

Rank: 6Rank: 6

积分
1531
发表于 2015-9-11 14:45:14 | 显示全部楼层 |阅读模式
8051单片机共有7种寻址方式。寻址方式是指令中确定操作数的形式,用来确定操作数所处的存储空间。

8051内部存储资源:

4k × 8 ROM (80C51)

128 × 8 RAM (80C51)
1.立即寻址:在指令中直接给出操作数
    MOV A, #80H   8位操作数
    MOV A, #2000H 16位操作数



2.直接寻址:指令中直接给出操作数地址
(1)SFR,这一存储空间只能使用直接寻址
    MOV PSW, #50H
(2)内部数据RAM,这一存储空间可以使用直接寻址和寄存器间接寻址
    MOV A, 30H



3.寄存器寻址:以通用寄存器的内容作为操作数(通用寄存器包括A, B, DPTR, R0~R7)
    INC DPTR
注意:A、B既是通用寄存器,也是SFR(直接寻址)



4.寄存器间接寻址:以寄存器中的内容作为操作数的地址
能够用于寄存器间接寻址的寄存器有:R0,R1,DPTR,SP
区分内部数据RAM寻址和外部数据RAM寻址:外部数据RAM寻址指令上采用MOVX
对内部数据RAM寻址:使用8位的R0或者R1即可
     MOV @R0, A
对外部数据RAM寻址:使用P2端口提供高8位地址,使用R0或者R1提供低8位地址;或者使用16位的DPTR提供地址
     MOVX A, @R1
     MOVX @DPTR, A



5.变址寻址:以基址寄存器PC或者DPTR与变址寄存器A中的内容之和作为操作数的地址
变址寻址只能对程序存储器中的数据进行寻址,由于程序存储器是只读的,因此变址寻址只有读操作,指令上采用MOVC
     MOVC A, @A+DPTR
     MOVC A, @A+PC



6.相对寻址:用于修改PC的值,使得PC加上指令中给出的一字节的偏移量
由于转移指令有两字节和三字节这两种形式,因此偏移量的范围分别为-126~+129和-125~+130
     SJMP 80H



7.位寻址:以位地址中的内容为操作数
     SETB 20H
     MOV 32H, C



总结一下各种寻址方式的使用场合:
    立即寻址:常数


    直接寻址:SFR和内部数据RAM

(直接寻址方式的寻址范围包括:内部数据存储器低128单元,特殊功能寄存器。)


    寄存器寻址:寄存器区

(寄存器寻址方式的寻址范围包括:工作寄存器组R0~R7,部分特殊寄存器ACC,B,DPTR等。)


    寄存器间接寻址:内部数据RAM和外部数据RAM

   (8051规定,采用R0、R1  DPTR作为间接寻址寄存器,可寻址片内数据存储器RAM的低128B单元和片外数据存储器的低256单元。采用DPTR作间址寄存器,可寻址片外数据存储器的整个64KB地址空间。堆栈指针SP用于指示堆栈操作的地址)

    变址寻址:程序存储器

    相对寻址:PC
   

   位寻址:位地址区

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

Archiver|手机版|小黑屋|普中开源电子分享网 粤ICP备16123577号-2

GMT+8, 2024-5-5 11:32 , Processed in 0.083904 second(s), 30 queries .

Powered by 论坛搭建 X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表