(单片机) 以下指令都有错误,请指出错在何处

(1)MOV A, #1234H
(2)ADD B, R1
(3)MOV R1, R5
(4)MOV @R4, #34H
(5)DEC DPTR
(6)MOVC A, @A+R1
(7)PUSH PC
(8)CLR R7

(1)MOV A, #1234H A寄存器只有8位,1234H是16位了。
(2)ADD B, R1 ADD A X (ADD后面只能是A寄存器。
(3)MOV R1, R5 同一工作组寄存器不能传送。
(4)MOV @R4, #34H @的间接寻址,只能用R1和R2
(5)DEC DPTR DEC只能用于A、Rn、@Ri、RAM低128字节和SFR
(6)MOVC A, @A+R1 MOVC的第二个操作数只能是@A+PC @A+DPTR (只有这两个寄存器是16位的,能够达到片外的大内存的寻址空间)
(7)PUSH PC PUSH只能操作RAM的低128字节,和SFR
(8)CLR R7 CLR只能清零C、A和位清零(bit)
大冬天的 码字也冷啊。望采纳。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-12-30
(1)MOV A, #1234H   ;位数超过了A的容量
(2)ADD B, R1      ;做加法,必须使用A
(3)MOV R1, R5    ;寄存器之间,不可传送
(4)MOV @R4, #34H  ;间接寻址,只可用R0、R1
(5)DEC DPTR     ;没有这条指令
(6)MOVC A, @A+R1  ;不可用R1,可以用DPTR
(7)PUSH PC     ;没有PC
(8)CLR R7      ;没有这条指令本回答被提问者采纳
第2个回答  2012-12-30
6错误,A和R1相加的这种写法不对,可以这样
ADD A,R1
MOVC A,@A追问

其他七个捏?

相似回答