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

下载本文档

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

文档简介

...wd......wd......wd...第3章习题参考答案〔略〕〔略〕〔略〕指出以下指令源操作数的寻址方式和功能。MOV A,#40H ;立即寻址。 40HAMOV A,40H ;直接寻址。 〔40H〕AMOVA,@R1 ;存放器间址。 〔R1〕AMOVA,R3 ;存放器寻址。 R3AMOVCA,@A+PC;变址寻址。 〔A+PC〕ASJMPLOOP ;相对寻址。 程序转到标号为LOOP的语句处执行。内部RAM的00H单元的寻址方式:直接寻址,MOVA,00H因为00H是工作存放器区,所以还可以存放器寻址。MOVA,R0特殊功能存放器中的操作数的寻址方式:直接寻址,MOVA,SP局部SFR可以位寻址,MOVC,ACC.7变址寻址和相对寻址中的地址偏移量异同:变址寻址的偏移量是一个00H~FFH范围内的无符号数;相对寻址偏移量是一个带符号的8位二进制补码,范围为-128~+127。变址寻址的偏移量放在累加器A中,相对寻址的偏移量直接在指令中给出。都是将基地址与地址偏移量相加,形成操作数地址。写出以下指令的机器码,指出指令中50H和66H各代表什么指令50H的含义 机器码MOV A,#50H 源操作数 7450HMOV A,50H 源操作数的地址 E550HMOV 50H,#20H 目的操作数的地址 755020H

MOV C,50H 位地址 A250HMOV 50H,20H 目的操作数的地址 852050H指令66H的含义 机器码MOV @R0,#66H 源操作数 7666HMOV R6,#66H 源操作数 7E66HMOV 66H,#45H 目的操作数的地址 756645H

MOV 66H,C 位地址 9266HMOV 66H,R1 目的操作数的地址 8966H写出以下指令的机器码,指出以下程序执行后的结果。MOVA,#60H 机器码:7460HMOVR0,#40H 7840H

MOV@R0,A F6H

MOV41H,R0 8841HXCHA,R0 C8H结果:A=40H,R0=60H,〔40H〕=60H,〔41H〕=40HMOVDPTR,#2003H 机器码:902003H

MOVA,#18H 7418HMOV20H,#38H 752038H

MOVR0,#20H 7820H

XCHA,@R0 C8H

结果:A=38H,R0=20H,〔20H〕=18H写出能完成以下数据传送的指令。R1中的内容传送到R0MOVR0,01H或:MOVA,R1

MOVR0,A内部RAM20H单元中的内容送到30HMOV30H,20H外部RAM20H单元中的内容送到内部RAM20H单元MOVR0,#20H

MOVP2,#00H ;外部RAM区16位地址的高8位清0MOVXA,@R0MOV20H,A外部RAM2000H单元中的内容送到内部RAM20H单元MOVDPTR,#2000HMOVXA,@DPTRMOV20H,A外部ROM2000H单元中的内容送到内部RAM20H单元MOVDPTR,#2000HMOVA,#00H

MOVCA,@A+DPTR

MOV20H,A外部ROM2000H单元中的内容送到外部RAM3000H单元MOVDPTR,#2000HMOVA,#00H

MOVCA,@A+DPTR

MOVDPTR,#3000H

MOVX@DPTR,A70H栈底71HX72HY73HZ60H栈底61H60H栈底61HZ62HY63HXSPSP〔20H〕=X,〔21H〕=Y,〔22H〕=Z。请用图示说明以下程序执行以后堆栈中的内容是什么MOVSP,#70HPUSH20H

PUSH21H

PUSH22HMOVSP,#60HPUSH22H

PUSH21H

PUSH20H70H栈底70H栈底71HX72HY73HZSP数据出栈后SP的位置POP20H ;〔20H〕=Z

POP21H ;〔21H〕=Y

POP22H ;〔22H〕=XPOP22H ;〔22H〕=Z

POP21H ;〔21H〕=Y

POP20H ;〔20H〕=X试问如下程序执行后累加器A和PSW中的内容是什么MOVA,#0FEH

ADDA,#0FEH ;A=FCH,PSW=C0HMOVA,#92HADDA,#0A4H ;A=36H,PSW=84H指令结果如下:A=20H,Cy=1,〔30H〕=A6HA=D5H,Cy=1A=49H,Cy=0,R0=2FHA=4AH,Cy=0,〔30H〕=A4H内部RAM的M1、M2和M3单元中有无符号数X1、X2和X3。编程令其相加,并把和存入R0和R1〔R0中为高8位〕中。参考程序如下:ORG1000HMOVR0,#M1MOVR1,#M2MOVA,@R0ADDA,@R1

MOVB,A

MOVA,#00HADDCA,#00H

MOVR1,AMOVA,B

MOVR0,#M3

ADDA,@R0

MOVR0,A

MOVA,#00H

ADDCA,R1MOVR1,ASJMP$END参考程序:ORG1000HMOVR0,#M1MOVA,@R0 ;取被乘数低8位MOVR1,#M2MOVB,@R1 ;取乘数MULAB ;被乘数低8位与乘数相乘MOVR4,A ;保存低8位MOVR3,BINCR0MOVA,@R0;取被乘数高8位MOVB,@R1MULABADDA,R3MOVR3,AMOVA,BADDCA,#00H ;加上进位MOVR2,A ;保存高8位SJMP$END参考程序:ORG1000HMOVR0,#20HMOVA,@R0 ;取被除数INCR0MOVB,@R0 ;取除数DIVAB ;A/B=A…BMOVR0,#20HMOVP2,#00HMOVX@R0,A ;保存商INCR0MOVX@R0,B ;保存余数SJMP$END参考程序:ORG1000HCLRCMOVA,#5DHSUBBA,#B4HMOVR0,#30HMOV@R0,A ;保存商的低8位MOVA,#6FHSUBBA,#13HINCR0MOV@R0,A;保存商的高8位SJMP$END参考答案:A=E1H,〔30H〕=ABHA=AAHA=10HA=F0H参考程序:ANL20H,3FHORL20H,C0HXRL20H,C0HXRL20H,FFH或:MOVA,20H CPLA MOV20H,A参考程序:〔用移位指令,两操作数为8位无符号数,操作结果<255〕1〕ORG1000H

MOVDPTR,#2000H

MOVXA,@DPTR

MOVR0,A

CLRC

RLCA

ADDA,R0

MOVR0,AINCDPTRMOVXA,@DPTR

CLRC

RLCA

ADDA,R0

MOV20H,A

SJMP$

END2〕ORG1000H

MOVDPTR,#2000H

MOVXA,@DPTR

MOVR0,A

CLRC

RLCA

CLRC

RLCA

ADDA,R0

MOVR0,AINCDPTR

MOVXA,@DPTR

CLRC

RLCA

XCHA,R0

CLRC

SUBBA,R0

MOV20H,A

SJMP$

END设A为无符号数,当A满足以下条件时转到LABEL的参考程序段:A≥20

CJNEA,#14H,COMP ;假设A≠20,则形成Cy并转到COMPSJMPLABEL ;假设A=20,则转到LABELCOMP:JNCLABEL ;假设Cy=0,表示没有进位,则A≥20,转到LABELSJMP$A<20CJNEA,#14H,COMP ;假设A≠20,则形成Cy并转到COMPSJMPDONE ;假设A=20,则停机COMP:JCLABEL ;假设Cy=0,表示没有进位,则A<20,转到LABELDONE:SJMP$A≤10CJNEA,#0AH,COMP ;假设A≠10,则形成Cy并转到COMPSJMPLABEL ;假设A=10,则转到LABELCOMP:JCLABEL ;假设A≠10则判断Cy,假设小于则转到LABEL

SJMP$A>10CJNEA,#0AH,COMP ;假设A≠10,则形成Cy并转到COMPSJMPDONE ;假设A=10,则停机COMP:JCDONE ;假设Cy=1,表示A<10,则停机SJMPLABEL ;假设A>10,转到LABELDONE:SJMP$70H栈底71H47H72H23HSP参考程序:ORG1000H

MOVDPTR,#DATA1 ;源操作区的起始地址

MOVR0,#30H ;目的操作区的起始地址

MOVR2,#14H ;数据块长度

NEXT:MOVXA,@DPTR

MOV@R0,A ;从源操作取操作数

INCDPTR

INCR0

DJNZR2,NEXT ;判断数据块是否传送完毕

SJMP$

ENDSP执行完调用指令后,堆栈指针SP=72H,堆栈中的内容为2345H+02H=2347H,如以以下列图:

调用的子程序在:3456H执行RET指令后,SP=70H,PC=2347H71H、72H中的内容不变,仍为47H和23H,但不属于堆栈区。假设SUPER=4060H,则程序2、3都是正确的。程序3更好一点。程序1是绝对调用指令,只能在2KB区域内寻址。假设SUPER=2060H,程序1最好,因为绝对调用指令是在页内寻址,比长调用指令更有效。参考程序:ORG1000H

MOVR0,#20H ;目的操作区的起始地址

MOVR2,#14H ;数据块长度

MOVDPTR,#2000H ;源操作区的起始地址

LOOP:MOVXA,@DPTR INCDPTR

JBACC.7,NEX

温馨提示

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

最新文档

评论

0/150

提交评论