急!!! 关于单片机的两道题....

来源:百度知道 编辑:UC知道 时间:2024/06/04 05:29:23
1.已知程序执行前有A=02H,SP=52H,(51H)=0FFH,(52H)=0FFH。下述程序执行后:
POP DPH
POP DPL
MOV DPTR,#4000H
RL A
MOV B,A
MOVC A,@A+DPTR
PUSH A
MOV A,B
INC A
MOVC A,@A+DPTR
PUSH A
RET
ORG 4000H
DB 10H,80H,30H,50H,30H,50H
请问:(A)=( ),(SP)=( ),(51H)=( ),(52H)=( ),(PC)=( )。

2.程序段如下,试说明其功能。
MOV R0,#50H
MOV R1,#60H
MOV A,@R0
ADD A,@R1
MOV @R0,A
INC R0
INC R1
MOV A,@R0
ADDC A,@R1
MOV @R0,A
MOV 00H,C

(1)
A=02H,SP=52H,(51H)=0FFH,(52H)=0FFH。POP DPH ;SP=51H
POP DPL ;SP=50H
MOV DPTR,#4000H
RL A ;A=04H
MOV B,A; B=04H
MOVC A,@A+DPTR;A=30H
PUSH A ;SP=51H;(50H)=30H
MOV A,B ;A=04H
INC A ;A=05H
MOVC A,@A+DPTR ;A=50H
PUSH A ;SP=52H;(51H)=50H
RET ;PC=5030H
ORG 4000H
DB 10H,80H,30H,50H,30H,50H
请问:(A)=(50H ),(SP)=(52H ),(51H)=(50H ),(52H)=(FFH ),(PC)=(5030H )。

(2)把位于51H、50H(51H是高字节)和61H、60H(61H是高字节)的两个双字节数相加,结果存回51H、50H。

第一题:(A)=( 0x80),(SP)=(0x07 ),(51H)=( 0),(52H)=(0 ),(PC)=( C:0x0013)。

第一题的解决方法:把上面的程序复制到keil运行看结果就ok了。