• 8051单片机指令和寻址方式


    80C51指令系统专用于80C51系列单片机,具有255种操作码(00H-FFH)除去A5H。

    1. 寻址方式

    寻址方式就是指指令中给出寻找操作数或操作数所在地址的方法,执行任何指令都需要操作数。

    1)立即寻址

    MOV DPTR,#1234H; 立即寻址是指在指令中直接给出操作数,出现在指令中的操作数称为立即数,因此被称为立即寻址。

    2)直接寻址

    MOV A,3AH; 直接寻址是指在指令中直接给出操作数单元地址。功能是将片内RAM的3AH单元内的数据传送内累加器A。

    直接寻址方式只能给出8位地址,因此这种寻址方式的寻址范围只限于片内RAM。具体:a.低128单元,在指令中直接以单元地址的形式给出;b.特殊功能寄存器,即可以以单元地址形式也可以以寄存器符号形式给出。直接寻址是访问SFR寄存器的唯一方法。

    3)寄存器寻址

    INC R0; 寄存器寻址是指指令中将指定的寄存器的内容作为操作数。该语句实现R0寄存器的自加一操作。

    寄存器寻址范围: a.四个寄存器组共32个通用寄存器; b.部分特殊功能寄存器,A、AB、DPTR。

    4)寄存器间接寻址

    ANL A,@R1; 是指在指令中给出的寄存器内容是操作数的地址,从该地址取出的才是操作数。@前缀是区分寄存器寻址和间接寻址的标志。

    寻址范围:

    a.片内ram低128单元,只能采用R0或R1为间接寻址寄存器;

    b.片外的64K ram单元,使用DPTR作为间接寻址寄存器;

    c.片外RAM低256单元,除了用DPTR外还可以用R0或R1为间址寄存器,例如MOVX A,@R0

    d.堆栈区,堆栈操作指令(PUSH和POP)

    5)相对寻址

    是指在指令中给出的操作数为程序转移的偏移量。如JC 80H;

    6)变址寻址

    是指以DPTR或PC为基址寄存器,累加器A作为变址寄存器,以两者的内容相加,形成16为的程序存储地址作为操作数地址。

    如:MOVC A,@A+DPTR; 变址寻址只能对程序存储器寻址

    7)位寻址

    单片机有位操作功能,位寻址的范围包括:

    a)片内ram中的位寻址区。有20H-2FH,共16个单元128位,可以直接使用位地址0H~7FH

    b)可位寻址的SFR。共有11个可位寻址SFR,实际有83个位可位寻址。

  • 相关阅读:
    天涯何远 咫尺相依
    Load runner 11在多台测试机上执行一个场景的方法
    利用MVC4新特性为站点添加移动视图
    让django像Asp.Net Mvc一样自动匹配Controller和Action
    使用TFS API前提条件:SDKs
    ubuntu手动安装jdk并配置jetty
    [zz] Install rpm in Ubuntu
    64位ubuntu下安装32位jdk
    [zz] Ubuntu11.04安装谷歌输入法
    SpringCloud gateway lb//方式+ nacos 503 三种解决方案
  • 原文地址:https://www.cnblogs.com/scnutiger/p/1619177.html
Copyright © 2020-2023  润新知