第二章 指令系统例题习题(按朱定华书重编
- 格式:doc
- 大小:59.50 KB
- 文档页数:5
第二章指令系统例题习题
一、选择题:
1. 指令MOV寻址空间是【】。
A.片外ROM B。片外RAM C。片内RAM D。片内ROM
2. 指令MOVX寻址空间是【】。
A.片外ROM B。片外RAM C。片内RAM D。片内ROM
3.下列指令中正确的是()。
(A)MOV P2.1,A (B)MOV 20H,30H
(C)MOVX B,@DPTR (D)MOV A,@R3
4. “MUL AB”指令执行后,16位乘积的高位在【】中。
A. A
B. C
C. AB
D. B
5. “MOV A, 30H”的寻址方式是【】。
A。寄存器寻址 B。寄存器间接寻址 C。直接寻址 D。立即寻址
6.下列指令中错误的是()。
(A)SETB 50H.0 (B)MOV A,B
(C)XCH A,R3 (D)SUBB A,R0
7、下列各条指令的书写格式正确的是
A. MUL R0,R1
B. MOVX A, @R1
C. MOVC @A+DPTR, A
D. MOV A,@R7
8.当需要从MCS-51单片机程序存储器取数据时,采用的指令为()。
A. MOV A, @R1
B. MOVX A, @ R0
C. MOVC A, @A+DPTR
D.MOVX A, @ DPTR
9、若原来使用工作寄存器0组作为当前寄存器组,现要该为1组,不能使用的指令为
A)SETB PSW.3 B) MOV PSW.3,1
C) SETB 0D0H.3 D) CPL PSW.3
10、不能为程序存储器提供和构成地址的有
A)PC B)A
C)DPTR D)PSW
11.执行PUSH ACC指令,MCS-51完成的操作是()
A). SP+1 SP ,(ACC)(SP)
B).(ACC)(SP),SP-1 SP
C). SP-1 SP, (ACC) (SP)
D).(ACC)(SP),SP+1 SP
12.假定累加器A的内容为30H,执行指令:
1000H:MOVC A,@A+PC
后,把程序存储器()单元的内容送累加器A中
A).1000H B).1001H
C). 031H D).1030H
13.下列指令中不影响标志位CY的指令有()
A、ADD A,20H
B、CLR C 、RRC A D、INC A
二.判断以下指令的正误。
(1)MOV 28H,@R2
(2)DEC DPTR
(3)INC DPTR
(4)CLR R0
(5)CPL R5
(6)MOV R0,R1
(7)PHSH DPTR
(8)MOV F0,C
(9)MOV F0,Acc.3
(10)MOVX A,@R1
(11)MOV C,30H
(12)RLC R0
三、汇编程序分析与设计
1. 设堆栈指针SP中的内容为60H,内部RAM中30H和31H单元的内容分别为
24H和10H,执行下列程序段后,61H,62H,30H,31H,DPTR以及SP中的内容将有何变化?
答:程序执行过程中相关单元内容的变化情况如下:
PUSH 30H ;SP=61H,(61H)=24H
PUSH 31H ;SP=62H,(62H)=10H
POP DPL ;SP=61H,DPL=10H
POP DPH ;SP=60H,DPH=24H
MOV 30H,#00H ;(30H)=00H
MOV 31H,#0FFH ;(31H)=FFH
2.按下列要求传送数据:设ROM(4000H)=44H
(1)ROM4000H单元数据送内RAM 20H单元
(2)ROM4000H单元数据送R0
(3)内RAM 50H单元数据送外RAM 50H单元,设内RAM(50H)=11H。
解:
(1)
MOV DPTR,#4000H
MOV A,#00H
MOVC A,@A+DPTR
MOV 20H,A
(2)
MOV DPTR,#4000H
MOV A,#00H
MOVC A,@A+DPTR
MOV R0,A
(3)
MOV A,50H
MOV R0,#50H
MOVX @R0,A
3.编写程序,将位存储单元38H中的内容与位存储单元49H中的内容互换解:
MOV C , 38H ;(38H)->C
MOV F0 , C ;C->F0,F0是PSW中的用户标志
MOV C , 49H ;
MOV 38H , C ;(49H)->(38H)
MOV C , F0 ;
MOV 48H , C ;(38H)->(49H)
4.分析题:假设内RAM单元(60H)=5,问,执行完下列指令序列后内RAM(60H)的内容为多少?
MOV R0,#60H
MOV A, @R0
RL A
MOV R1,A
RL A
RL A
ADD A,R1
MOV @R0,A
答:50
MOV R0 ,#60H ;R0=60H
MOV A , @R0 ;A=05
RL A ;A=10
MOV R1 , A ;R1=10
RL A ;A=20;
RL A ;A=40
ADD A , R1 ;A=40+10=50