在写中断前先写一篇排序的程序详解吧。
这一小节所使用的排序算法是冒泡法。
冒泡法排序

Q1:怎么知道要比较几轮?
A:用工作寄存器Rx记录每一轮数字交换的次数。当Rx等于0,即没有交换说明已经排好序了。
(当然,这只是其中一种方法,你也可以自己根据要排序的数字个数,自己设置好要执行几轮)
ORG 0000H
JMP MAIN ;跳转到主函数
;写入要排序的数(子函数)
SHU: MOV 20H, #02CH
MOV 21H, #02EH
MOV 22H, #02FH
MOV 23H, #04DH
MOV 24H, #04CH
MOV 25H, #0D4H
MOV 26H, #0E3H
MOV 27H, #0A7H
MOV 28H, #07AH ;以上为9个要比较的数,把他们依次放到地址为:20H~28H
RET
/********************************************************************************/
;初始化 (子函数)
INIT :
MOV R0, #20H ;后面通过寄存器间接寻址读取地址为20H的数。(定位首地址)
MOV R2, #00H ;用R2来记录每一轮有多少