单片机第二版第三章习题杨加国编_第1页
单片机第二版第三章习题杨加国编_第2页
单片机第二版第三章习题杨加国编_第3页
单片机第二版第三章习题杨加国编_第4页
单片机第二版第三章习题杨加国编_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、习题三1. 在MCS-51单片机中,寻址方式有几种?其中对片RAM可以用哪几种寻址方式?对 片外RAM可以用哪几种寻址方式?答:寻址方式可分为数的寻址和指令寻址,数的寻址有:常数寻址(立即寻址)、寄 存器数寻址(寄存器寻址)、存储器数寻址(直接寻址方式、寄存器间接寻址方式、变址 寻址方式)和位寻址,指令的寻址有绝对寻址和相对寻址。片RAM寻址有:寄存器寻址、 直接寻址方式和寄存器间接寻址方式。片外RAM寻址有:寄存器间接寻址方式。2. 在对片外RAM单元寻址中,用Ri间接寻址与用DPTR间接寻址有什么区别?答:片外数据存储器寻址中,用Ri间接寻址只能访问低端的256字节单元,而用DPTR 作指

2、针间接访问可访问整个64K字节。3. 在位处理中,位地址的表示方式有哪几种?答:1.直接位地址(OOHOFFH)。例如:20H2. 字节地址带位号。例如:20H.3表示20H单元的3位。3. 特殊功能寄存器名带位号。例如:P0.1表示P0 口的1位。4. 位符号地址。例如:TRO是定时/计数器TO的启动位。4. 写出完成下列操作的指令。(1) R0的容送到R1中。MOV A, ROMOV Rl, A(2) 片RAM的20H单元容送到片RAM的40H单元中。MOV 40H, 20H(3) 片RAM的30H单元容送到片外RAM的50H单元中。MOV A, 30HMOV RO, #50HMOVX R

3、O, A(4) 片RAM的50H单元容送到片外RAM的3000H单元中。MOV A, 50HMOV DPTR, #3000HMOVX DPTR, A(5) 片外RAM的2000H单元容送到片外RAM的20H单元中。MOV DPTR, #2000HMOVX A, DPTRMOV 20H, A(6) 片外RAM的1000H单元容送到片外RAM的4000H单元中。MOV DPTR, # 1000HMOVX A, DPTRMOV DPTR, #4000HMOV DPTR, A(7) ROM的1000H单元容送到片RAM的50H单元中。MOV A, #0MOV DPTR, #1000HMOVC A, A

4、+DPTRMOV 20H, A(8) ROM的1000H单元容送到片外RAM的1000H单元中。MOV A, #0MOV DPTR, # 1000HMOVC A, A+DPTRMOVX DPTR, A5. 区分下列指令有什么不同?(1) MOV A, 20H 和 MOV A, #20H答:前者源操作数是直接寻址,后者源操作数立即寻址。(2) MOV A, R1 和 MOVX A, R1答:前者源操作数是访问片数据存储器,后者源操作数访问片外数据存储器低256字 节。(3) MOV A, R1 和 MOV A, R1答:前者源操作数是寄存器寻址,后者源操作数寄存器间接寻址。(4) MOVX A,

5、 R1 和 MOVX A, DPTR答:前者源操作数是访问片外数据存储器低256字节,后者源操作数访问片外数据存 储器整个64K字节。(5) MOVX A, DPTR 和 MOVC A, A+DPTR答:前者源操作数是访问片外数据存储器,后者源操作数访问程序数据存储器。6设片 RAM 的(20H) =40H,(40H) =10H,(10H) =50H, (Pl) =0CAHo 分MOVRO, #20HMOVA, RO;A=40HMOVRl, A;Rl=40HMOVA, Rl;A=10HMOVRO, Pl;(40H) =0CAHMOVP2, PlP2=0CAHMOV10H, A(10H) =10

6、HMOV20H, 10H(20H) =10H(20H)= 10H.(10H) =10H、(40H)析下列指令执行后片RAM的20H 40H、10H单元以及Pl. P2中的容。=0CAH、P2=0CAH 和 P1=OCAH结果:8巳知(A) =02H, (Rl) =7FH, (DPTR) =2FFCH,片 RAM (7FH) =70H,片 外RAM (2FFEH) =UH, ROM (2FFEH) =64H,试分别写出以下各条指令执行后目 标单元的容。(1) MOV A, R1 结果:累加器A等于70H(2) MOVX DPTR, A 结果:片外 RAM (2FFCH)单元等干 02H(3) M

7、OVC A, A+DPTR 结果:累加器A等于64H(4) XCHD A, R1 结果:累加器A等于OOH,片RAM (7FH)单元等干72H9巳知:(A) =78H, (Rl) =78H,(B) =04H, CY=1,片 RAM (78H) =ODDH,(80H) =6CH,试分别写出下列指令执行后目标单元的结果和相应标志位的值。(1) ADD A, Rl;累加器A等干55H, CY等干1(2) SUBB A, #77H;累加器A等于OOH, CY等于0(3) MUL AB;累加器A竽干EOH, B寄存器等于01H, CY等于1, OV等于0(4) DIV AB;累加器A等于1EH, B寄存

8、器等于OOH, CY、OV等于0(5) ANL 78H, #78H;片RAM (78H)单元等于58H(6) ORL A, #OFH;累加器A等于7FH(7) XRL 80H, A;片 RAM (80H)等干 14H10设(A) =83H, (RO) =17H,(17H) =34H,分析当执行完下面指令段后累加器A、RO、17H单元的容。ANL A, #17H;A=03HORL 17H, A;(17H) =37HXRL A, RO;A=34HCPL A;A=CBH结果:A=CBH,(RO) =17H,(17H) =37H11写出完成下列要求的指令。(1) 累加器A的低2位清零,其余位不变。AN

9、L A, # 111U100B(2) 累加器a的高2位直ar9 ,其余位不变。ORL A, #11000000B(3) 累加器的高4位取反,其余位不变。XRL A, #11110000B(4) 累加器第0位、2位、4位、6位取反,其余位不变。XRL A, #01010101B12.说明LJMP指令与AJMP指令的区别?答:LJMP指令后面提供的是16位目标地址,所以可以转移到64KB程序存储器的 任意位直,缺点是:执行时间长,字节数多。AJMP指令后带的是11位直接地址,执行时,先将程序指针PC的值加2 (该指 令长度为2字节),然后把指令中的11位地址addrl 1送给程序指针PC的低11位

10、,而 程序指针的高5位不变,只能在当前2K围转移。13设当前指令CJNE A, #12H, 10H的地址是OFFEH,若累加器A的值为10H, 则该指令执行后的PC值为多少?若累加器A的值为12H呢?答:指令执行后的PC值为10UH,若累加器A的值为12H,则指令执行后的PC 值为lOOlHo14用位处理指令实现P1.4=P1.0(Pl.l Pl.2)/P1.3的逻辑功能。程序:MOVc,Pl.lORLC,Pl.2ANLC,P1.0ORLC,/Pl.3MOVPl.4, C15下列程序段汇编后,从1000H单元开始的单元容是什么?ORG 1000HTAB: DB 12H, 34HDS 3DW 5

11、567H, 87H答:(1000H) =12H,(1001H) =34H,(1002H) =00H,(1003H) =00,(1004H) =00,(1005H) =67H, (1006H) =55H,(1007H) =87H,(1008H)=00H16.试编一段程序,将片RAM的20H、21H、22H单元的容依次存入片外RAM的20H、 21H、22H 中。程序:MOVR0, #20HMOVR2, #03HLOOP: MOV A, R0MOVXR0, AINCR0DJNZR2, LOOPSJMP$17编程实现将片外RAM的2000H-2030H单元的容,全部搬到片RAM的20H单元 开始位直

12、,并将源位直清零。程序:MOV RO, #20HMOV DPTR, #2000HMOV R2, #30HLOOP: MOVX A, DPTRMOV RO, AMOV A, #00MOVX DPTR, AINC DPTRINC R0DJNZ R2, LOOPSJMP $18. 编程将片外RAM的1000H单元开始的100个字节数据相加,结果放干R7R6中。程序:MOVDPTR, #1000HMOVR2,#100MOVR7,#00MOVR6,#00LOOP: MOVX A, DPTRADD A, R6MOV R6, AMOV A, R7ADDC A, #0MOV R7, AINC DPTRDJNZ

13、 R2, LOOPSJMP $19. 编程实现R4R3 R2,结果放于R7R6R5中。程序:ORG 0100HMUL1: MOV A, R2MOV B, R3MUL AB; R2 R3,结果的低字节直接存入积的R5MOV R5, A ;结果的高字节存入R6中暂存起来MOV R6, BMUL2: MOV A, R2MOV B, R4MUL AB; R2 R4,结果的低字节与R6相加后,再存入R6中ADD A, R6MOV R6, AMOV A, B ;结果的高字节加上进位位后存入R7中ADDC A, #00MOV R7, ASJMP $20. 编程实现把片RAM的20H单元的0位、1位,21H单

14、元的2位、3位,22H单元 的4位、5位,23H单元的6位、7位,按原位置关系拼装在一起放于R2中。程序:MOV C, 20H.0MOV A.0, CMOVC, 20H.1MOVA.l, CMOVC, 21H.2MOVA.2, CMOVC, 21H.3MOVA.3, CMOVC, 22H.4MOVA.4, CMOVC, 22H.5MOVA.5, CMOVC, 23H.6MOVA.6, CMOVC, 23H.7MOVA.7, CMOVR2, A21.用查表的方法实现一位十六进制数转换成ASCIIo程序:(设一位十六进制数放在R2中,轮换的ASCII也放于R2中)C16STASC: MOV DPTR, #TABMOVA, R2MOVCA, A+DPTRMOVR2, ARETT

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论