二.填空题(每小题1 分,共 15分
1. 执行ANL A, #0FH指令后,累加器A的高四位= 清零 。
2. 设DPTR=(2000)H,(A)=08H,则MOVC A, @A+DPTR的操作数的实际地址为 2008H 。 3. 假定addrll=00100000000B,标号JAZ的地址为1030H,执行指令JAZ: AJMP addrll后,程序转移地址 1100H 去执行。
4. JZ rel 的操作码的地址为1000H ,rel=20H , 他的转移目标地址为 1022H 。 28.执行当前指令后,PC内容为 下一条指令的首地址 。
5. 在寄存器间接寻址方式中,其“间接”体现在指令寄存器的内容不是操作数,而是操作数的 地址 。
6. 假定(A)=0FFH,执行指令INC A后,A的内容为 00H 。
7. MCS-51系统中,当PSEN信号有意义时,表示CPU要从 外部程序 存储器读取信息。 8. 访问MCS-51程序存储器传送指令的操作码助记符应为___MOVC______。
9. 累加器(A)=7EH,(20H)=#04H,MCS-51执行完ADD A,20H指令后,PSW.0为_____________。 10. INC指令_____________ CY位。
11. 假定累加器A的内容为30H,执行指令1000H: MOVC A,@A+PC后,把程序存储器____1031H____
单元的内容送累加器A中。
12. 在R7初值为00H的情况下,DJNZ R7,rel指令将循环执行__256__次。 13. MOV PSW, #10H是将MCS-51的工作寄存器置为第______2___组。 14. 指令LCALL 37B0H,首地址在2000H,完成此操作后(PC)=___37B0H___。
15. 假定DPTR的内容为8100H,累加器A的内容为4DH,执行指令MOVC A, @A+DPTR后,送入A的是程序存储器____814DH_______单元的内容。
16. 累加器A中存放一个其值小于或等于127的8位无符号数,CY清“0”后执行RLC A指令,则A中数变为原来的_____2______倍。
17. MCS-51的两条查表指令是_MOVC A,@A+PC_,_MOVC A, @A+DPTR___。
18. 指令 DJNZ R7, rel的指令操作码所在的地址为3000H,rel=EFH,则它的转移目的地址为_2FF1H___。
19. 通过堆栈操作实现子程序调用,首先要把__PC______的内容入栈,以进行断点保护。 20. 调用返回时再进行出栈操作,把保护的断点弹回____ PC ____。
21. 设(SP)=60H,(ACC)=30H,(B)=70H,执行指令PUSH ACC,PUSH B后,SP的内容为___62H____。 22. 设(SP)=60H,(ACC)=40H,(B)=60H,执行PUSH ACC, PUSH B后61H单元的内容为___40H____。 23. 设(SP)=60H,(ACC)=40H,(B)=80H,执行PUSH ACC,PUSH B,62H 单元的内容为___80H_____。 24. PC中存放的是__下一条指令首地址 _ ___。
25. ORL A, #0F0H是将A的高4位置1,而低4位___不变____________。 26. 一台计算机的指令系统就是它所执行的____指令________集合。
27. 累加器(A)=80H,执行完指令ADD A, #83H后,进位位C=______1______。 28. 以助记符表示的计算机指令就是它的_____汇编_______语言。
29. SJMP rel的指令操作码地址为0050H,rel=65H,那么它的转移目的地址为 00B7H___。 30. 执行如下指令序列后,所实现的逻辑运算式为__ P3.0=_ P1.0^ P1.1_^/ P1.2___。
MOV C, P1.0 ANL C, P1.1 ANL C, /P1.2 MOV P3.0 , C
31. 当MCS-51引脚ALE信号有效时,表示从P0口稳定地送出了____低8位地址____地址。
三、读程序回答
1. 试求下列程序依次运行后有关单元的内容。已知(R0)=24H,(Cy)=1, (1FH)=59H, (20H)=24H, (24H)=B6H 。(6分)
MOV A, 1FH ; (A)=______________
ADDC A, 20H ; 20H的寻址方式是 CLR A ; (A)=______________
ORL A, @R0 ; @R0的寻址方式是 ,
; (A)=______________
CPL A ; (A)=______________
答案:59H、直接寻址、00H、寄存器间接寻址、B6H、49H
2. SECH: MOV DPTR, #2000H
MOV R2, #0FH MOVX A, @DPTR MOV B, A
SLOP : INC DPTR
MOVX A, @DPTR CJNE A, B, SLP1
SLP1: JNC SLP2
MOV B, A
SLP2: DJNZ R2, SLOP
MOV R2, B RET
问:(1)此程序完成的是将从 H单元开始的 H个数中的最 值找出,放在 单元中。 (2)B寄存器里暂存最 值。
(3)若要比较100个数,则哪句程序需要修改? (10分) 答案 :(1)2000H、10H、小、R2
(2)小
(3)将第二句 MOV R2, #0FH 改为 MOV R2, #99
2. ORG 6000H ; ①
TAB : DB 45H, 10,88H,’5’ ; ②
DW 12H,56H,7800H ; ③ ORG 8000H MOV DPTR,#6001H CLR A
MOVC A,@A+DPTR MOV DPTR, #6005H MOVX @DPTR, A
问:(1)根据①②③行指令内容,画出存储器从6000H—6009H中数据分布图。 (2)执行上面的程序,完成了什么功能? (3)最后A的内容为多少?(10分)
6009H (1) 6000H
6001H
45H 0AH 88H 35H 00H 12H 00H 56H 78H 00H 6000H 6001H
6009H
(2)将从ROM单元地址为6001H的内容传送到片外数据RAM6005H单元中。 (3)(A)=0AH
3. 已知某二进制数(10H)存在内部RAM50H单元中,阅读下列程序,说明其功能。(6分)
MOV R0,#50H ; (R0)=____
MOV A, @R0H ; (A)= ,寻址方式是 。 CLR C
RLC A ; (A)=____
ADD A, R1 ; 寻址方式是 INC R0
MOV @R0, A ; @R0的地址是_______________ 答案:50H,10H,寄存器间接寻址,20H,寄存器寻址,51H
4. START: MOV R0, #30H MOV R7,#0FH MOV DPTR, #3000H LOOP: MOV A, @R0
MOVX @DPTR, A INC R0 INC DPTR DJNZ R7, LOOP RET
(1) 程序完成的什么功能? (2) R7的作用是什么?
(3) RET指令完成什么功能?(10分)
答案 :(1)程序将片内RAM中30H—3FH单元的内容传送到片外RAM地址为3000H—300FH中 (2)R7是计数器,初值表示传送数据个数,传送1个减1,当(R7)=0时,表示传送完。 (3)返回到主程序的断点处。
5. ORG 2000H
TAB1:DB 10H,22,‘A’ TAB2:DW 10H,2100H
ORG 3000H MOV DPTR,#TAB2 MOV A,#2 MOVC A,@A+DPTR
问:(1)ROM2000H单元中的内容___________。
(2) 字符‘A’所在单元的地址为___________。
(3) 2005H单元中的内容为___________。
(4)执行程序后,DPTR的内容为___________。 (5) A的内容为___________。(10分) 答案 :
(1)10H (2)2002H (3)21H (4)2003H (5)21H
6. 若(A)=FFH,(R0)=00H,(00H)=FFH,(CY)=0,位地址(00H)=1,将结果填入横线。(6分)
DEC A ; (A)=_______
INC @R0 ; 此句将地址为___H的单元加1 SETB 00H ; 此句完成______功能 ANL C,00H ; (C)=______
ADD A, R0 ; 寻址方式=__________, (A)=__________
答案:FEH,00H,位地址为00H的单元置1。
0, 寄存器寻址,FEH
7. START: MOV A, 40H
MOV DPTR, #TAB MOVC A, @A+DPTR MOV 40H, A RET
TAB DB 30H, 31H, 32H, 33H, 34H DB 35H, 36H, 37H, 38H, 39H 假设40H单元中的数的范围从0—9,问: (1)这段程序完成什么功能?
(2)当执行程序前40H中的内容为6,问执行完这段程序后40H中的内容为_________。 (3) MOVC A,@A+DPTR中的寻址方式是 。(10分)
答案 :(1)这段程序完成了通过查表得到40H单元的数的ASCII码,并将结果返回40H单元。 (2)36H
(3)基址+变址的寻址方式
8. ADD3: MOV A, R5
ADD A, R2 MOV @R0 , A INC R0