單片機程序閱讀題
單片機程序閱讀題
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 )=?