1、阅读下列材料:
第三章 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 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
的方波。
循环体内的时钟+ CPL P1.0+ AJMP NEXT+ MOV 30H, #10 =((2+1+1)*250+2+2)*10+1+1+2=10.044(ms)
7 题 阅读下列程序,分析其功能。
MOV R7, #10
MOV A, #30H
MOV DPTR, #2000H
LOOP: MOVX @DPTR, A INC A
INC DPL
页脚内容
1
1、阅读下列材料:
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 SWAP A
ANL A, #15 MOV 34H, A
2
页脚内容
1、阅读下列材料:
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中。
3
页脚内容