单片微机原理及应用 徐春辉第4章 习题答案
练习与思考题4
1.按长度分,51系列单片机的指令有 1 字节的、 2 字节的和 3 字节的。2.按指令的执行时间分,51系列单片机的指令有 1 、 2 和 4 机器周期的指令。3.51系列单片机汇编语言指令格式中,唯一不可缺少的部分是(B )。
A.标号B.操作码C.操作数D.注释
4.简述8051的寻址方式和每种寻址方式所涉及的寻址空间。
答:
5.51系列单片机的寻址方式中,位寻址的寻址空间是( D )。
A.工作寄存器R0~R7
B.专用寄存器SFR
C.程序存储器ROM
D.片内RAM的20H~2FH字节中的所有位和地址可被8整除的SFR的有效位
6.分析下面各指令源操作数的寻址方式。
MOV A,32H ;直接寻址
MOV R7,A ;寄存器寻址
MOV @R0,#0FEH ;立即寻址
MOV A,@R1 ;寄存器间接寻址
MOV DPTR,#1E00H ;立即寻址
MOVC A,@A+DPTR ;变址寻址
MOV C,20H ;位寻址
JC 10H ;相对寻址
7.访问特殊功能寄存器和外部数据存储器,分别可以采用哪些寻址方式?
答:访问特殊功能寄存器只能用直接寻址;访问外部数据存储器只能用寄存器间接寻址。
8.在寄存器寻址方式中,指令中指定寄存器的内容就是操作数。
9.在寻址方式中,只能使用8 位二进制数作为直接地址。
10.在寄存器间接寻址方式中,其“间接”体现在指令中寄存器的内容不是操作数,而是操作数的地址。
11.在变址寻址方式中,以累加器A 作变址寄存器,以 PC 或 DPTR 作基址寄存器。。
12.三种传送指令MOV、MOVC和MOVX,使用时有什么区别?
答:MOV指令用来实现单片机内部寄存器、存储单元、特殊功能寄存器之间的数据传送。
MOVC指令用来读程序存储器中的数据表。
MOVX 指令用来实现累加器A和外部数据存储器之间的数据传送。
13.假定DPTR的内容为8100H,累加器的内容为40H,执行指令“MOVC A,@A+DPTR”后,程序存储器8140H 单元的内容送累加器A中。
14.单片机中PUSH和POP指令常用来( C )。
A.保护断点B.保护现场
C.保护现场,恢复现场D.保护断点,恢复断点
15.假定(A) =85H,(R0) =20H,(20H) =AFH。执行指令:ADD A,@R0后,累加器 A的内容为 34H ,CY 的内容为 1 ,AC的内容为 1 ,OV的内容为 1 。
16.假定(A) = 56H,(R5) = 67H。执行指令
ADD A,R6
DA A
后,累加器A的内容为23H ,Cy的内容为 1 。
17.假定(A) = 50H,(B) = 0A0H,执行指令“MUL AB”后,寄存器B的内容为32H ,累加器A的内容为00H 。
18.假定(A) = 0FBH,(B) = 12H ,执行指令“DIV AB”后,累加器A的内容为0DH ,寄存器B的内容为11H 。
19.下列指令中可将累加器A最高位置1的是(B,C,D,E )。
A.ORL A,#7FH B.ORL A,#80H C.SETB 0E7H
D.ORL E0H,#80H E.SETB ACC.7
20.假定标号L2对应的地址值为0100H,标号L3对应的地址值为0123H。当执行指令“L2:SJMP L3”时,该指令的相对偏移量(即指令的第二字节)为21H 。
21.在位操作中,能起到与字节操作中累加器的相似作用的是进位标志位C。
22.累加器A中存放着一个其值小于等于127的8位无符号数,(Cy) = 0,执行RLC A指令后,则A中的数变为原来的 2 倍。
23.试根据以下要求写出相应的汇编语言指令。
(1)将R6的高四位和R7的高四位交换,R6、R7的低四位内容保持不变。
答:MOV A, R6
MOV 30H, R7
MOV R0, #40H
MOV @R0, 30H
XCHD A, @R0
MOV R7, A
MOV 30H, @R0
MOV R6, 30H
(2)两个无符号数分别存放在30H、31H,试求出他们的和并将结果存放在32H。答:MOV A, 30H
ADD A, 31H
MOV 32H, A
(3)将30H单元的内容左环移两位,并送外部RAM 3000H单元。
答: MOV A, 30H
RL A
RL A
MOV DPTR, #3000H
MOVX @DPTR, A
(4)将程序存储器中1000H单元的内容取出送外部RAM 3000H单元。
答:MOV A, #0
MOV DPTR, #1000H
MOVC A, @A+DPTR
MOV DPTR, #3000H
MOVX @DPTR, A
(5)使累加器A的最高位置位。
答:SETB ACC.7
(6)使进位标志位清0
答: CLR C
(7)使ACC.4、ACC.5和ACC.6置1。
答:ORL A, #01110000B。
24.下述程序执行后,(SP)、(A)和(B)分别为多少?
ORG 1000H
MOV SP,#40H
MOV A,#30H
LCALL SUBR
ADD A,#10H
MOV B,A
SJMP $
SUBR:MOV DPTR,#100AH
PUSH DPL
PUSH DPH
RET
答:(SP)=42H、(A)=30H,(B)=30H