ImageVerifierCode 换一换
格式:DOCX , 页数:23 ,大小:31.09KB ,
资源ID:3979942      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3979942.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(单片机指令系统复习.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

单片机指令系统复习.docx

1、单片机指令系统复习一. 填空题 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

2、 ; 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条

3、指令组成。如果按字节数分类,有49条单字节指令46条双字节指令和16条三字节指令,以单字节指令为主;如果按照指令执行时间分类,有64条单周期指令、45条双周期指令和条四周期指令,以单周期指令为主。8051的指令系统具有以下特点:(1)存储效率高、执行速度快,可以进行直接地址到直接地址的数据传送,能把一个并行I/O口中的内容传送到内部RAM单元中而不必经过累加器A或工作寄存器Rn。这样可以大大提高传送速度和缓解累加器A的瓶颈效应。(2)用变址寻址方式访问程序存储器中的表格,将程序存储器单元中的固定常数或表格字节内容传送到累加器A中。这为编成翻译算法提供了方便。(3)在算术运算指令中设有乘法和除法

4、指令(4)指令系统中一些对I/O口进行操作的指令具有“读修改写”的功能。这一功能指:在执行读锁存器的指令时,CPU首先完成将锁存器的值通过缓冲器BUF2度入内部,进行修改、改变,然后重新写到锁存器中去。这种类型指令包含所有的逻辑操作和位操作指令。(5)8051单片机内部有一个布尔处理器,对为地址空间具有丰富的位操作指令。布尔操作类指令有17条,包括布尔传送指令、布尔状态控制指令、布尔逻辑操作指令、布尔条件转移指令。2. 8051单片机指令系统按功能可分为几类?具有几种寻址方式?它们的寻址范围如何?解:MCS-51单片机指令系统按功能可分为5类: (1)数据传送指令2)算术运算指令3)逻辑运算和

5、移位指令4)控制转移指令5)位操作指令 MCS-51单片机的指令系统提供了七种寻址方式,其对应的寻址范围如下表:寻址方式使用的变量寻址范围立即寻址程序存储器直接寻址内部RAM低128个字节;特殊功能寄存器SFR寄存器寻址R0R7;A、B、DPTR、C寄存器间接寻址R0、R1、SP内部RAM、堆栈指针SPR0、R1、DPTR外部RAM变址寻址A+PC、A+DPTR程序存储器相对寻址PC+偏移量程序存储器位寻址内部RAM低128B位寻址区可位寻址的特殊功能寄存器位3. 访问特殊功能寄存器和外部数据存储器应采用哪种寻址方式?解: 访问特殊功能寄存器,应采用直接寻址、位寻址方式。访问外部数据存储器,应

6、采用寄存器间接寻址方式。在0255B范围内,可用寄存器R0、R1间接寻址:MOVX A,R0 或 MOVX A,R1 MOVX R0,A 或 MOVX R1,A在064KB范围内,可用16位寄存器DPTR间接寻址MOVX A,DPTR MOVX DPTR,A4. “DA A”指令的作用是什么?怎样使用?解:这条指令是在进行BCD码加法运算时,跟在“ADD”和“ADDC”指令之后,用来对BCD码的加法运算结果自动进行修正的,使其仍为BCD码表达形式。在计算机中,遇到十进制调整指令时,中间结果的修正是由ALU硬件中的十进制修正电路自动进行的。用户不必考虑何时该加“6”,使用时只需在上述加法指令后面

7、紧跟一条“DA A”指令即可。5. 片内RAM 20H2FH单元中的128个位地址与直接地址00H7FH形式完全相同,如何在指令中区分出位寻址操作和直接寻址操作?解: 虽然内部RAM位寻址区的位地址范围00H7FH与低128个单元的单元地址范围00H7FH形式完全相同,但是在应用中可以通过指令的类型区分单元地址和位地址。位寻址的操作只适用于下列位指令,而直接寻址操作对这些指令是无效的。MOV C,bit MOV bit,C CLR bit SETB bit CPL bit ANL C,bit ANLC,/bit JB bit,rel JNB bit,rel6. 8051单片机指令系统中有长跳转

8、LJMP,长调用LCALL指令,为何还设置了绝对跳转AJMP,绝对调用ACALL指令?在实际使用是应怎样考虑?解: 在实际应用中,可从寻址范围和指令长度两个方面来选择长跳转指令LJMP和短跳转指令AJMP、长调用指令LCALL和短调用指令ACALL。长跳转LJMP在64KB范围内转移,而短跳转AJMP只能在2KB空间转移。长调用LCALL调用位于64KB程序空间的子程序,而短调用ACALL调用位于2KB程序空间范围的子程序。AJMP、ACALL指令代码长度为个字节;LJMP、LCALL指令代码长度为个字节。7. SJMP,AJMP和LJMP指令在功能上有何不同?解: 指令的转移范围不同。SJM

9、P是256B范围内的相对转移指令,AJMP是2KB范围内的无条件短跳转指令,LJMP是64KB范围内的无条件长跳转指令。8. MOVC A,A+DPTR与MOVX A,DPTR指令有何不同?解: MOVC指令是针对程序存储器的数据传送指令,A+DPTR基址变址寻址时,DPTR为常数且是表格的首地址,A为从表格首址到被访问字节地址的偏移量。MOVX指令是针对外部RAM的数据传送指令,DPTR寄存器间接寻址时,寻址范围在064KB。9. 在“MOVC A,A+DPTR”和“MOVC A,A+PC”中,分别使用了DPTR和PC作基址,请问这两个基址代表什么地址?使用中有何不同?解: 使用A+DPTR

10、基址变址寻址时,DPTR为常数且是表格的首地址,A为从表格首址到被访问字节地址的偏移量。使用A+PC基址变址寻址时,PC仍是下条指令首地址,而A则是从下条指令首地址到常数表格中的被访问字节的偏移量。10. 设片内RAM中的(40H)=50H,写出执行下列程序段后寄存器A和R0,以及片内RAM中50H和51H单元的内容为何值?MOV A,40HMOV R0,AMOV A,#00MOV R0,AMOV A,#30HMOV 51H,AMOV 52H,#70H解:结果为:(A)30H (R0)=50H (50H)00H (51H)30H11. 设堆栈指针(SP)=60H,片内RAM中的(30H)=24

11、H,(31H)=10H。执行下列程序段后,61H,62H,30H,31H,DPTR及SP中的内容将有何变化?解:结果为: (61H)=24H (62H)=10H (30H)=00H (31H)=0FFH DPTR=2410HSP=60H12. 在8051的片内RAM中,已知(20H)=30H,(30H)=40H,(40H)=50H,(50H)=55H。分析下面各条指令,说明源操作数的寻址方式,分析按顺序执行各条指令后的结果。MOV A,40HMOV R0,AMOV P1,,#80HMOV R0,20HMOV DPTR,#2000H MOV 40H,30H MOV R0,30H MOV D0H,

12、R0 MOV 10H,#10HMOV 50H,R0MOV A,R0MOV P2,P1解: 指令 源操作数的寻址方式 执行指令后的结果MOV A,40H 直接寻址 (A)=50HMOV R0,A 寄存器寻址 (R0)=50HMOV P1,#80H 立即寻址 (P1)=80HMOV R0,20H 寄存器间接寻址 (50H)=30HMOV DPTR,#2000H 立即寻址 (DPTR)=2000HMOV 40H,30H 直接寻址 (40H)=40HMOV R0,30H 直接寻址 (R0)=40HMOV D0H,R0 直接寻址 (D0H)=40HMOV 10H,#10H 立即寻址 (10H)=10HM

13、OV A,R0 寄存器间接寻址 (A)=40HMOV 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单元,可用哪几种方式寻址?分别举例说明。

14、答: 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单元的内容

15、送内部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+DPT

16、R MOV 20H,A (6)外部ROM 2000H单元内容送外部RAM20H单元。答: MOV DPTR,#2000H MOV A,#00H MOVC A,A+DPTR MOV R1,#20H MOVX R1,A18. 指出下列指令执行后目的操作数的结果,并写出每条指令的机器码。可不管上下句联系。其中(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中。 19.指出在下列各条指令中,45H代表什么寻

17、址方式? (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,(

18、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)8CH24. 在划线部分写出下列程序每一条指令执行后其目的操作数的结果。 (1)MOV A,#0F0H ; 0F0H (2) CPL A ; 0F

19、H (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 ; 7AH26. 请判断下列各条指令的书写格式是否有错,如有错说明原因:答 :打()为不存在指令.

20、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)= 1

21、1 ,(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)用

22、寄存器间接寻址 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单元 答: MOV R1,#30H MOVX A,R1 MOV 30H,A (4)外部RAM 2000H单元的内容送内部RAM20H单元 答: MOV DPTR,#2000H MOVX A,DPTR MOV 20H,A (5)外部RO

23、M 2000H单元的内容送内部RAM20H单元 答: MOV DPTR,#2000H MOV A,#00H MOVC A,A+DPTR MOV 20H,(6)外部ROM 2000H单元内容送外部RAM20H单元。 答: MOV DPTR,#2000H MOV A,#00H MOVC A,A+DPTR MOV R1,#20H MOVX R1,A 三. 编程题 1.试编程实现内部RAM25H单元与外部RAM5500H单元的数据交换。 MOV DPTR,#5500H MOVX A,DPTR XCH A,25H MOVX DPTR,A 2.试编程实现外部RAM2040H单元的内容与3040H单元互换。

24、 MOV DPTR,#2040H MOVX A,DPTR MOV 30H, A MOV DPTR,#3040H MOVX A,DPTR XCH A,30H MOVX DPTR,A MOV DPTR,#2040H MOV A,30H MOVX DPTR,A3. 试编程实现两个无符号16位数的减法。被减数和减数分别存放在DATA1和DATA2为首址的内部RAM中,低位在低地址单元,高位在后,差存于R3(低8位)和R4(高8位)中 .CLR C MOV R0,#DATA1 MOV A,R0 MOV R1,#DATA2 SUBB A,R1 MOV R3,A INC R0 INC R1 MOV A,R0

25、 SUBB A,R1 MOV R4,A 4若外部RAM的(2000H)=X,(2001H)=Y,编程实现Z=3X+2Y,结果存入内部RAM 20H单元(设Z255) MOV DPTR,#2000H MOVX A,DPTR MOV B,#03HMUL AB MOV B,A ;存3X MOV DPTR,#2001H MOVX A,DPTR MOV 20H,A ADD A,20H ;计算2Y ADD A,B ;3X+2Y MOV 20H,A 5. 完成以下的数据传送过程。解:(1)R1的内容传送到R0 ; MOV A, R1 MOV R0, A(2)片外RAM 20H单元内容送R0 ; MOV DP

26、TR, #0020H MOVX A, DPTR 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, DPTR MOV 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, #00

27、H MOV DPTR, #2000H MOVC A,A+DPTR MOV 20H, A(7)ROM 2000H单元的内容送片外RAM 20H单元。 MOV A, #00H MOV DPTR, #2000H MOVC A,A+DPTR MOV DPTR, #0020H MOVX DPTR,A6. 设有两个4位BCD码,分别存放在片内RAM的23H,22H单元和33H,32H单元中,求它们的和,并送入43H,42H单元中去。(以上均为低位字节,高位在高字节)。 ORG 0000H LJMP START ORG 0030H START: MOV A,22H ADD A,32H DA A MOV 42

28、H,A MOV A,23H ADDC A,33H DA A MOV 43H,A SJMP $ END 7. 编程将片内RAM的40H60H单元中内容送到片外RAM以3000H开始的单元中。ORG 0000H LJMP MAIN ORG 0030HMAIN: MOV R7,#20H MOV R1,#40H MOV DPTR,#3000HLOOP:MOV A,R1 MOVX DPTR,A INC R1 INC DPTR DJNZ R7,LOOP SJMP $ END8. 编程计算片内RAM区30H37H的8个单元中数的算术平均值,结果存在3AH单元中。 ORG 0000H LJMP MAIN OR

29、G 0030HMAIN: MOV R0,#30H ;数据首地址 MOV R1,#00H ;和高位 MOV R2,#00H ; 和低位 MOV R3,#07H ;循环次数LP2: MOV A,R0 ADD A,R2 MOV R2,A JNC LP1 INC R1LP1: INC R0 DJNZ R3,LP2 MOV R3,#03HLP3: CLR C MOV A,R1 RRC A ; 和高位除2 MOV R1,A MOV A,R2 ;和低高位除2 RRC A MOV R2,A DJNZ R3,LP3 MOV 3AH,R2 SJMP $ END9. 设有100个有符号数,连续存放在片外RAM以2200H为首地址的存储区中,试片成统计其中正数|、负数、零的个数。 ORG 0000H LJMP MAIN ORG 0030HMAIN: MOV R2,#100 MOV R3,#00H ;零的个数 MOV R4,#00H ;正数的个数 MOV R5,#00H ;负数的个数 MOV DPTR,#2000HLOOP: MOVX A,DPTR CJNE A,#00H,NET1 INC R3 INC DPTR DJNZ R2,LOOP SJMP NET3NE

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1