微控制器程式閱讀題
微控制器是一種積體電路晶片,是採用超大規模積體電路技術把具有資料處理能力的中央處理器CPU隨機儲存器RAM、只讀儲存器ROM、多種I/O口和中斷系統、定時器/計時器等功能整合到一塊矽片上構成的一個小而完善的微型計算機系統,下面是小編為你們準備的,希望能幫助你們。
1. 設***A***=38H, ***20H***=49H, PSW=00H, ***B***=02H,填寫以下結果。
SETB C
ADDC A, 20H
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 ***=?