org 0000h ajmp main org 0030h main: mov r3,#19d;记录循环次数 start: mov r5,r3;设置比较次数 mov r2,#20h;设置起始地址 goon: mov a,@r2;a中放要比较的底地址数 inc r2 mov r0,@r2;r0中放要比较的高地址 cjnz: a,r0,loop;两数如果相等,跳到接着比较 ajmp next loop: jc next ;r0大于a(即低地址放的是较小数,高低址放的是较大数,跳入记着比较) xch a,r0 mov @r2,r0 dec r2 mov @r2,a inc r2 next:djnz r5,goon;检查是否比较完了 djnz r3,start;检查是否完成可升学排列 over: ajmp over
其基本思想是冒泡法,先是挨个比较,比较一遍后就不最大的数放在了最高地址,然后再循环比较n-1(既第二次是比较19-1=18次)次,直到结束 |