0

    原创51单片机直接寻址方式与编程举例

    2023.04.23 | admin | 237次围观

    直接寻址方式是指在指令中操作数直接以单元地址的形式给出,也就是在这种寻址方式中,操作数项给出的是参加运算的操作数的地址,而不是操作数。

    例如:MOV A,30H

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

    在80C51单片机中,直接地址只能用来表示特殊功能寄存器、内部数据存储器以及位地址空间,具体的说就是:

    1、内部数据存储器RAM低128单元。在指令中是以直接单元地址形式给出。

    我们知道低128单元的地址是00H-7FH。在指令中直接以单元地址形式给出这句话的意思就是这0-127共128位的任何一位,例如0位是以00H这个单元地址形式给出、1位就是以01H单元地址给出、127位就是以7FH形式给出。

    2、位寻址区。20H-2FH地址单元。

    3、特殊功能寄存器。专用寄存器除以单元地址形式给出外,还可以以寄存器符号形式给出。例如下面我们分析的一条指令MOV IE,#85H前面的学习我们已知道,中断允许寄存器IE的地址是80H,那么也就是这条指令可以以MOV IE,#85H的形式表述,也可以MOV 80H直接寻址空间与什么有关,#85H的形式表述。

    关于数据存储器RAM的内部情况,请查看我们课程的第十二课。

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

    大家来分析下面几条指令:

    MOV 65H,A ;将A的内容送入内部RAM的65H单元地址中

    MOV A,direct ;将直接地址单元的内容送入A中

    MOV direct,direct;将直接地址单元的内容送直接地址单元

    MOV IE,#85H;将立即数85H送入中断允许寄存器IE

    前面我们已学过,数据前面加了“#”的,表示后面的数是立即数(如#85H,就表示85H就是一个立即数),数据前面没有加“#”号的,就表示后面的是一个地址地址(如,MOV 65H直接寻址空间与什么有关,A这条指令的65H就是一个单元地址)。

    版权声明

    本文仅代表作者观点。
    本文系作者授权发表,未经许可,不得转载。

    发表评论