51汇编实现比较三个数的大小并排序

如题所述

51单片机实现比较三个数的大小,并将数由小到大分别存入40H、41H、42H单元中
ORG 0000H
AJMP MAIN
ORG 0100H
MAIN: MOV 30H,#98H
MOV 31H,#88H
MOV 32H,#78H
MOV A,30H
CJNE A,31H,COMP1
COMP1: JC B1
CJNE A,32H,COMP2
COMP2: JC A1
MOV 42H,30H
MOV A,31H
CJNE A,32H,A2
A2: JC A3
MOV 41H,31H
MOV 40H,32H
SJMP $
A3: MOV 41H,32H
MOV 40H,31H
SJMP $
A1: MOV 42H,32H
MOV 41H,30H
MOV 40H,31H
SJMP $
B1: MOV A,31H
CJNE A,32H,COMP3
COMP3: JC B3
MOV 42H,31H
MOV A,30H
CJNE A,32H,COMP4
COMP4: JC B3
MOV 41H,30H
MOV 40H,32H
SJMP $
B3: MOV 42H,32H
MOV 41H,31H
MOV 40H,30H
SJMP $ ;
B2: MOV 42H,32H ;
MOV 41H,31H ;
MOV 40H,30H ;
SJMP $
END
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-12-15
假设有三个数存在40H、41H、42H单元中。

先在三个数字中,找一个最大的,放在40H。
再在余下的两个数字中,找一个最大的,放在41H。本回答被网友采纳
第2个回答  2019-10-18
;冒泡排序
ORG 0000H
SJMP MAIN
ORG 0030H
MAIN: MOV 30H,#65H
MOV 31H,#61H
MOV 32H,#66H
MOV R0,#30H
MOV R3,#2
MOV R4,#2
LOOP: MOV A,@R0
INC R0
MOV B,@R0
CJNE A,B,K1

K1:
JC L1
DJNZ R3,LOOP
DJNZ R4,L2
SJMP L3
L1:
XCH A,@R0
DEC R0
MOV @R0,A
INC R0
DJNZ R3,LOOP
DJNZ R4,L2
SJMP L3

L2:
MOV R0,#30H
MOV R3,#1
LJMP LOOP
L3: NOP
END
;悬剑
;yinweiyounidecunzai
相似回答