我要提问

51单片机中“ACC”怎么用?

秋水逸冰 2023-05-20

51单片机中“ACC”怎么用?

1个回答
  • kiss7786 2023-05-20

    A和ACC的实质是一样的,对应地址都是0E0H,

    只是汇编在使用时,在格式上取了两个名字。

    你看看它们的使用方法,有的地方用A,有的地方用ACC,会发现有一定的规律。

    当其要进行位表示时,必须用ACC,

    比如要写成ACC.7,而不能写成A.7

    但当其作为8位二进制数时,ACC和A都能用

    但还是有区别

    比如 INC ACC和INC A 都能用

    ACC是地址的调用

    而A是累加器调用

    由于PUSH、POP 是直接寻址,后面一定跟的是直接地址

    所以在进栈和出栈的时候 不能用A 只能用Acc

    有这么一说

    累加器有A、ACC和E0H三种表示形式,分属两种不同的寻址方法,使用A时,为寄存器寻址,指令码为04H,使用ACC和E0H时,为直接寻址,指令码为05E0H

    INC A 是寄存器寻址

    INC A 是单字节指令,转换成机器码是:04H,机器码中没有明确指出操作数,隐含操作

    数是累加器A,所以把这种方式寻址叫寄存器寻址。

    INC ACC是直接寻址

    INC ACC 是双字节指令,转换成机器码是:05H,E0H。机器码中包含了累加器A的地址E0H

    这个 E0H 可以换成其他直接地址,所以这种方式寻址叫直接寻址。

    PUSH 和 POP 指令只支持直接寻址,所以不能用 A

    PUSH ACC 机器码:C0H E0H

    POP ACC 机器码:D0H E0H

    0有用 0 回复
申明:本文转载自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。文章内容仅供参考。如因作品内容、版权和其他问题需要同本网联系的,请发送邮件联系删除。
相关问答