当前位置:首页 > 西华大学 单片机复习题集 答案更全
类指令有17条,包括布尔传送指令、布尔状态控制指令、布尔逻辑操作指令、布尔条件转移指令。
2.8051单片机指令系统按功能可分为几类?具有几种寻址方式?它们的寻址范围如何? 答:MCS-51单片机指令系统按功能可分为5类: (1)数据传送指令 (2)算术运算指令
(3)逻辑运算和移位指令 (4)控制转移指令 (5)位操作指令
MCS-51单片机的指令系统提供了七种寻址方式,其对应的寻址范围如下表:
寻址方式 立即寻址 直接寻址 寄存器寻址 寄存器间接寻址 变址寻址 相对寻址 位寻址
3.访问特殊功能寄存器和外部数据存储器应采用哪种寻址方式? 答: 访问特殊功能寄存器,应采用直接寻址、位寻址方式。 访问外部数据存储器,应采用寄存器间接寻址方式。 在0~255B范围内,可用寄存器R0、R1间接寻址: MOVX A,@R0 或 MOVX A,@R1 MOVX @R0,A 或 MOVX @R1,A
在0~64KB范围内,可用16位寄存器DPTR间接寻址: MOVX A,@DPTR MOVX @DPTR,A
4.“DA A”指令的作用是什么?怎样使用?
答:这条指令是在进行BCD码加法运算时,跟在“ADD”和“ADDC”指令之后,用来对
BCD码的加法运算结果自动进行修正的,使其仍为BCD码表达形式。
使用的变量 R0~R7;A、B、DPTR、C @R0、@R1、SP @R0、@R1、@DPTR @A+PC、@A+DPTR PC+偏移量 寻址范围 程序存储器 内部RAM低128个字节; 特殊功能寄存器SFR 内部RAM、堆栈指针SP 外部RAM 程序存储器 程序存储器 内部RAM低128B位寻址区 可位寻址的特殊功能寄存器位
在计算机中,遇到十进制调整指令时,中间结果的修正是由ALU硬件中的十进制修正电路
自动进行的。用户不必考虑何时该加“6”,使用时只需在上述加法指令后面紧跟一条“DA A”指令即可。
5.片内RAM 20H~2FH单元中的128个位地址与直接地址00H~7FH形式完全相同,如何
在指令中区分出位寻址操作和直接寻址操作?
答: 虽然内部RAM位寻址区的位地址范围00H~7FH与低128个单元的单元地址范围
00H~7FH形式完全相同,但是在应用中可以通过指令的类型区分单元地址和位地址。 位寻址的操作只适用于下列位指令,而直接寻址操作对这些指令是无效的。 MOV C,bit MOV bit,C CLR bit SETB bit CPL bit ANL C,bit ANLC,/bit JB bit,rel JNB bit,rel
6.8051单片机指令系统中有长跳转LJMP,长调用LCALL指令,为何还没有设置了绝对
跳转AJMP,绝对调用ACALL指令?在实际使用是应怎样考虑?
答: 在实际应用中,可从寻址范围和指令长度两个方面来选择长跳转指令LJMP和短跳转指
令AJMP、长调用指令LCALL和短调用指令ACALL。
长跳转LJMP在64KB范围内转移,而短跳转AJMP只能在2KB空间转移。长调用LCALL
调用位于64KB程序空间的子程序,而短调用ACALL调用位于2KB程序空间范围的子程序。AJMP、ACALL指令代码长度为2个字节;LJMP、LCALL指令代码长度为3个字节。
7.SJMP,AJMP和LJMP指令在功能上有何不同? 答: 指令的转移范围不同。
SJMP是256B范围内的相对转移指令,AJMP是2KB范围内的无条件短跳转指令,LJMP
是64KB范围内的无条件长跳转指令。
8.MOVC A,@DPTR与MOVX A,@DPTR指令有何不同? 答: 指令的转移范围不同。
SJMP是256B范围内的相对转移指令,AJMP是2KB范围内的无条件短跳转指令,LJMP
是64KB范围内的无条件长跳转指令。
9. 在“MOVC A,@A+DPTR”和“MOVC A,@A+PC”中,分别使用了DPTR和PC
作基址,请问这两个基址代表什么地址?使用中有何不同?
答: 使用@A+DPTR基址变址寻址时,DPTR为常数且是表格的首地址,A为从表格首址到
被访问字节地址的偏移量。
使用@A+PC基址变址寻址时,PC仍是下条指令首地址,而A则是从下条指令首地址到常
数表格中的被访问字节的偏移量。
10.设片内RAM中的(40H)=50H,写出执行下列程序段后寄存器A和R0,以及片内RAM
中50H和51H单元的内容为何值? MOV A,40H MOV R0,A MOV A,#00 MOV @R0,A MOV A,#30H MOV 51H,A MOV 52H,#70H
答:结果为:(A)=30H (R0)=50H (50H)=00H (51H)=30H
11.设堆栈指针(SP)=60H,片内RAM中的(30H)=24H,(31H)=10H。执行下列程序
段后,61H,62H,30H,31H,DPTR及SP中的内容将有何变化? 答:
结果为: (61H)=24H (62H)=10H (30H)=00H
12.在8051的片内RAM中,已知(20H)=30H,(30H)=40H,(40H)=50H,(50H)=55H。
分析下面各条指令,说明源操作数的寻址方式,分析按顺序执行各条指令后的结果。 MOV A,40H MOV R0,A MOV P1,#0F0H MOV @R0,20H MOV 50H,R0 MOV A,@R0 MOV P2,P1
答: 指令 源操作数的寻址方式 执行指令后的结果 MOV A,40H 直接寻址 (A)=50H MOV R0,A 寄存器寻址 (R0)=50H MOV P1,#80H 立即寻址 (P1)=80H MOV @R0,20H 寄存器间接寻址 (50H)=30H
(31H)=0FFH DPTR=2410H SP=60H
MOV DPTR,#2000H 立即寻址 (DPTR)=2000H MOV 40H,30H 直接寻址 (40H)=40H MOV R0,30H 直接寻址 (R0)=40H MOV D0H,R0 直接寻址 (D0H)=40H MOV 10H,#10H 立即寻址 (10H)=10H MOV A,@R0 寄存器间接寻址 (A)=50H MOV P2,P1 寄存器寻址 (P2)=80H
13.完成以下的数据传送过程。 (1)R1的内容传送到R0。
(2)片外RAM 20H单元的内容送R0。
(3)片外RAM 20H单元的内容送片内RAM 20H (4)片外RAM 1000H单元的内容送片内RAM 20H (5)片外RAM 20H单元的内容送R0。
(6)片外RAM 2000H单元的内容送片内RAM 20H (7)片外RAM 20H单元的内容送片外RAM 20H 答:(1)R1的内容传送到R0 ; MOV A, R1
MOV R0, MOV
A
(2)片外RAM 20H单元内容送R0 ;
DPTR, #0020H
@DPTR
MOVX A,
MOV R0, A
(3)片外 RAM 20H单元的内容送片内RAM 20H单元; MOV DPTR, #0020H
MOVX A, @DPTR MOV 20H, A
(4)片外RAM 1000H单元的内容送片内 RAM 20H 单元; MOV DPTR, #1000H MOVX A, MOV
@DPTR
20H, A
(5)ROM 2000H单元的内容送R0单元; MOV A, #00H MOV DPTR, #2000H MOVC A, @A+DPTR MOV
R0H, A
(6)ROM 2000H 单元的内容送片内RAM 20H单元; MOV A, #00H
共分享92篇相关文档