- 7条回答
-
1188天琪
06-29 15:46
如果所有的寄存器之间都可以直接赋值,MCU的总线结构会复杂很多。
51可以MOV dir,dir,但是SFR不能 dir 访问,只能间址访问。
-
andyseu
06-28 07:35
LZ,51有:
MOV Rn,dir
MOV dir.dir
所以要实现MOV R1,R0,如果确认R0/R1在BANK0(00H/01H)单元,则可以:
MOV r1,00h
或者
MOV 01H,00H
一般还是用ACC中转比较好。
-
f1070388065
07-04 13:37
我想明白为什么不可以
MOV R1,R0
-
li124688559
07-04 21:53
8位微控制器中Z8系列的可以,通用MCU中可以的很多。
至于为什么51核这样,与它的微指令译码结构有关。
-
jhdfvs
07-01 16:51
51核设计为8位字长指令字,如果R0~R7间直接寻址,需要6bit,占用字长过宽,得到的益处过少。如果扩充为16位字长,速度、字长空间与MOV A,R0 ;MOV R1,A 一样,而且微代码结构复杂很多。
-
60user99
07-01 14:52
R0~R7 需要8个地址,3个bit。要直接赋值就需要两次寻址,所以就需要占6bit。
-
qwe043
06-29 18:44
谁说不行的??你们究竟有没有进行过实际的测试??
至少STC的51机就可以,不信自己烧这个程序试试:
ORG 0040H
MIAN:
MOV R0,P3
MOV R1,R0
MOV P1,R1
AJMP MIAN
END
这个程序是把P3做输入,把P3输出状态传给P1,P3的所有I/O外部输入变化的时候,P1输出同样值。这里就用了MOV R1,R0,测试是完全正常的!你们自己测试看看AT的行不行?