|
![]() | 作者: pillow_911 [pillow_911]
![]() |
登录 |
设有三个单字无符号数存放在buffer开始的缓冲区中,定个能将它们按大到小重 新排列的程序 设数据段就只在三个要排序的是数据,定义如下: ;程序名:T3-6.asm ;功能:实现三个无符号数的由大到小的排序 DATAS SEGMENT BUFFER DB 87,234,123 DATAS ENDS 有很多种方法可实现三个数的排序,我们采用交换法,先得到三个数中的最大数 ,然后再得到剩下两个数的最大数。 为了方便,先把要排序的三个数取到三个寄存器中,源程序代码段如下所示: CODES SEGMENT ASSUME CS:CODES,DS:DATAS START:MOV AX,DATAS MOV DS,AX MOV SI,OFFSET BUFFER MOV AL,[SI] MOV BL,[SI+1] MOV CL,[SI+2] CMP AL,BL JAE NEXT1 XCHG AL,BL NEXT1:CMP AL,CL JAE NEXT2 XCHG AL,CL NEXT2:CMP BL,CL JAE NEXT3 XCHG BL,CL NEXT3:MOV [SI],AL MOV [SI+1],BL MOV [SI+2],CL MOV AH,4CH INT 21H CODES:ENDS END START [此贴被 286(unique) 在 10月10日15时49分 编辑过] |
地主 发表时间: 04-10-10 15:33 |
|
20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon
粤ICP备05087286号