文档库

最新最全的文档下载
当前位置:文档库 > 第四章课後题答案

第四章课後题答案

第四章課後題答案

一、概述及简单和分与程序设计(1-9)

4.6 请用除法指令编写例4.2的程序,并计算所占内存字节数和所需机器周期数。 解:ORV 0500H

MOV A ,20H

MOV B ,#16H

DTV AB ;A/B=A ……B

ORL A ,#30H

MOV 21H ,A ;21H ←BCDH 的ASCII 码

ORL B ,#30H

MOV 22H ,B ;22H ←BCDL 的ASCII 码

SJMP $

END

20H

第四章课後题答案

21H

22H

4.7 设内部RAM 20H 单元有两个非零的BCD 数,请编写求两个BCD 数的积并把积送入21H 单元的程序。

解:ORG 0100H

MOV A ,#00H ;A ←0

MOV R 0,#20H ;B ←

第四章课後题答案

XCHD A ,@R 0 MOV

B ,A

;B MOV A ,@R 0

第四章课後题答案

SW AP A ;A MUL AB ;A ←BCD 1*BCD 0

MOV B ,#0AH

DIV AB ;BCD 1*BCD 2/10=A ……B

SW AP A

第四章课後题答案

ORL A ,B A MOV 21H ,A

SJMP $

END

4.8已知,从内部RAM BLOCK 单元开始存放有一组带符号数,数的个数存放在LEN单元。请编写可以统计其中正数个数和负数个数并分别存入NUM和NUM+1单元的程序。

解:ORG0200H

LEN DAT A 20H

NUM DAT A 21H

BLOCK DAT A 23H

MOV NUM,#00H ;NUM←00H

MOV NUM+1,#00H

MOV R0,#BLOCK ;R0←块始址

LOOP:MOV A,@R0

JMB ACC.7,POS1 ;若正则POS1

INC NUM+1 ;负数个数加1

SJMP NEXT

POS1: INC NUM ;正数个数加1

NEXT: INC R0

DJNE LEN,LOOP ;未完则LOOP

SJMP $

END

4.9 设自变量X为一无符号数,存放在内部RAM的V AX单元,函数Y存放在FUNC单元。请编写程序满足如下关系的程序:

X X≥50

Y=5X 50>X≥20

2X X<20

解:ORG0200H

V AR DAT A 20H

FUNC DAT A 21H

MOV A,V AR ;A←(20H)

CJNE A,#50,NEXT1 ;建立Cy

NEXT1: JNC DONE ;X≥50則DONE

CJNE A,#20,NEXT2 ;建立Cy

NEXT2: JC NEXT3 ;X<20,則NEXT3

RL A

RL A

ADD A,20H ;A←5X

SJMP DONE

NEXT3: RL A;A←2X

DONE: MOV FUNC,A

SJMP $

END

二、循环和查表程序设计(10-22)

4.11从外部RAM的SOUCE(二进制8位)开始有一数据块,改数据块以$字符结尾。请编写程序,把他们传送到以内部RAM的DIST为起始地址的区域($字符

也要传送)。

解:ORG0500H

SOUCE DAT A 30H

DIST DAT A 20H

MOV R0,#SOUCE

MOV R1,#DIST

LOOP: MOVX A,@R0 ;A←源数

CJNE A,#24H,NEXT ;A≠$,则NEXT

MOV @R1,A;传送$

SJMP $

NEXT: MOV @R1,A;傳数据

INC R0

INC R1

SJMP LOOP

END

4.15 外部RAM从2000H到2100H有一数据块,请编写程序将他们传送到从3000H到3100H区域的程序。

解:ORG0500H

MOV DPTR,#3000H ;DPTR←目标地址3000H

PUSH DPL

PUSH DPH ;目标地址入栈

MOV DPTR,#2000H ;DPTR←源地址2000H

MOV R2,#00H

MOV R3,01H ;块长送入R3R2 LOOP: MOVX A,@DPTR ;A←源数

INC DPTR

MOV R5,DPH

MOV R4,DPL ;源针+1后送入R5R4

POP DPH

POP DPL ;出栈

MOVX @DPTR,A ;送数

INC DPTR ;目标地址+1

PUSH DPL

PUSH DPH ;入栈

MOV DPH,R5

MOV DPL,R4 ;源针送DPTR

CLR C

MOV A,R2

SUBB A,#01H

MOV R2,A;R2-1→R2

MOV A,R3

SUBB A,#00H ;R3-Cy→R3

MOV R3,A

ORL A,R2 ;R3VR2→R3

JNZ LOPP ;R2VR3≠0,则LOOP SJMP $

END