单片机第三章答案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

3.2指出下列每条指令的寻址方式和功能:

○1MOV A, #50H

该指令是立即数寻址方式,功能:A←立即数52H,就是操作数包含在指令字节中,跟在指令操作码后面字节内容就是操作数本身,把立即数52H送到累加器中。

○2MOV A, 50H

该指令是直接寻址方式,功能:A←50H,指令中直接给出该操作数所在的单元的地址,将50H 单元里的内容送到累加器中。

○3MOV A, @R0

该指令是寄存器间接寻址方式,功能:A←(R0),指令中给出的某一个寄存器的内容是操作数所在的存储单元地址,从该地址去取操作数,把R0单元的操作数送到累加器里。

○4MOV A, R7

该指令是寄存器寻址方式,功能:A←R7,指令中直接给出该寄存器的名称,将寄存器单元里的操作数送给累加器。

○5MOVC A, @A+PC

该指令是变址寻址方式,功能:操作数的地址是由一个基地址加一个偏移地址组成。该指令把基址寄存器PC的内容为基本地址,加上变址寄存器A的内容形成16位的地址,访问程序存储器中的数据表格。

○6SJMP LOOP

该指令是相对转移指令该指令的寻址方式为相对寻址方式,功能:PC ←PC+2,PC←PC+LOOP

3.3设内部RAM中的69H单元的内容为50H,写出当执行下列程序段后寄存器A﹑R0和内部RAM中50H﹑51H单元的内容为何值?

MOV A,69H ;A中的值为50H

MOV R0,A ;将A中的值送到R0中

MOV A,#00H ;将立即数00H送到A中

MOV @R0,A ;将A中的内容送到间接寻址的内部RAM中50H单元中MOV A,#35H ;将立即数35H送到A中

MOV 51H,A ;将A中的值送到51H单元中

MOV 52H,#80H ;将立即数80H送到52H单元中

可以知道:完成这段程序后,A中的值为:35H,R0:50H,内部RAM中50H:00H,51H:35H

3.6设堆栈指针SP中的内容为60H,内部RAM中的30H和31H单元的内容分别为24H和10H,执行下列程序段后,61H,62H,30H,31H,DPTR以及SP中内容将有何变化?

PUSH 30H ;SP←SP+1,(SP)←(30H),SP=61H,(61H)=24H

PUSH 31H ;SP←SP+1,(SP)←(31H),SP=62H,(62H)=10H

POP DPL ;DPL←(SP),SP←SP-1,(82H)=10H,SP=61H

POP DPH ;DPH←(SP),SP←SP-1,(83H)=24H,SP=60H

MOV 30H,#00H ;30H←00H

MOV 31H,#0FFH ;31H←0FFH

可以知道:完成这段程序后,61H中的内容为:24H,62H:10H,内部RAM中30H:00H,31H:0FFH,DPTR:2410H,SP:60H。

3.7用数据传送指令实现下列要求的数据传达:

○1R0的内容传送到R1中。

MOV A,R0

MOV R1,A

○2内部RAM 20H单元的内容传送到R0

MOV R0,20H

○3外部RAM 2030H 单元的内容传送到内部RAM 20H单元。

MOV DPTR,#2030H

MOVX A,@DPTR

MOV 20H,A

○4外部RAM 2030H 单元的内容传送到外部 RAM 2000H单元。

MOV DPTR,#2030H

MOV A,@DPTR

MOV DPTR,#2000H

MOVX @DPTR,A

○5外部RAM 1000H单元的内容传送到外部RAM 2000H单元。

MOV DPTR,#2000H

MOV R0,#00H

MOV P2,#10H

MOVX A,@R0

MOVX @DPTR,A

○6程序存储器ROM 2000H 单元的内容送到R1中。

MOV A,#01H

MOV DPTR,#1FFFH

MOVC A,@A+DPTR

MOV R1,A

○7 ROM 2000H 单元的内容传送到内部RAM 20H单元。

MOV A,#01H

MOV DPTR,#1FFFH

MOVC A,@A+DPIR

MOV 20H,A

○8ROM 2000H 单元的内容传送到外部 RAM 2000H 单元。

MOV A,#01H

MOV DPTR,#1FFFH

MOVC A,@A+DPTR

MOV DPTR,#2000H

MOVX @DPTR,A

3.11 试分析下列程序段,当程序执行后,位地址 00H,01H 中的内容将为何值?P1口的8条I/O线为何状态?

CLR C

MOV A,#66H

JC LOOP1

CPL C

SETB 01H

LOOOP1:ORL C,ACC.0

JB ACC.2,LOOP2

CLR 00H

LOOP2:MOV P1,A

可以知道当执行完该段程序后,位地址 00H的内容为0,01H中的内容为1

3.12 编程将片内RAM 的40H~60H单元中的内容送到片外RAM 以3000H开始的连续单元中。

ORG 0000H

START:MOV R0,40H

MOV R1,21H

MOV DPTR,#3000H

LOOP:MOV A,@RO

MOVX @DPTR,A

INC R0

INC DPTR

DJNZ R1,LOOP

RET

END

3.13 两个4位BCD码数相加,被加数和加数分别存于50H﹑51H和52H﹑53H单元中(次序为:千位﹑百位在低地址中,十位﹑个位在高地址中),要求和数存放在54H﹑55H和56H 中(56H用来存放最高位的进位),试编写加法程序。

ORG 0000H

START:MOV A,51H

ADD A,53H

DA A

MOV 54H,A

MOV A,50H

ADDC A,52H

DA A

MOV 55H,A

CLR A

RLC A

MOV 56H,A

SJMP $

END

相关文档
最新文档