第三章 MCS -51指令系统
5 题 分析下面程序段的执行功能。
CLR A
MOV R2,A
MOV R7,#4
LOOP: CLR C
MOV A, R0
RLC A
MOV R0,A
MOV A,R1
RLC A
MOV R1,A
MOV A,R2
RLC A
MOV R2,A
DJNZ R7,LO OP
SJMP $ 答:将R2:R1:R0所表示的24位二进制数左移4位。
(相当×16)
6 题 设系统晶振为12MHZ ,阅读下列程序,分析其功能。
START : SETB P1.0 1
NEXT: MOV 30H,#10 2
LOOP2: MOV 31H,#0FAH 2
LOOP1: NOP 1
NOP 1
DJNZ 31H,LOOP1 2
DJNZ 30H,LOOP2 2
CPL P1.0 1
AJMP NEXT 1
SJMP $
答:((2+1+1)*250+2+2)*10+4=10.044(ms) 在P1.0引脚上输出周期为20ms
的方波。
循环体内的时钟+ CPLP1.0+ AJMPNEXT+ MOV 30H,#10 =((2+1+1)*250+2+2)*10+1+1+2=10.044(ms)
7 题 阅读下列程序,分析其功能。
MOV R7, #10
MOV A,
#30H
R2 R1
R0 0 0 0 0
MOV DPTR, #2000H
LOOP:MOVX @DPTR, A
INC A
INC DPL
DJNZ R7, LOOP
SJMP $
答:在外部数据存储器中的以下地址内存放数据:
(2000H)=30H
(2001H)=31H
(2002H)=32H
┇┇
(2009H)=39H
8 题简述下列程序段完成的功能,程序完成后SP指针应指向哪里?
MOV SP,#2FH
MOV DPTR,#2000H
MOV R7,#50H
NEXT: MOVX A,@DPTR
PUSH A
INC DPL
DJNZ R7,NEXT
SJMP $
答:以内部存储器地址30H作为栈底,从30H开始一直到7FH依次存放外部数据存储器中2000H一直到204FH地址中的数据。
7FH作为栈顶。
程序完成后SP=7FH。
9 题分析下列程序段执行结果,程序执行完后,SP指向哪里?
MOV SP,#3FH
MOV R0,#40H
MOV R7,#10H
NEXT: POP A
MOV @R0,A
DEC R0
DJNZ R7,NEXT
SJMP $
答:将栈中3FH,3EH一直到30H地址中的内容依次放入40H,3FH,…,31H单元中。
执行完后SP=2FH。
10 题分析下列程序段执行结果。
XCH A,30H
MOV B,A
ANL A,#0FH
MOV 33H,A
MOV A,B
SW AP A
ANL A,#15
MOV 34H,A
SJMP $
答:将30H单元中的数的高四位放入34H中,低四位放入33H中。
14 题阅读(1)(2)(3)程序段,分析其功能。
运算结果存在哪里?
(1) MOV A,R2
ADD A,R0
MOV 30H,A
MOV A,R3
ADDC A,R1
MOV 31H,A
MOV A,#0
ADDC A,#0
MOV 32H,A
SJMP $
(2) CLR C
MOV A,R4
SUBB A,R2
MOV R0,A
MOV A,R5
SUBB A,R3
MOV R1,A
(3) MOV A,R1
MOV B,R0
MUL AB
MOV 30H,A
MOV 31H,B
MOV A,R2
MOV B,R0
MUL AB
ADD A,31H
MOV 31H,A
MOV A,B
ADDC A,#0
MOV 32H,A
SJMP $
答:(1)将R3:R2和R1:R0中的两个16位数相加,结果存放在32H:31H:30H中。
(2)用R5:R4中的16位数减去R3:R2中16位数,结果存放在R1:R0中。
(3)R2:R1中的16位数乘以R0中的数,结果存放在32H:31H:30H中。
23 题有四个变量U、V、W、X分别从P1.0~P1.3输入,阅读如下程序,写出逻辑表达式并画出逻辑电路图。
请使用ORG、END、BIT等伪指令重新编写该程序段。
MOV P1,#0FH
MOV C,P1.0
ANL C,P1.1
CPL C
MOV ACC.0,C
MOV C,P1.2
ORL C,/P1.3
ORL C,ACC.0
MOV F,C
SJMP $
答:电路图如下:
逻辑表达式:
重新整理编写程序如下:
ORG 0000H
U BIT P1.0
V BIT P1.1
W BIT P1.2
X BIT P1.3
MOV C,U
ANL C,V
CPL C
MOV ACC.0,C
MOV C,W
ORL C,/X
ORL C,ACC.0
MOV F,C
SJMP $
END
24 题用布尔指令,求解逻辑方程。
(1) PSW.5=P1.3∧ACC.2∨B.5∧P1.1
(2) PSW.5=P1.5∧B.4∨ACC.7∧P1.0
答:(1)MOV C,P1.3
ANL C,ACC.2
MOV ACC.0,C
MOV C,B.5
ANL C,P1.1
ORL C,ACC.0
MOV PSW.5,C
(2)MOV C,P1.5
ANL C,B.4
MOV ACC.0,C
MOV C,ACC.7
ANL C,P1.0
ORL C,ACC.0
CPL C
MOV PSW.5,C。