在内部RAM的21H单元开始存有一组单字节无符号数,数据长度为20H,编写程序要求找出最大数存入MAX单元 。

2025-09-11 04:29:59
推荐回答(2个)
回答1:

程序如下:

MOV R0, #21H ;起始地址.
MOV MAX,#00H ;先用0当做最大值.
MOV R2, #20H ;数据长度.
LOOP:
MOV A, @R0 ;取来一个数据.
CLR C
SUBB A, MAX ;减“最大值”.
JNC rel1 ;不够减就算了.
MOV A, @R0 ;够减,就把这个数据.
MOV MAX,A ;当做最大值.
rel1:
INC R0 ;转向下一个.
DJNZ R2, LOOP ;循环.
SJMP $ ;结束.

END
请参考

回答2:

;
MOV MAX, #0 ;先用0充当最大值.
MOV R0, #21H
MOV R2, #20H
LOOP:
MOV A, @R0 ;取来一个数.
CLR C
SUBB A, MAX ;减去“最大值”.
JC NEXT ;有借位(即小于)转移.
MOV MAX, @R0 ;大于则保存到最大值位置.
NEXT:
INC R0
DJNZ R2, LOOP

SJMP $

END