51单片机的寻址方式 -- 汇编语言

寻址方式:指定操作数所在单元的方法。8051单片机中有7种寻址方法。

一、 立即寻址

“#”作前缀

MOV A#20H

在这种寻址方式中,指令多是双字节的。立即数就是存放在程序存储器中的常数,换句话说就是操作数(立即数)是包含在指令字节中的。

例如:

MOV  A#3AH
这条指令的指令代码为74H3AH,是双字节指令,这条指令的功能是把立即数3AH送入累加器A

MOV  DPTR#8200H

DPTR是一个16位的寄存器,它由DPHDPL两个8位的寄存器组成。这条指令的意思就是把立即数的高8位(即82H)送入DPH寄存器,把立即数的低8位(即00H)送入DPL寄存器。

二、 直接寻址

指令中直接给出操作数的地址。

MOV    A30H;这条指令中操作数就在30H单元中,也就是30H是操作数的地址,并非操作数。

MOV   30HDPH
80C 51单片机中,直接地址只能用来表示内部数据存储器、位地址空间以及特殊功能寄存器,具体的说就是:
1
、内部数据存储器RAM128单元。在指令中是以直接单元地址形式给出。
   
我们知道低128单元的地址是00H-7FH。在指令中直接以单元地址形式给出这句话的意思就是这0-127128位的任何一位,例如0位是以00H这个单元地址形式给出、1位就是以01H单元地址给出、127位就是以7FH形式给出。
2
、位寻址区。20H-2FH地址单元。
3
、特殊功能寄存器。专用寄存器除以单元地址形式给出外,还可以以寄存器符号形式给出。我们已知道,中断允许寄存器IE的地址是80H,那么也就是此指令也可以以 MOV  80H#85H的形式表述。

直接寻址是唯一能访问特殊功能寄存器的寻址方式!

大家来分析下面几条指令:
MOV  65H
A       ;将A的内容送入内部RAM65H单元地址中
MOV  A
direct     ;将直接地址单元的内容送入A
MOV  direct,direc  t
;将直接地址单元的内容送直接地址单元
MOV  IE,#85H      
;将立即数85H送入中断允许寄存器IE

如前已知数据前面加了“#”的,表示后面的数是立即数(如#85H,就表示85H就是一个立即数),数据前面没有加“#”号的,就表示后面的是一个地址地址(如,MOV 65HA这条指令的65H就是一个单元地址)。

三、 寄存器寻址

操作数存放在工作寄存器R0 ~ R7中,或寄存器B中。
MOV A
R2

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值