在51单片机中,ACC八位数据发生变化,A的值会立即发生变化吗?本人初学者。
答案:2 悬赏:0 手机版
解决时间 2021-01-12 21:02
- 提问者网友:像風在裏
- 2021-01-12 17:13
在51单片机中,ACC八位数据发生变化,A的值会立即发生变化吗?本人初学者。
最佳答案
- 五星知识达人网友:轻雾山林
- 2019-08-12 12:21
单片机,直接跳过汇编,学C吧,现在的芯片,RAM和ROM都大,编译器都可以完成一定的优化的
全部回答
- 1楼网友:持酒劝斜阳
- 2019-02-01 00:19
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
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯