把片内RAM中地址30H到39H中的10个无符号数逐一比较,并按从小到大的顺序依次排列在这些单元中.

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/10 19:18:23

把片内RAM中地址30H到39H中的10个无符号数逐一比较,并按从小到大的顺序依次排列在这些单元中.
把片内RAM中地址30H到39H中的10个无符号数逐一比较,并按从小到大的顺序依次排列在这些单元中.

把片内RAM中地址30H到39H中的10个无符号数逐一比较,并按从小到大的顺序依次排列在这些单元中.
ORG 0000H
MOV 30H,#10
MOV 31H,#9
MOV 32H,#8
MOV 33H,#7
MOV 34H,#6
MOV 35H,#5
MOV 36H,#4
MOV 37H,#3
MOV 38H,#2
MOV 39H,#1
LJMP START
START:CLR 00H
MOV R7,#9
MOV R0,#30H
MOV A,@R0
LOOP:INC R0
CLR C
SUBB A,@R0
JC NEXT ;如果A大于后一个数就往下执行
SETB 00H
MOV A,@R0 ;如果A大于下一个数就交换次序
DEC R0
XCH A,@R0
INC R0
XCH A,@R0
NEXT:MOV A,@R0 ;把大的数放入A中
DJNZ R7,LOOP
JB 00H,START ;判断最后一次比较是否是A大于下一个数
SJMP $
END