单片机的寄存器在CPU内部,只是和存储器统一编址。
CPU的ALU(算术逻辑单元)进行运算的时候,直接和寄存器交互数据,所以运算速度比较快。
但是寄存器一般比较少(CPU)内部不能放大量的寄存器,所以多数数据还要存放在存储器中。
觉得上述这段话说的还是很对的,但是这个博客就有点儿不能理解了。
http://blog.sina.com.cn/s/blog_65de97a90100rk4j.html
A和ACC都表示累加器,但A是累加器的代号,在指令中默认是无地址的,而ACC是累加器在中的直接地址(OEH),可出现在用直接寻址的任何地方,例如:
PUSH ACC
POP ACC
类似:工作寄存器R0~R7在指令中也有两种不同的写法,生成的机器码也不同,如:
MOV 40H,R0 ,
MOV 40H,00H
假设当前工作寄存器为0组,前者属于寄存器寻址,后者属于存储器直接寻址。但R0和00H的级别不同,00H只是RAM区的一个普通单元,其读写速度要比慢得多。微型计算机内部通常设置工作寄存器组,运算的结果可以放在寄存器中而不必每次都放到存储器里,可以提高机器的工作速度。其实寄存器也是一种存储器,只不过它是CPU中的部件,速度最快而已。
前者属于寄存器寻址,后者属于存储器直接寻址,读写速度要慢很多???我怎么感觉00h就是RO啊,怎么感觉这边00 h是一个内存单元,RO是RO 啊,难道我理解有误???