单片机程序阅读题
单片机程序阅读题
RLC A (A)= ______;(CY)= ______;(P)= ______;
MUL AB (B)= ______;
2. 阅读程序并回答下列问题:
X DATA 50H
Y DATA 51H
ORG 00H
JMP START
ORG 100H
START: MOV SP,#60H
MOV X,#10
MOV Y,#10
LCALL SUB
SUB: NOP
INC X
DEC Y
MOV A,Y
JZ SUBRET
LCALL SUB
SUBRET: NOP
RET
计算X和Y的值是多少?
(X)= ; (Y)= ;
3. 执行下列程序后,R2,R3的内容是什么?请在要求注释的地方给程序加上注释
MOV R3,#45H
MOV DPTR,#TABL ;注释:
MOV A,R3
ANL A,#0FH ;注释:
MOVC A,@A+DPTR ;注释:
MOV R2,A
MOV A,R3
ANL A,#0F0H
SWAP A
MOVC A,@A+DPTR
MOV R3,A
………………………
TABL: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,98H
(R2)= ; (R3)= ;
4. 51单片机振荡频率为12MHz,阅读程序后说明
ORG 0000H
LJMP MAIN
ORG 001BH
LJMP INTT1
ORG 0040H
INTT1: MOV TH1, #3CH
MOV TL1, #0B0H
DJNZ R7, L2
MOV R7, #20
CPL P1.2
L2: RETI
ORG 0100H
MOV SP, #5FH
MOV R7, #20
MOV TMOD, ①
MOV TH1, #3CH
MOV TL1, #0B0H
SETB EA
SETB ②
SETB TR1
SJMP $
1) 根据程序内容填空:① ;② ;
2) 定时器T1的定时时间是多少?
3) 寄存器R7在程序中的作用是什么?
4) 该程序完成什么功能?
5. 执行下面一段程序;填写运行结果
MOV SP, #60H
MOV A, #10H
MOV B, #01H
PUSH A
PUSH B
POP A
POP B
A , B的内容是:(A)= (B)= ;
6. 设自变量为X,存放在ARE单元,应变量Y存放在BUF单元。给程序标注注释,说明该段子程序的功能并写出该程序的函数关系式。(7分)
START: MOV DPTR,#ARE
MOVX A,@DPTR
JZ SUL
JB ACC.7,NEG ;注释:
MOV A,#02H
SUL: MOV DPTR,#BUF
MOVX @DPTR,A ;注释:
RET
NEG: MOV A,#0FEH
SJMP SUL
7. 执行下列程序段后,(P1)=_______。
MOV P1,#5DH
CPL P1.1
CPL P1.2
CLR P1.6
SETB P1.7
8. 执行下列程序段后,(A)=_______,(CY)=____。
MOV A,#C5H
RL A
9.下列程序段执行后,(R0)=_______,(7EH)=____,(7FH)=_______。
MOV R0,#7EH
MOV 7EH,#0FFH
MOV 7FH,#40H
1NC @R0
1NC R0
1NC @R0
10. 已知(SP)=60H,子程序SUBTRN的首地址为0345H,现执行位于0123H的ACALL SUBTRN双字节指令后,(PC)=___,(61H)=_______,(62H)= ____。
11.阅读下列程序,说明其功能。
MOV R0,#data
MOV A,@R0
RL A
MOV R1,A
RL A
RL A
ADD A,R1
MOV @R0,A
RET
12.下列各条指令其源操作数的寻址方式是什么?各条指令单独执行后,A中的结果是什么?设(60H)=35H,(A)=19H,(R0)=30H,(30H)=0FH。
(1)MOV A,#48H ;寻址方式:
(A)=
(2)ADD A,60H ;寻址方式:
(A)=
(3)ANL A,@R0 ;寻址方式:
(A)=
13.阅读下列程序段,写出每条指令执行后的结果,并说明此程序段完成什么功能?
MOV R1,#30H ;(R1)=
MOV A,#64H ;(A)=
ADD A,#47H ;(A)= ,(CY)= ,
(AC)=
DA A ;(A)= ,(CY)= ,
(AC)=
MOV @R1,A ;(R1)= ,(30H)=
此程序段完成的功能:
14. 已知(R0)=20H, (20H ) =10H, (P0) =30H, (R2) =20H, 执行如下程序段后( 40H ) =
MOV @R0 , #11H
MOV A , R2
ADD A , 20H
MOV PSW , #80H
SUBB A , P0
XRL A , #45H
MOV 40H , A
15. 已知 ( R0 )=20H, (20H )=36H, (21H) =17H, (36H) =34H, 执行过程如下:
MOV A , @R0
MOV R0 , A
MOV A , @R0
ADD A , 21H
ORL A , #21H
RL A
MOV R2 , A
RET
则执行结束(R0)= (R2)=
16. 执行下面一段程序;
MOV SP, #60H
MOV A, #10H
MOV B, #01H
PUSH A
PUSH B
POP A
POP B
A , B的内容是:(A)= (B)=
17. 设在31H单元存有#23H,执行下面程序:
MOV A, 31H
ANL A, #0FH
MOV 41H, A
MOV A, 31H
ANL A, #0F0H
SWAP A
MOV 42H, A
则(41H)= (42H)=
18.程序填空
1)数据块传送,将RAM从30H开始的连续32个单元的内容传递给片内RAM从60H开始的连续32个单元。
ORG 1000H
MOV R7,_____
MOV R0, #30H
MOV R1,#60H
LOOP:MOV A,@R0
MOV _____,A
INC R0
INC R1
DJNZ R7, _____
SJMP $
END
2) 将4个单字节数放片内30H~~33H,它们求和结果放在片内40H,41H单元。
ORG 1000H
MOV R7,#04H
MOV R0,30H
CLR A
MOV 41H,A
LOOP: ADD A,@R0
JNC NEXT
INC _____
NEXT:INC _____
DJNZ R7,LOOP
MOV 40H,A
SJMP $
END
3) RAM中40H单元内存有一个十六进制数,把这个数转换为BCD码的十进制数,BCD码的十位和个位放在累加器A中,百位放在R2中。
ORG 2200H
MOV A,_____
MOV B,#64H
DIV AB
MOV R2,A
MOV A,_____
XCH A,B
DIV AB
SWAP _____
ORL A,B
SJMP $
END
4) 编程序将片内40H-46H单元内容的高4位清零,保持低4位不变。
ORG 1000H
MOV R7,#07H
MOV R0,_____
LOOP:MOV A,@R0
ANL A,_____
MOV @R0,A
INC R0
DJNZ R7,LOOP
SJMP $
END
19、程序如下
2506H M5: MOV SP,#58H;
2509H MOV 10H,0FH;
250CH MOV 11H,#0BH;
250FH ACALL XHD;
2511H MOV 20H,11H
2514H M5A: SJMP M5A
XHD: PUSH 10H
PUSH 11H
POP 10H
POP 11H
RET
问:(1)执行POP 10H后堆栈内容?
(2)执行M5A: SJMP M5A后,( SP )=? ( 20H )=?