云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 单片机指令系统复习

单片机指令系统复习

  • 62 次阅读
  • 3 次下载
  • 2025/6/1 16:27:30

一. 填空题

1. 指出以下程序顺序执行后每一条指令的结果。填写在划线部分。 (1)MOV A,#25H ; (A)=25H (2)MOV 40H,#1AH ; (40H)=1AH (3)MOV R2,#33H ; (R2)= 33H

(4)CLR C ; (C)= 0 (5)ADD A ,R2 ; (A)=58H (6)ADDC A,40H ; (A)=72H (7)MOV RO,#40H ; (R0)=40H (8)ADDC A,@RO ; (A)=8CH

2. 在划线部分写出下列程序每一条指令执行后其目的操作数的结果。 (1)MOV A,#OFOH ; 0F0H (2) CPL A ; 0FH (3)ANL 30H,#00H ; 00H (4) ORL 30H, #BDH ; 0BDH (5)XRL 30H,A ; 0B2H

3. 若(A)=7AH,分别执行下列指令后,A的值是多少?填在划线部分。标志位CY和OV的值各是多少 考虑上下指令之间的联系。 (1)ANL A,#0FFH ; 7AH (4)ORL A,#00H ; 7AH (2)ORL A,#0FFH ; 0FFH (5)XRL A,#0FFH ; 85H (3)ANL A,#00H ; 00H (6)XRL A,00H ; 7AH 二.简答题

1. 8051单片机的指令系统有何特点?

解:8051的指令系统由111条指令组成。如果按字节数分类,有49条单字节指令46条双字节指令和16条三字节指令,以单字节指令为主;如果按照指令执行时间分类,有64条单周期指令、45条双周期指令和2条四周期指令,以单周期指令为主。

8051的指令系统具有以下特点:

(1)存储效率高、执行速度快,可以进行直接地址到直接地址的数据传送,能把一个并行I/O口中的内容传送到内部RAM单元中而不必经过累加器A或工作寄存器Rn。这样可以大大提高传送速度和缓解累加器A的瓶颈效应。

(2)用变址寻址方式访问程序存储器中的表格,将程序存储器单元中的固定常数或表格字节内容传送到累加器A中。这为编成翻译算法提供了方便。 (3)在算术运算指令中设有乘法和除法指令

(4)指令系统中一些对I/O口进行操作的指令具有“读——修改——写”的功能。这一功能指:在执行读锁存器的指令时,CPU首先完成将锁存器的值通过缓冲器BUF2度入内部,进行修改、改变,然后重新写到锁存器中去。这种类型指令包含所有的逻辑操作和位操作指令。

(5)8051单片机内部有一个布尔处理器,对为地址空间具有丰富的位操作指令。布尔操作类指令有17条,包括布尔传送指令、布尔状态控制指令、布尔逻辑操作指令、布尔条件转移指令。 2. 8051单片机指令系统按功能可分为几类?具有几种寻址方式?它们的寻址范围如何? 解:MCS-51单片机指令系统按功能可分为5类:

(1)数据传送指令2)算术运算指令3)逻辑运算和移位指令4)控制转移指令5)位操作指令 MCS-51单片机的指令系统提供了七种寻址方式,其对应的寻址范围如下表: 寻址方式 立即寻址 直接寻址 寄存器寻址 寄存器间接寻址 变址寻址 相对寻址 位寻址 使用的变量 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位寻址区 可位寻址的特殊功能寄存器位 3. 访问特殊功能寄存器和外部数据存储器应采用哪种寻址方式? 解: 访问特殊功能寄存器,应采用直接寻址、位寻址方式。访问外部数据存储器,应采用寄存器间接寻址方式。在0~255B范围内,可用寄存器R0、R1间接寻址:

1

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码表达形式。

在计算机中,遇到十进制调整指令时,中间结果的修正是由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,@A+DPTR与MOVX A,@DPTR指令有何不同?

解: MOVC指令是针对程序存储器的数据传送指令,@A+DPTR基址变址寻址时,DPTR为常数且是表格的首地址,A为从表格首址到被访问字节地址的偏移量。

MOVX指令是针对外部RAM的数据传送指令,@DPTR寄存器间接寻址时,寻址范围在0~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

(31H)=0FFH DPTR=2410H SP=60H

12. 在8051的片内RAM中,已知(20H)=30H,(30H)=40H,(40H)=50H,(50H)=55H。分析下面各条指令,说明源操作数的寻址方式,分析按顺序执行各条指令后的结果。

MOV A,40H MOV R0,A MOV P1,,#80H MOV @R0,20H

MOV DPTR,#2000H MOV 40H,30H MOV R0,30H MOV D0H,R0 MOV 10H,#10H MOV 50H,R0 MOV A,@R0 2

MOV P2,P1

解: 指令 源操作数的寻址方式 执行指令后的结果

MOV A,40H 直接寻址 (A)=50H MOV R0,A 寄存器寻址 (R0)=50H MOV P1,#80H 立即寻址 (P1)=80H MOV @R0,20H 寄存器间接寻址 (50H)=30H 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)=40H MOV P2,P1 寄存器寻址 (P2)=80H

13.指出下列程序中每一条指令的划线操作数的寻址方式及其完成的操作。 MOV 3FH ,#40H ;3FH为直接寻址,指令把数40H送地址3FH中 MOV A ,3FH ;A为特殊寄存器寻址,把地址3FH中的内容送A中 MOV R1, #3FH ;3FH为立即寻址,指令把数3FH送寄存器R1中 MOV A, @R1 ;R1间接寻址, R1的内容3FH作地址中的内容送A中 MOV 3FH, R1 ;寄存器寻址, R1的内容送地址3FH中 14. 内部RAM的4FH单元,可用哪几种方式寻址?分别举例说明。 答: 1、直接寻址:MOV R1, 4FH

2、间接寻址:MOV R1,#4FH和MOV A, @R1

15. 特殊功能寄存器可用哪几种方式寻址?分别举例说明。

答:只有直接寻址: MOV A, 90H (MOV A, P1 ); 该指令只有机器码E590H。 16. 编程:将立即数55H送入内部RAM的30H单元。

(1)用立即寻址 (2)用寄存器寻址 (3)用寄存器间接寻址

答: (1)MOV 30H ,#55H (2)MOV R1 ,#55H MOV 30H , R1 (3)MOV R1,#30H MOV @R1 ,#55H 17. 用指令实现下述数据传送:

(1)内部RAM 30H单元的内容送内部RAM40H单元。 答: MOV 40H , 30H

(2)外部RAM 30H单元的内容送R0寄存器 答: MOV R1,#30H

MOVX A,@R1 MOV R0 ,A

(3)外部RAM 30H 单元的内容送内部RAM 30H单元 答: MOV R1,#30H

MOVX A,@R1 MOV 30H,A

(4)外部RAM 2000H单元的内容送内部RAM20H单元 答: MOV DPTR,#2000H

MOVX A,@DPTR MOV 20H,A

(5)外部ROM 2000H单元的内容送内部RAM20H单元 答: MOV DPTR,#2000H

MOV A,#00H

MOVC A,@A+DPTR MOV 20H,A

(6)外部ROM 2000H单元内容送外部RAM20H单元。 答: MOV DPTR,#2000H

MOV A,#00H

MOVC A,@A+DPTR

MOV R1,#20H MOVX @R1,A

18. 指出下列指令执行后目的操作数的结果,并写出每条指令的机器码。可不管上下句联系。其中(R0)=30H。

MOV 30H #52H ;(30H)=52H MOV A,#78H ;(A)=78H MOV A,#30H ;(A)=30H

MOV R0,#30H ;(R0)=30H MOV A,@R0 ;(A)=52H,把30H的内容送A中。

3

19.指出在下列各条指令中,45H代表什么寻址方式? (1)MOV A, #45H ;立即寻址 (2)MOV 45H,#46H ;立即寻址 (3)MOV 45H,46H ;直接寻址 (4)MOV C,45H ;位寻址

20. 分析下列指令顺序执行的结果,并写出每条指令的机器码。 (1)MOV A,#32H ;7432H (2)MOV DPTR,#2020H ;902020H (3)MOVX @DPTR,A ;F0H (4)MOV 20H, #45H ; 752045H (4)MOV R0 ,#20H ;7820H (5)MOVX A ,@R0 ;E2H (6)MOV 30H ,A ;F530H

结果:片外存储器RAM2020H内容为32H,(30H)=(A)=45H 23. 指出以下程序顺序执行后每一条指令的结果。填写在划线部分。 (1)MOV A,#25H ; (A)=25H (2)MOV 40H,#1AH ; (40H)=1AH (3)MOV R2,#33H ; (R2)= 33H (4)CLR C ; (C)= 0 (5)ADD A ,R2 ; (A)=58H (6)ADDC A,40H ; (A)=72H (7)MOV R0,#40H ; (R0)=40H (8)ADDC A,@R0 ; (A)=8CH

24. 在划线部分写出下列程序每一条指令执行后其目的操作数的结果。 (1)MOV A,#0F0H ; 0F0H (2) CPL A ; 0FH (3)ANL 30H,#00H ; 00H (4) ORL 30H, #BDH ; 0BDH (5)XRL 30H,A ; 0B2H

25. 若(A)=7AH,分别执行下列指令后,A的值是多少?填在划线部分。标志位CY和OV的值各是多少?不考虑上下指令之间的联系。 (1)ANL A,#0FFH ; 7AH (2)ORL A,#0FFH ; 0FFH (3)ANL A,#00H ; 00H (4)ORL A,#00H ; 7AH (5)XRL A,#0FFH ; 85H (6)XRL A,00H ; 7AH

26. 请判断下列各条指令的书写格式是否有错,如有错说明原因: 答 :打(×)为不存在指令. 1、mul r0r1 (×) 2、mov a,@r7 (×) 3、mov a,#3000h (×) 4、movc @a+dptr,a (×) 5、ljmp #1000h (×) 6、MOVX @R0,B (×)7、MOV A,30H (√)8、MOVX A,30H (×) 9、ADDC A,R7 (√) 10、 ANL #99H ,36H (×)

27.阅读下列程序段,写出每条指令执行后的结果,并说明此程序段完成什么功能? MOV R 1 ,#30H ;(R 1 )= 30H MOV A,#64H ;(A)= 64H ADD A,#47H ;(A)= 0ABH ,(CY)= 0 ,(AC)= 0 DA A ;(A)= 11 ,(CY)= 1 ,(AC)= 1 MOV @R 1 ,A ;(R 1 )= 30H ,(30H)= 11H

此程序段完成的功能: 程序采用十六进制运算指令完成十进制数运算 64+47=11,且进位为1。结果在30H单元。注意到DA A的功能。

28. 内部RAM的4FH单元,可用哪几种方式寻址?分别举例说明。

答: 1. 直接寻址:MOV R1, 4FH 2. 间接寻址:MOV R1,#4FH和MOV A, @R1 29. 编程:将立即数55H送入内部RAM的30H单元。

(1)用立即寻址 MOV 30H ,#55H(2)用寄存器寻址 MOV R1 ,#55H MOV 30H , R1(3)用寄存器间接寻址 MOV R1,#30H MOV @R1 ,#55H 30. 用指令实现下述数据传送:

(1)内部RAM 30H单元的内容送内部RAM40H单元。 答: MOV 40H , 30H (2)外部RAM 30H单元的内容送R0寄存器 答: MOV R1,#30H MOVX A,@R1 MOV R0 ,A (3)外部RAM 30H 单元的内容送内部RAM30H单元 4

搜索更多关于: 单片机指令系统复习 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

一. 填空题 1. 指出以下程序顺序执行后每一条指令的结果。填写在划线部分。 (1)MOV A,#25H ; (A)=25H (2)MOV 40H,#1AH ; (40H)=1AH (3)MOV R2,#33H ; (R2)= 33H (4)CLR C ; (C)= 0 (5)ADD A ,R2 ; (A)=58H (6)ADDC A,40H ; (A)=72H (7)MOV RO,#40H ; (R0)=40H (8)ADDC A,@RO ; (A)=8CH 2. 在划线部分写出下列程序每一条指令执行后其目的操作数的结果。 (1)MOV A,#OFOH ; 0F0H (2) CPL A ; 0FH (3)ANL 30H,#00H ; 00H

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com