C51单片机寻址方式

   所谓寻址方式, 就是寻找操作数地址的方式, 在用汇编语言编程时, 数据的存放、传送、运算都要通过指令来完成。 编程者必须自始至终都要十分清楚操作数的位置, 以及如何将它们传送到适当的寄存器去参与运算。

1,立即寻址

立即寻址方式是指操作数包含在指令字节中。 跟在指令操作码后面的数就是参加运算的数, 该操作数称为立即数。 立即数有一字节和二字节两种可能,。

例如指令:     MOV   A, #3AH

                     MOV   DPTR, #0DFFFH      

 上述两条指令均为立即寻址方式, 第一条指令的功能是将立即数 3AH送累加器A中, 第二条指令的功能是将立即数 0DFFFH送数据指针DPTR中

2,直接寻址

 在指令中直接给出操作数的地址, 这种寻址方式就属于直接寻址方式。在这种方式中, 指令的操作数部分直接是操作数的地址。        

在MCS -51 单片机指令系统中, 直接寻址方式中可以访问 3 种存储器空间:  (1) 内部数据存储器的低 128 个字节单元(00H~7FH)。  (2) 特殊功能寄存器。 特殊功能寄存器只能用直接寻址方式进行访问。

3,寄存器寻址

 在该寻址方式中, 参加操作的数存放在寄存器里。寄存器包括8个工作寄存器R0~R7、累加器A、 寄存器B、数据指针DPTR和位累加器C。

   例如:            MOV  A,R1                         MOV   B,R2                         MOV   DPTR,#8000H                         MOV SP, #60H                         MOV PSW, #00H

4,寄存器间接寻址

    指令中给出间接寻址寄存器,其内容为操作数的地址。寻址内部RAM区的数据时,可使用寄存器R0、R1作为地址指针; 当访问外部RAM时, 可使用R0、 R1及DPTR作为地址指针。寄存器间接寻址符号为“@”,。

例如: MOV 30H, #20H    MOV R0,#30H    MOV A, R0     MOV A, @R0     MOVX A, @R0

5,基址寄存器加变址寄存器间接寻址

 这种寻址方式用于访问程序存储器中的数据表格, 它以基址寄存器DPTR或PC的内容为基本地址, 加上变址寄存器A的内容作为操作数的地址。

 例如:       MOVC   A, @A+DPTR       MOVC   A, @ A+PC

  JMP      @A+DPTR;散转指令

6,相对寻址

 在MCS -51 指令系统中设有转移指令, 分为直接转移和相对转移指令, 在相对转移指令中采用相对寻址方式。这种寻址方式是以PC的内容为基本地址, 加上指令中给定的偏移量作为转移地址。指令中给出的偏移量是一个 8 位带符号的常数, 可正可负, 其范围为-128~+127。

7,位寻址

 该种寻址方式中, 操作数是内部RAM单元中某一位的信息。     MOV  C,30H

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

芊澄cy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值