单片机第3章习题参考答案_第1页
单片机第3章习题参考答案_第2页
单片机第3章习题参考答案_第3页
单片机第3章习题参考答案_第4页
单片机第3章习题参考答案_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

1、3.13.2略)略)3.33.43.5第 3 章习题参考答案1)MOV A,# 40H ;立即寻址。 40HA2)MOV A , 40H;直接寻址。( 40H) A3)MOV A , R1 ;寄存器间址。( R1) A4)MOV A , R3;寄存器寻址。R3 A5)MOVC A ,A+PC;变址寻址。( A+PC) A6)SJMP LOOP;相对寻址。程序转到标号为内部 RAM 的 00H 单元的寻址方式:LOOP 的语句处执行。1) 直接寻址, MOV A , 00H2) 因为 00H 是工作寄存器区,所以还可以寄存器寻址。 MOV A , R0 特殊功能寄存器中的操作数的寻址方式:(略)

2、 指出下列指令源操作数的寻址方式和功能。1) 直接寻址, MOV A , SP2) 部分 SFR 可以位寻址, MOV C , ACC.73.61)变址寻址和相对寻址中的地址偏移量异同: 变址寻址的偏移量是一个 00H FFH 范围内的无符号数; 相对寻址偏移量是一个带符号的 8位二进制补码, 范围为 -128 +127 。3.73.82)3)指令50H 的含义机器码MOVA,# 50H源操作数7450HMOVA,50H源操作数的地址E550HMOV50H , # 20H目的操作数的地址755020HMOVC, 50H位地址A250HMOV50H,20H目的操作数的地址852050H指令66H

3、 的含义机器码MOVR0 , # 66H源操作数7666HMOVR6, #66H源操作数7E66HMOV66H , # 45H目的操作数的地址756645HMOV66H,C位地址9266HMOV66H,R1目的操作数的地址8966H50H 和 66H 各代表什么?1)2)写出下列指令的机器码,指出下列程序执行后的结果。1) MOV A ,# 60H 机器码:变址寻址的偏移量放在累加器 A 中,相对寻址的偏移量直接在指令中给出。 都是将基地址与地址偏移量相加,形成操作数地址。写出下列指令的机器码,指出指令中7460HMOV R0 ,# 40HMOV R0 ,AMOV 41H ,R07840HF6

4、 HXCHA,R0C8 H结果:A = 40H , R0 = 60H,(40H)= 60H,( 41H)= 40H2) MOVDPTR, # 2003H机器码: 902003HMOVA , # 18H7418HMOV20H ,# 38H752038H8841H3.93.10MOVXCH结果:R0,#20HA,R0A = 38H,R0 = 20H,写出能完成下列数据传送的指令。1)2)7820HC8HR1中的内容传送到R0MOV R0,01H内部RAM 20HMOV 30H, 外部RAM 20H(20H)=18H1或:MOVMOVA,R1R0,单元中的内容送到30H20H单元中的内容送到内部MO

5、V R0,# 20HMOVP2,# 00HMOVXA,R0MOV20H,A4)外部RAM 2000H3)单元中的内容送到内部MOVDPTR,;外部RAM区#2000HMOVXMOV5)6)RAM 20H单元16位地址的高8位清0RAM 20H单元A, DPTR20H, A外部ROM 2000H单元中的内容送到内部RAM 20H单元MOVMOVMOVCMOVDPTR,# 2000HA,#00HA, A+DPTR20H,A外部ROM 2000H单元中的内容送到外部RAM 3000H 单元MOVMOVMOVCMOVMOVXDPTR,# 2000HA,#00HA, A+DPTRDPTR,# 3000H

6、MOVDPTR,# 2050HMOVXA, DPTRMOVR0,AMOVDPTR,# 2060HMOVXA, DPTRXCHA, R0MOVXDPTR,AMOVDPTR,# 2050HMOVA, R0MOVXDPTR,A已知(20H)= X,(21H)= Y,( 22H)= Z。请用图示说明下列程序执行以后堆栈中的内容是什么?60HMOVSP, # 70H61HP USH20H62HP USH21H63HP USH22H3.11DPTR, A试编出把外部RAM的2050H单元中的内容与2060H单元中的内容相交换的程序70H71H72H73H-W栈底XYZ噸SPSP1) MOVSP, # 60

7、HP USH22HP USH21HP USH20H3.123.133.151)POP20H ;( 20H)= ZPOP21H ;( 21H)= YPOP22H ;( 22H)=X2)POP22H ;( 22H)=ZPOP21H ;( 21H)= YPOP20H ;( 20H)= X么?1) MOV A,# 0FEH;A = FCH,PSW = C0HADD A,# 0FEH2)MOV A,# 92HADD A,# 0A4H;A = 36H,PSW = 84H指令结果如下:1)A = 20H,Cy = 1,( 30H)= A6H2)A = D5H,Cy = 13)A = 49H,Cy = 0,R

8、0 = 2FH4)A = 4AH,Cy = 0,( 30H)= A4H试问如下程序执行后累加器 A和PSW中的内容是什3.14M1、M2和M3单元中有无符号数 参考程序如下:已知内部RAM的 中为高8位)中。70H71H72H73HX1、X2 和 X3。栈底4XYZ数据出栈后SP的位置SP编程令其相加,并把和存入R0和R1( R0已知SP = 73H,( 71H)= X,(72H)= Y,(73H)= Z。试问执行下列程序后 20H,21H和22H单元中的内容 是什么?并用图示说明堆栈指针SP的指向和堆栈中数据的变化。ORG 1000HMOVA,BMOV R0,# M1MOVR0, # M3M

9、OV R1,# M2ADDA, R0MOV A, R0MOVR0, AADD A, R1MOVA, #00HMOV B, AADDCA, R1MOV A, # 00HMOVR1, AADDCA, # 00HSJMP$MOVR1, AEND参考程序:ORG 1000HMOVA,R0;MOV R0,# M1MOVB, R1MOV A,R0;取被乘数低8位MULABMOV R1,# M2ADDA,R3MOV B,R1;取乘数MOVR3, AMUL AB ;被乘数低8位与乘数相乘MOVA, BMOV R4, A ;保存低8位ADDCA,#00HMOV R3, BMOVR2, AINCR0SJMP$3.

10、16END参考程序:取被乘数高8位;加上进位;保存高8位3.17MOVR0,# 20HMOVP2, # 00HMOVA,R0 ;取被除数MOVXR0, A ;保存商INCR0INCR0MOVB,R0 ;取除数MOVXR0, B ;保存余数DIVAB;A / B = A BSJMP$MOVR0,# 20HEND参考程序:ORG1000HMOVA, # 6FHCLRCSUBBA, # 13HMOVA,# 5DHINCR0SUBBA,# B4HMOVR0, A;保存商的高8位MOVR0,# 30HSJMP$MOVR0, A ;保存商的低 8 位ENDORG1000H3.18参考答案:3.193.20

11、1)2)3)4)A = E1H ,A = AAHA = 10HA = F0H30H)= ABHANL20H,3FHORL20H,C0HXRL20H,C0HXRL20H,FFH或:MOVA, 2参考程序:1)2)3)4)CPL AMOV 20H,(用移位指令,两操作数为8 位无符号数,操作结果 20CJNESJMPA,# 14H,LABELCOMP: JNC LABELA 20SJMPCJNESJMPA,#14H,DONECOMP: JC LABELDONE: SJMP $A 20,转到LABELCOMP ;若A工20,则形成Cy并转至U COMP;若A = 20,则停机;若Cy = 0,表示没

12、有进位,则 A 10SJMPCJNESJMPA ,# 0AH , COMPDONE;若A工10,则形成Cy并转到COMP;若A = 10,则转到LABEL;若A工10则判断Cy,若小于则转到 LABEL;若A工10,;若 A = 10 ,;若 Cy = 1 ,则形成Cy并转到COMP则停机表示A 10,转到 LABEL参考程序:ORG1000HMOVDP TR, # DATA1;源操作区的起始地址栈底MOVR0, #30H;目的操作区的起始地址70HMOVR2, #14H;数据块长度71H47H72H23HNEXT:MOVXA, DPTRMOVR0, A;从源操作取操作数INCDPTR3.23

13、;判断数据块是否传送结束INC R0COMP: JC DONEDJNZ R2, NEXTSJMP $END执行完调用指令后, 堆栈中的内容为 调用的子程序在:执行RET指令后,SP = 72H,堆栈指针2345H+02H = 2347H,如图所示:3456HSP = 70H , PC = 2347H71H、72H中的内容不变,仍为 47H和23H,但不属于堆栈区。若SUPER = 4060H,则程序2、3都是正确的。程序 3更好一点。程序1是绝对调用指令,只能在 2KB区域内寻址。若SUPER = 2060H,程序1最好,因为绝对调用指令是在页内寻址,比长调用指令更有效。参考程序:ORG1000HMOVR0, #20HMOVR2, #14H;目的操作区的起始地址;数据块长度SPMOV DPTR, # 2000HLOOP: MOVX A, DPTRINCDPTRJBACC.7

温馨提示

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

评论

0/150

提交评论