内容发布更新时间 : 2025/1/10 2:35:15星期一 下面是文章的全部内容请认真阅读。
第四章
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单元。
START: EX:
MOV
MOV MOV CLR SUBB JC XCH INC DJNZ MOV R0, BLOCK R1, LEN A, @R0 CY A, @R0 EX A, @R0 R0 R1, START MINI, A
; ; 取起始地址 取数据块长度
14.设变量X存入VAR单元,函数F存入FUNC单元,试编程按下式要求给F赋值:
F=1若X>20;
F=0,若20≥X≥10; F=-1,若X<10
U1:
U2: U3:
CLR MOV SUBB JC MOV SUBB JC MOV SJMP MOV SJMP MOV ……
CY A, VAR A, #10 U1 ; 小于10,跳转 A, VAR A, #21 U2 ; 小于21(小于等于20) FUNC, #1 U3
FUNC, #(-1) (或者-1的补码#0XFF) U3
FUNC, #0
21.试编一3字节数乘1字节数子程序MUL4。 功能:3字节乘以1字节,乘积为4字节 入口:(R0)=被乘数低字节地址指针,(R2)=乘数 出口:(R1)=乘积的高字节地址指针
MUL4: LOOP: MOV
A, R1 SUBB A, #3 MOV R1, A ;修改R1的值,使其指向低字节
MOV R3, 0 ;R3中包含乘积高位的累加和,初始值为0 MOV R4, #3 ;R4为循环乘加次数 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