单片机程序阅读题Word格式文档下载.docx
《单片机程序阅读题Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《单片机程序阅读题Word格式文档下载.docx(6页珍藏版)》请在冰豆网上搜索。
![单片机程序阅读题Word格式文档下载.docx](https://file1.bdocx.com/fileroot1/2023-1/24/f40809ad-06be-4673-9ead-479c547bf86e/f40809ad-06be-4673-9ead-479c547bf86e1.gif)
LCALLSUB
SUB:
NOP
INCX
DECY
MOVA,Y
JZSUBRET
SUBRET:
RET
计算X和Y的值是多少?
(X)=;
(Y)=;
3.执行以下程序后,R2,R3的内容是什么?
请在要求说明的地方给程序加上说明
MOVR3,#45H
MOVDPTR,#TABL;
说明:
MOVA,R3
ANLA,#0FH;
MOVCA,@A+DPTR;
MOVR2,A
ANLA,#0F0H
SWAPA
MOVCA,@A+DPTR
MOVR3,A
TABL:
DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,98H
(R2)=;
(R3)=;
4.51单片机振荡频率为12MHz,阅读程序后说明
ORG0000H
LJMPMAIN
ORG001BH
LJMPINTT1
ORG0040H
INTT1:
MOVTH1,#3CH
MOVTL1,#0B0H
DJNZR7,L2
MOVR7,#20
CPLP1.2
L2:
RETI
ORG0100H
MOVSP,#5FH
MOVTMOD,①
SETBEA
SETB②
SETBTR1
SJMP$
1)依据程序内容填空:
①;
②;
2)定时器T1的定时时间是多少?
3)存放器R7在程序中的作用是什么?
4)该程序完成什么功能?
5.执行下面一段程序;
填写运行结果
MOVSP,#60H
MOVA,#10H
MOVB,#01H
PUSHA
PUSHB
POPA
POPB
A,B的内容是:
(A)=(B)=;
6.设自变量为X,存放在ARE单元,应变量Y存放在BUF单元。
给程序标注说明,说明该段子程序的功能并写出该程序的函数关系式。
(7分)
START:
MOVDPTR,#ARE
MOA,@DPTR
JZSUL
JBACC.7,NEG;
MOVA,#02H
SUL:
MOVDPTR,#BUF
MO@DPTR,A;
NEG:
MOVA,#0FEH
SJMPSUL
7.执行以下程序段后,(P1)=_______。
MOVP1,#5DH
CPLP1.1
CLRP1.6
SETBP1.7
8.执行以下程序段后,(A)=_______,(CY)=____。
MOVA,#C5H
RLA
9.以下程序段执行后,(R0)=_______,(7EH)=____,(7FH)=_______。
MOVR0,#7EH
MOV7EH,#0FFH
MOV7FH,#40H
1NC@R0
1NCR0
10.已知(SP)=60H,子程序SUBTRN的首地址为0345H,现执行位于0123H的ACALLSUBTRN双字节指令后,(PC)=___,(61H)=_______,(62H)=____。
11.阅读以下程序,说明其功能。
MOVR0,#data
MOVA,@R0
MOVR1,A
ADDA,R1
MOV@R0,A
12.以下各条指令其源操作数的寻址方式是什么?
各条指令单独执行后,A中的结果是什么?
设(60H)=35H,(A)=19H,(R0)=30H,(30H)=0FH。
(1)MOVA,#48H;
寻址方式:
(A)=
(2)ADDA,60H;
(3)ANLA,@R0;
13.阅读以下程序段,写出每条指令执行后的结果,并说明此程序段完成什么功能?
MOVR1,#30H;
(R1)=
MOVA,#64H;
(A)=
ADDA,#47H;
(A)=,(CY)=,
(AC)=
DAA;
MOV@R1,A;
(R1)=,(30H)=
此程序段完成的功能:
14.已知(R0)=20H,(20H)=10H,(P0)=30H,(R2)=20H,执行如下程序段后(40H)=
MOV@R0,#11H
MOVA,R2
ADDA,20H
MOVPSW,#80H
SUBBA,P0
XRLA,#45H
MOV40H,A
15.已知(R0)=20H,(20H)=36H,(21H)=17H,(36H)=34H,执行过程如下:
MOVA,@R0
MOVR0,A
ADDA,21H
ORLA,#21H
MOVR2,A
那么执行完毕(R0)=(R2)=
16.执行下面一段程序;
(A)=(B)=
17.设在31H单元存有#23H,执行下面程序:
MOVA,31H
ANLA,#0FH
MOV41H,A
ANLA,#0F0H
MOV42H,A
那么(41H)=(42H)=
18.程序填空
1)数据块传送,将RAM从30H开头的连续32个单元的内容传递给片内RAM从60H开头的连续32个单元。
ORG1000H
MOVR7,_____
MOVR0,#30H
MOVR1,#60H
LOOP:
MOVA,@R0
MOV_____,A
INCR0
INCR1
DJNZR7,_____
END
2)将4个单字节数放片内30H~~33H,它们求和结果放在片内40H,41H单元。
MOVR7,#04H
MOVR0,30H
CLRA
MOV41H,A
ADDA,@R0
JNCNEXT
INC_____
NEXT:
INC_____
DJNZR7,LOOP
MOV40H,A
3)RAM中40H单元内存有一个十六进制数,把这个数转换为BCD码的十进制数,BCD码的十位和个位放在累加器A中,百位放在R2中。
ORG2200H
MOVA,_____
MOVB,#64H
DIVAB
XCHA,B
SWAP_____
ORLA,B
4)编程序将片内40H-46H单元内容的高4位清零,保持低4位不变。
MOVR7,#07H
MOVR0,_____
MOVA,@R0
ANLA,_____
MOV@R0,A
19、程序如下
2506HM5:
MOVSP,#58H;
2509H MOV10H,0FH;
250CHMOV11H,#0BH;
250FHACALLXHD;
2511HMOV20H,11H
2514HM5A:
SJMPM5A
XHD:
PUSH10H
PUSH11H
POP10H
POP11H
问:
(1)执行POP10H后堆栈内容?
(2)执行M5A:
SJMPM5A后,(SP)=?
(20H)=?