51单片机寻址方式笔记

51单片机寻址方式有7种:立即数寻址、直接寻址、寄存器寻址、寄存器间接寻址、寄存器变址寻址、相对寻址、位寻址。

  1. PUSH DPTR;是错误的指令,因为PUSH后面只能是直接寻址,即PUSH dir;而DPTR只能用于寄存器寻址或寄存器间接寻址或变址寻址。
  2. 寄存器寻址只有SFR中的A、DPTR、B(仅乘除法指令)和Rn。SFR中除了A、DPTR、B(仅乘除法指令)为寄存器寻址,其余都为直接寻址,指令中可用寄存器名表示直接地址。
  3. A既能直接寻址,又能寄存器寻址,直接寻址时为ACC。B在乘除法指令中为寄存器寻址,其余为直接寻址。DPTR可用于寄存器寻址,也可作寄存器间接寻址和变址寻址,注意变址寻址只能对ROM寻址,读取ROM中的数据用MOVC指令。
  4. MOVX A,2000H;这样的指令是错误的,因为MOVX只能用R0或R1或DPTR作间址寄存器进行间接寻址。即P2 R0或P2 R1或DPTR来构成16位地址,无论使用哪种方式构造16位外部地址,最终都是由P0口输出低8位地址,P2口输出高8位地址。
  5. MOV 20H,@DPTR;这条指令是错误的,因为DPTR作为间址寄存器时只能对片外RAM(此时应使用MOVX)寻址。如MOVX A,@DPTR,若DPTR的值为0,也是将片外RAM地址为0的内存单元的内容传送给A。
  6. 能够用于寄存器间址的有:R0、R1、DPTR,前面需要加@。
  7. MOVC只有两种形式:MOVC A,@A+DPTR或MOVC A,@A+PC,另外注意对ROM只能读不能写。
  8. MOV R1,R2;这条指令是错误的,Rn之间不能通过MOV传送数据,自己给自己传送数据的只有MOV dir,dir。另外ADD A,A是错误的指令,只能ADD A,ACC;此时源操作数为直接寻址。
  9. MOVX必须将A作为其中的一个操作数。
  10. 以A为目的操作数,@Rn、dir、Rn、#data为源操作数的算术运算和按位运算有:ADD、ADDC(进位加)、SUBB(借位减,减指令有借位减)、ANL(按位与)、ORL(按位或)、XRL(按位异或)。
  11. 以dir为目的操作数,A、#data为源操作数的按位运算有:ANL、ORL、XRL
  12. INC(加1)指令的操作对象有:A、@Rn、dir、Rn、DPTR。
  13. DEC(减1)指令的操作对象有:A、@Rn、dir、Rn。
  14. CPL(取反)、CLR(清零)、移位(仅对A操作)等操作对象为A和位地址。

  • 7
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值