单片机汇编问题

来源:百度知道 编辑:UC知道 时间:2024/05/15 23:36:41
已知内部RAM的M1,M2,M3单元中有无符号数X1,X2和X3。编程令其相加,并把和存入R0和R1(R0中为高8位)中。查考程序如下
ORG 1000H
MOV R0,#M1
MOV R1,#M2
MOV A,@R0
ADD A,@R1
MOV B,A
MOV A,#00H
ADDC A,#00H
MOV ? A
MOV A,B
MOV R0,#M3
ADD A,@R0
MOV R1,A
MOV A,#00H
ADDC A,R0
MOV ?,A
SJMP $
END
问号位置添的是r0还是r1,从mov b,a以后的每句是什么意思,好象和高八位没有什么关系,请大家帮我看看
谢谢,按你改的就应该这样
ORG 1000H
MOV R0,#M1
MOV R1,#M2
MOV A,@R0
ADD A,@R1
MOV B,A
MOV A,#00H
ADDC A,#00H
MOV R0 A
MOV A,B
MOV R1,#M3
ADD A,@R1
MOV R1,A
MOV A,#00H
ADDC A,R0
MOV R0,A
SJMP $
END
应该好使
着道题的高8位只是用来存进位数啊

这个程序是自己编写的吗?好像有问题哦。
?位置填R0或者R1都不正确,会被后面的数据覆盖。
我改一下吧:?的位置填R0,然后后面的MOV R0,#M3改成MOV R1,#M3,ADD A,@R0改成ADD A,@R1。

MOV A,#00H
ADDC A,#00H
MOV R0,A
以上3句主要是要将X1+X2的进位放到R0中。
MOV A,B
MOV R1,#M3
ADD A,@R1
MOV R1,A
MOV A,#00H
ADDC A,R0
MOV R0,A

不知道这样对不对啊?