当前位置:编程学习 > 汇编语言 >>

试编写汇编语言子程序,使内存RAM的20H~4FH单元中的数据块按降序排列。

答案:;----------------------------------------------------- SORT: ;最简短、高效的排序程序. MOV B, #2FH ;第一轮排序时,比较2FH次. S1: MOV R0, #20H ;数据区的起始地址. CLR PSW.5 ;清除"交换"标志位. MOV R7, B S2: MOV A, @R0 ;取前一个数. INC R0 CLR C SUBB A, @R0 ;减后一个数,前<后时,Cy=1 S3: JNC S4 ;无借位时,不用交换,转移. MOV A, @R0 ;取后一个数,准备交换. DEC R0 XCH A, @R0 ;交换到前一个. INC R0 XCH A, @R0 ;交换到后一个. SETB PSW.5 ;设定"交换"标志位. S4: DJNZ R7, S2 ;继续本轮比较. JNB PSW.5, ENDS ;如本轮没有进行过交换,可提前结束. DJNZ B, S1 ;下一轮,比较次数少一次. ENDS: RET ;-----------------------------------------------------

上一个:用emulate8086汇编出现的问题:unterminated string: 128 dup(")
下一个:在汇编语言中的如何人对立即数进行压栈

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,