• 8051(2) -- 寻址方式


    1,立即数寻址

        例如:MOV A, #30H ;

        立即数寻址的特点是,数据不是来自于数据区。

    2,直接寻址

        例如:MOV A, 30H;

        直接寻址的数据来自于数据区,指令的参数是数据区地址。值得注意的是,立即寻址既可以是目的的,也可以是源的。即,立即寻址指令既可以是 MOV A, 30H;  也可以是 MOV 30H, A; 甚至还可以是 MOV 30H, 40H;

    3,寄存器寻址

        这里的“寄存器”指的是Bank Register。

        例如:MOV R0, #30H;

    4,寄存器间接寻址

        这种寻址方式,寄存器里存储的是数据在数据区的地址。8052有一段数据空间称为IDATA,该段数据空间的地址范围是80~FF。若使用直接寻址,会访问到SFR区,因此应使用寄存器简介寻址访问该段数据。

        例如:MOV @R0, #30H;

    5,变址寻址

        该寻址方式用于访问16-bit address bus连接的模块,即ROM、外部存储区。变址寻址确定目标地址的方法是:变址地址+基地址。其中ACC用作变址地址,PC或者DPTR作为基地址。

        访问ROM区时,使用MOVC;访问外部存储区时,使用MOVX。

        例如:MOVC A, @A+PC;

    6,相对寻址

        该寻址与变址寻址有些类似,不同之处在于,基地址为PC,跳转目的地由指令参数决定。

        例如:SJMP 30H;

        有一点需要注意,该指令的参数会被当作有符号数处理,因此指令的跳转范围是前后127 Bytes。指令执行完之后,新地址会被装载入PC。

  • 相关阅读:
    @RequestParam方式传入list
    编写优美代码的七条规范(Python版)
    汇编程序设计入门
    CSP-S2020解题报告(待完成!)
    [USACO18JAN]MooTube
    DP优化
    AFO记
    考前总结
    清北学堂周末刷题班第五场
    清北学堂考前综合刷题班第四场
  • 原文地址:https://www.cnblogs.com/freshair_cnblog/p/6063693.html
Copyright © 2020-2023  润新知