西北民族大学单片机考试试题.docx
《西北民族大学单片机考试试题.docx》由会员分享,可在线阅读,更多相关《西北民族大学单片机考试试题.docx(17页珍藏版)》请在冰豆网上搜索。
![西北民族大学单片机考试试题.docx](https://file1.bdocx.com/fileroot1/2023-1/14/28d41fc0-91e1-45a7-8ef9-02649caab013/28d41fc0-91e1-45a7-8ef9-02649caab0131.gif)
西北民族大学单片机考试试题
一、读程序填空题:
1.
题干
完成以下填空。
(1)执行下列程序段后,(P1)=_______。
MOVP1,#5DH
CPLP1.1
CPLP1.2
CLRP1.6
SETBP1.7
(2)已知(SP)=60H,子程序SUBTRN的首地址为0345H,现执行位于0123H的ACALLSUBTRN双字节指令后,(PC)=___,(61H)=______,(62H)=_。
答案
(1)(P1)=9BH。
(2)(PC)=0345H,(61H)=25H,(62H)=01H。
2.
题干
完成以下填空。
(1)执行下列程序段后,(A)=_______,(CY)=____。
MOVA,#C5H
RLA
(2)下列程序段执行后,(R0)=______,(7EH)=____,(7FH)=______。
MOVR0,#7EH
MOV7EH,#0FFH
MOV7FH,#40H
1NC@R0
1NCR0
1NC@R0
答案
(1)(A)=8BH,(CY)=0。
(2)(R0)=7FH,(7EH)=00H,(7FH)=41H。
3.
题干
在8051单片机片内RAM中,已知(30H)=38H,(38H)=40H,(40H)=48H,(48H)=90H,请分析依次执行下面各条指令的结果并填空。
指令:
结果:
MOV A,40H;
MOV R0,A;(R0)=
MOV P1,#F0H;(P1)=
MOV @R0,30H;(90H)=
MOV DPTR,#3848H;(DPH)=
MOV 40H,38H;(40H)=
MOV R0,30H;(R0)=
MOV 90H,R0;(90H)=
MOV 18H,#30H;(18H)=
MOV A,@R0;(A)=
MOV P2,P1;(P2)=
答案
(R0)=48H
(P1)=F0H
(90H)=38H
(DPH)=38H
(40H)=40H
(R0)=38H
(90H)=38H
(18H)=30H
(A)=40H
(P2)=F0H
4.
题干
判断下列各条指令的书写格式是否有错,并指出原因。
(1)MULR0R1(),原因:
()
(2)MOVA,@R7(),原因:
()
(3)MOVA,#3000H(),原因:
()
(4)MOVR1,C(),原因:
()
(5)MOVA,@A+PC(),原因:
()
答案
×,乘法指令用A×B;
×,寄存器间接寻址用R0和R1(只能用R1和R0作指针);
×,A是8位寄存器
×,C为进位位,不能送给寄存器
×,本指令为查表指令,不能用MOV,应该用MOVC
5.
题干
已知:
(30H)=X7X6X5X4X3X2X1X0B,(31H)=Y7Y6Y5Y4Y3Y2Y1Y0B,请给出下列指令执行后注释中的结果。
MOV32H,30H;
ANL32H,#0FH;(32H)=
MOVA,31H;
SWAPA;(A)=
RLA;(A)=
ANLA,#0F0H;(A)=
ORL32H,A;(32H)=
答案
(32H)=0000X3X2X1X0
(A)=Y3Y2Y1Y0Y7Y6Y5Y4
(A)=Y2Y1Y0Y7Y6Y5Y4Y3
(A)=Y2Y1Y0Y70000
(32H)=Y2Y1Y0Y7X3X2X1X0
6.
题干
执行下列程序后,(A)=,(R0)=,(R1)=。
ORG0000H
LJMPMAIN
ORG0030H
MAIN:
MOVSP,#50H
LCALLSBRUT
SJMP$
SBRUT:
MOVR0,#00H
MOVR1,#0AH
MOVDPTR,#DATA
LOOP:
MOVA,R0
MOVCA,@A+DPTR
CJNEA,#0FFH,LOOP1
SJMPEXIT
LOOP1:
INCR0
DJNZR1,LOOP
EXIT:
RET
DATA:
DB00H,11H,22H,33H,44H
DB55H,66H,77H,88H,99H
END
答案
(A)=99H,(R0)=0AH,(R1)=00H。
7.
题干
若(50H)=40H,执行一下程序段后(A)=,(R0)=,(40H)=,(41H)=,(42H)=。
MOVA,50H
MOVR0,A
MOVA,#00H
MOV@R0,A
MOVA,#3BH
MOV41H,A
MOV42H,41H;
答案
(A)=3BH,(R0)=40H,(40H)=00H,(41H)=3BH,(42H)=3BH
8.
题干
请分析依次执行下面指令的结果,并填空。
MOV SP,#35H
MOV DPTR,#2345H
PUSH DPL (SP)=,(DPL)=,(36H)=
PUSH DPH (SP)=,(DPH)=,(37H)=
……
POP DPH (DPH)=,(SP)=
POP DPL (DPL)=,(SP)=
答案
(SP)=36H,(DPL)=45H,(36H)=45H,
(SP)=37H,(DPH)=23H,(37H)=23H,
……
(DPH)=23H,(SP)=36H
(DPL)=45H,(SP)=35H
9.
题干
执行下列程序段中第一条指令后,
(1)(P1.7)=____,(P1.3)=_____,(P1.2)=______;执行第二条指令后,
(2)(P1.5)=____,(P1.4)=______,(P1.3)=______;执行第三条指令后(3)(P1.7)=_________,(P1.4)=_________,(P1.3)=________,(P1.2)=_________。
ANLP1,#73H
ORLP1,#38H
XRLP1,#FFH
答案
(1)(P1.7)=0(P1.3)=0,(P1.2)=0;
(2)(P1.5)=1,(P1.4)=1,(P1.3)=1;
(3)(P1.7)=1,(P1.4)=0,(P1.3)=0,(P1.2)=1。
10.
题干
分析程序并填空。
(1)下列程序段执行后,(A)=_________,(B)=_________。
MOVA,#0FBH
MOVB,#12H
DIVAB
(2)已知(SP)=09H,(DPTR)=4567H,在执行下列指令后,(SP)=_______,内部RAM(0AH)=_________,(0BH)=_________
PUSHDPL
PUSHDPH
答案
(1)(A)=0DH,(B)=11H;
(2)(SP)=0BH,(0AH)=67H,(0BH)=45H.
11.
题干
下列程序中注释的数字为执行该指令所需的机器周期数,若单片机的晶振频率为6MHz,问该单片机的机器周期=,执行下列程序约需要ms?
MOVR3,#100;1
LOOP:
NOP;1
NOP
NOP
DJNZR3,LOOP;2
RET;1
答案
2µs,1ms
12.
题干
已知(A)=83H,(CY)=0,分析执行下列指令后A和CY的值。
指令结果
RLCAA=,CY=
RLAA=,CY=
RLCAA=,CY=
RRAA=,CY=
RRCAA=,CY=
答案
A=06H,CY=1
A=0CH,CY=1
A=19H,CY=0
A=0CH,CY=0
A=06H,CY=0
13.
题干
设两个数(A)=88H,(R1)=99H,(CY)=1,执行ADDCA,R1指令求两数之和,分析和的值及PSW的有关标志位的内容,并填空,即CY=,AC=,P=,OV=小,A=。
答案
(CY)=1,(AC)=1,(P)=0,(OV)=1,(A)=22H
14.
题干
已知A=FBH,B=12H,问:
执行DIVAB指令后,A=、B=,标志位CY=、OV=和P的值。
答案
(A)=0DH,(B)=11H,(CY)=0,(OV)=0,(P)=1。
15.
题干
下面查表程序中有一个数据表,设存于R0的数为8,运行下面查表程序后R1=。
地址源程序
ORG0000H
0000H:
DECR0
0001H:
MOVA,R0
0002H:
ADDA,#03H
0004H:
MOVCA,@A+PC
0005H:
MOVR1,A
0006H:
SJMP$
0008H:
TAB:
1,4,9,16,25,36,49,64,81
END
答案
(R1)=64
16.
题干
下面查表程序中有一个数据表,设存于R0的数为8,运行下面查表程序后R1=。
地址源程序
ORG0000H
MOVDPTR,#TABLE
DECR0
MOVA,R0
MOVCY,#0
ADDCA,#01H
MOVCA,@A+DPTR
MOVR1,A
SJMP$
TABLE:
DB0,1,4,9,16,25,36,49,64,81
END
答案
(R1)=64
17.
题干
分析下面程序并填空。
MOVR0,#10H;
MOVA,#10H;(A)=
MOV@R0,A;(10H)=
ADDA,10H;(A)=
MOV20H,A;(20H)=
INCA;(A)=
MOV@R0,A;(10H)=
SWAPA;(A)=
RR,A;(A)=
MOV10H,A;(10H)=,(R0)=
答案
(A)=10H,
(10H)=10H,
(A)=20H,
(20H)=20H,
(A)=21H,
(10H)=21H,
(A)=12H,
(A)=09H,
(10H)=09H,
(R0)=10H
18.
题干
分析下面程序并填空。
MOVDPTR,#2000H;(DPL)=,(DPH)=
MOVA,#80H;
MOVX@DPTR,A;(2000H)=
INCDPTR;(DPTR)=
MOVA,#90H;
MOVX@DPTR,A;(2001H)=
MOVDPTR,#2000H;(DPTR)=
MOVXA,@DPTR;(A)=
MOVB,A;(B)=
INCDPTR;(DPTR)=
MOVXA,@DPTR;(A)=
答案
MOVDPTR,#2000H;(DPL)=00H,(DPH)=20H
MOVA,#80H;
MOVX@DPTR,A;(2000H)=80H
INCDPTR;(DPTR)=2001H
MOVA,#90H;
MOVX@DPTR,A;(2001H)=90H
MOVDPTR,#2000H;(DPTR)=2000H
MOVXA,@DPTR;(A)=80H
MOVB,A;(B)=80H
INCDPTR;(DPTR)=2001H
MOVXA,@DPTR;(A)=90H
19
题干
改正下列指令。
MOV@R3,A
MOVDPTR,A
INC@R3
DECDPTR
ADDC#30H,A
答案
MOV@R1,A
MOVX@DPTR,A
INCR1
DECR0
ADDCA,#30H
20.
题干
程序段如下,试说明其功能。
MOVR0,#50H
MOVR1,#60H
MOVA,@R0
ADDA,@R1
MOV@R0,A
INCR0
INCR1
MOVA,@R0
ADDCA,@R1
MOV@R0,A
MOV00H,C
答案
双字节无符号数加法;被加数存放在内部RAM的51H、50H单元,加数存放在内部RAM的61H、60H单元,相加的结果存放在内部RAM的51H、50H单元,进位存放在位寻址区的00H位中。
21.
题干
设(R0)=20H,(R1)=25H,(20H)=80H,(21H)=90H,(22H)=A0H,(25H)=A0H,(26H)=6FH,(27H)=76H,试在后面的空格中填入程序执行后的结果。
CLRC
MOVR2,#3
LOOP:
MOVA,@R0
ADDCA,@R1
MOV@R0,A
INCR0
INCR1
DJNZR2,LOOP
JNCNEXT
MOV@R0,#01H
SJMP$
NEXT:
DECR0
SJMP$
结果:
(20H)=,(21H)=,(22H)=,(23H)=,CY=,AC=,A=,R0=,R1=,R2=。
答案
(20H)=20H,(21H)=00H,(22H)=17H,(23H)=01H,(CY)=1,(AC)=0,A=17H,R0=23H,R1=28H,R2=00H。
22.
题干
程序段如下,试说明其功能。
ST:
MOVA,30H
ACALLSQR
MOVR1,A
MOVA,31H
ACALLSQR
ADDA,R1
MOV32H,A
SJMP$
SQR:
MOVDPTR,#TAB
MOVCA,@A+DPTR
RET
TAB:
DB0,1,4,9,16,25,36,49,64,81
答案
30H中数的平方加31H中数的平方,和存于32H单元。
23.
题干
设(20H)=03H,(22H)=50H,(23H)=5AH,(24H)=71H,分析下面程序,说明其功能,并填写程序执行后的结果。
(21H)=,(00H)=。
CLRA
CLRC
MOVR2,20H
MOVR1,#22H
LOOP:
ADDCA,@R1
INCR1
DJNZR2,LOOP
MOV21H,A
MOV00H,C
答案
实现50H、5AH和71H三个数的相加,并将和存入21H单元,进位CY的值存入00H单元。
(21H)=1BH,(00H)=1。
24.
题干
有一程序如下,试说明其功能。
ADDB:
MOVA,40H
ADDA,50H
DAA
MOV60H,A
MOVA,41H
ADDCA,51H
DAA
MOV61H,A
RET
答案
两个双字节压缩的BCD数相加:
两数的低字节分别存于40H和50H单元,两数的高字节分别存于41H和51H单元,和的低字节存于60H单元,和的高字节存于61H单元。