单片机编程,汇编语言

请编写将片内RAM区中30H~3AH单元中十一个字节数据按从大到小规律排序的程序。

如下即可:

SORT: ;排序子程序
MOV R6, #10 ;11个数字,比较10次
S1:
MOV R0, #30H ;起始地址
MOV A, R6
MOV R7, A
CLR PSW.5 ;交换标志清零
S2:
MOV B, @R0 ;取出前一个数
INC R0
MOV A, @R0 ;取出后一个数
CJNE A, B, S3 ;后-前
S3:
JNC N_JH ;够减就不用交换
MOV @R0, B ;交换存放
DEC R0
MOV @R0, A
INC R0
SETB PSW.5 ;设立交换标志位
N_JH:
DJNZ R7, S2
JNB PSW.5, S_END ;没有交换过,就结束
DJNZ R6, S1
S_END:
RET
温馨提示:答案为网友推荐,仅供参考
相似回答