汇编高手在哪?一个单片机考题(我只有答案,不知理由),求详细指导!拜谢!(不懂的、灌水的不要来!) 5
36.阅读下列程序,回答问题,将答案填人空格中。START:MOVDPTR,#8000HMOVR2,#4MOVRO,#30HLPI:MOVXA,@DPTRMOV@R0,A...
36.阅读下列程序,回答问题,将答案填人空格中。
START: MOV DPTR,#8000H
MOV R2, #4
MOV RO, #30H
LPI: MOVX A,@DPTR
MOV @R0,A
INC DPTR
INC R0
DJNZ R2,LPl
MOV R2, #4
MOV R0, #30H
CLR C
LP2: MOVX A,@DPTR
ADDC A,@R0
DA A
MOVX @DPTR,A
INC DPTR
INC R0
DJNZ R2,LP2
WAIT: SJMP WAIT
ORG 8000H
DB 96H,74H,32H,16H
DB 65H,94H,87H,29H
(1)程序完成的操作是_________________.
(2)R0=__________________ .(8004H)=______,(8005H)=_____,(8006H)=______,(8007H)=______ 。
(请写出每条指令的意思) 展开
START: MOV DPTR,#8000H
MOV R2, #4
MOV RO, #30H
LPI: MOVX A,@DPTR
MOV @R0,A
INC DPTR
INC R0
DJNZ R2,LPl
MOV R2, #4
MOV R0, #30H
CLR C
LP2: MOVX A,@DPTR
ADDC A,@R0
DA A
MOVX @DPTR,A
INC DPTR
INC R0
DJNZ R2,LP2
WAIT: SJMP WAIT
ORG 8000H
DB 96H,74H,32H,16H
DB 65H,94H,87H,29H
(1)程序完成的操作是_________________.
(2)R0=__________________ .(8004H)=______,(8005H)=_____,(8006H)=______,(8007H)=______ 。
(请写出每条指令的意思) 展开
展开全部
DRAT=8000H
R2=04H,
R0=30H
LPI: A=*DRAT,
*R0=A,
DRAT++,
R0++,
if(R2!=0) R2--,goto lp1(跳转到lp1的位置执行)
R2=4H;
R0=30H
C=0(c是进位标志,可认为是布尔型变量)
LP2 :A=*DRAT
A+=*R0;
DAA是 将A中数变为BCD码,就是10进制1个8字节的数等于10时进位。。。。
*DPTR=A;
DPTR++
R0++
if(R2!=0) R2--; goto lp2
while(1){}
ORG 8000H 意思是后面的程序写在8000这个位置就是地址8000到8007存放的是后面8个数。。。
此程序是将8000到8003中的16进制数编程BCD码存在后面8004-8007。。。
转换成类似C语言的东西应该能看懂了吧,R0和DRAT为指针变量,A,R2为char变量。。。。
R2=04H,
R0=30H
LPI: A=*DRAT,
*R0=A,
DRAT++,
R0++,
if(R2!=0) R2--,goto lp1(跳转到lp1的位置执行)
R2=4H;
R0=30H
C=0(c是进位标志,可认为是布尔型变量)
LP2 :A=*DRAT
A+=*R0;
DAA是 将A中数变为BCD码,就是10进制1个8字节的数等于10时进位。。。。
*DPTR=A;
DPTR++
R0++
if(R2!=0) R2--; goto lp2
while(1){}
ORG 8000H 意思是后面的程序写在8000这个位置就是地址8000到8007存放的是后面8个数。。。
此程序是将8000到8003中的16进制数编程BCD码存在后面8004-8007。。。
转换成类似C语言的东西应该能看懂了吧,R0和DRAT为指针变量,A,R2为char变量。。。。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询