第三章 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, LOOP SJMP $
R2
R1
R0
0 0 0 0
答:将R2:R1:R0所表示的24位二进制数左移4位。(相当×16)
6 题 设系统晶振为12MHZ,阅读下列程序,分析其功能。
START: SETB P1.0
NEXT: MOV 30H, #10 LOOP2: MOV 31H, #0FAH LOOP1: NOP
NOP
DJNZ 31H, LOOP1 DJNZ 30H, LOOP2 CPL P1.0
AJMP NEXT
SJMP $
答:((2+1+1)*250+2+2)*10+2=10.042(ms) 在P1.0引脚上输出周期为20ms
的方波。
7 题 阅读下列程序,分析其功能。
MOV R7, #10
MOV A, #30H
MOV DPTR, #2000H
LOOP: MOVX @DPTR, A INC A
INC DPL
DJNZ R7, LOOP SJMP $
1
答:在外部数据存储器中的以下地址内存放数据:
(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 SWAP A ANL A, #15 MOV 34H, A SJMP $
答:将30H单元中的数的高四位放入34H中,低四位放入33H中。
2
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中。
3
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
4
相关推荐: