文档库 最新最全的文档下载
当前位置:文档库 › 51单片机第4章作业答案-清华大学出版社-万福君

51单片机第4章作业答案-清华大学出版社-万福君

51单片机第4章作业答案-清华大学出版社-万福君
51单片机第4章作业答案-清华大学出版社-万福君

第四章

6题试编一数据块搬迁程序。将外部RAM 2000H~204FH单元中的数,移入内部RAM 30H~7FH单元中。

ORG 0000H

MOV R0, #50H

MOV R1, #30H

MOV DPTR, #2000H

LP1: MOVX A, @DPTR

MOV @R1, A

INC R1

INC DPTR

DJNZ R0, LP1

END

7. 在内部RAM的BLOCK开始的单元中有一无符号数据块,数据块长度存入LEN单元,试编程求其中的最小数,并存入MINI单元。

MOV R0, BLOCK ; 取起始地址

MOV R1, LEN ; 取数据块长度

MOV A, @R0

START: CLR CY

SUBB A, @R0

JC EX

XCH A, @R0

EX: INC R0

DJNZ R1, START

MOV MINI, A

14.设变量X存入V AR单元,函数F存入FUNC单元,试编程按下式要求给F赋值:F=1若X>20;

F=0,若20≥X≥10;

F=-1,若X<10

CLR CY

MOV A, V AR

SUBB A, #10

JC U1 ; 小于10,跳转

MOV A, V AR

SUBB A, #21

JC U2 ;小于21(小于等于20)

MOV FUNC, #1

SJMP U3

U1: MOV FUNC, #(-1) (或者-1的补码#0XFF)

SJMP U3

U2: MOV FUNC, #0

U3: ……

21.试编一3字节数乘1字节数子程序MUL4。

功能:3字节乘以1字节,乘积为4字节

入口:(R0)=被乘数低字节地址指针,(R2)=乘数

出口:(R1)=乘积的高字节地址指针

MUL4: MOV A, R1

SUBB A, #3

MOV R1, A ;修改R1的值,使其指向低字节

MOV R3, 0 ;R3中包含乘积高位的累加和,初始值为0

MOV R4, #3 ;R4为循环乘加次数

LOOP: MOV A, @R0 ;取被乘数

MOV B, R2 ;取乘数

MUL AB

ADD A, R3 ;乘积的低位和上次乘积的高位相加

MOV @R1,A ;将结果的低位送保存

MOV A, B

ADDC A, #0 ;将进位加到新的高位上

MOV R3, A ;R3中保存的是最新的高位值

INC R0 ;修改被乘数指针

INC R1 ;修改结果指针

DJNZ R4, LOOP

MOV A, R3

MOV @R1,A ;将最后一次的高位值送内存保存

RET

相关文档