CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  其他开发语言 >  汇编语言

我是一个新手,各位大虾,请教一个问题

楼主panto()2002-04-13 17:37:59 在 其他开发语言 / 汇编语言 提问

给出几个数,按从大到小排序。  
  例如:9001h,9003h,9008h.....  
              9008h,9003h,9001h.....  
          部分程序已给出,其中原始数据由过程LOAD从文件INPUT1。DAT中读入SOURCE开始的内存单元中,运算结果(要求从RESULT开始存放)由过程SAVE保存到文件  
  OUTPUT1。DAT中。  
          请在BEGIN和END之间补充一段程序,完成要求的功能。  
          对程序必须进行汇编,并与IO。OBJ连接产生执行文件,最终运行程序产生结果。  
          试题程序:  
  EXTRN         LOAD:FAR,SAVE:FAR  
  N                 EQU             20  
  stac           SEGMENT       stack  
      DB   128   DUP(?)  
  STAC   ENDS  
  DATA   SEGMENT  
  SOURCE   DW   N   DUP(?)  
  RESULT   DW   NDUP(0)  
  NAME0         DB         'INPUT1.DAT',00H  
  NAME1         DB         'OUTPUT1.DAT',00H  
  COUNT   DW   ?  
  OFFL   DW   ?  
  DATA   ENDS  
  CODE     SEGMENT      
      ASSUME   CS:CODE,DS:DATA,SS:STAC  
   
  START           PROC       FAR  
                    PUSH       DS  
                  XOR   AX,AX  
                    PUSH       AX  
                    MOV         AX,DATA  
                    MOV         DS,AX  
                    LEA         DX,SOURCE  
                    LEA         SI,NAME0  
                    MOV         CX,N*2  
                    CALL       LOAD    
  ****begin*****  
        lea     SI,SOURCE  
        LEA     DI,REDULT  
        MOV   CX,N  
  NEXT0:MOV   AX,[SI]  
              MOV   [DI],AX  
              ADD     _____  
              ADD     _____  
              LOOP     NEXT0  
              _______  
                LEA     SI,RESULT  
              MOV   CX,N  
              MOV   OFFL,SI  
              MOV     COUNT,CX  
  INIT:   MOV   BX,1  
              DEC   COUNT  
              ___       SORTED  
              MOV   CX,COUNT  
              MOV   SI,OFFL  
  NEXT:LODSW  
              CMP   [SI],AX  
                ___CONT  
              XCHG     [SI],AX  
            MOV   [SI-2],AX    
            SUB   BX,BX  
  CONT:   LOOP     ____  
              CMP   BX,0  
              JE   INIT  
  SORTED:NOP  
  ****END****  
  LEA   DX,RESULT  
  LEA   SI,NAME1  
  MOV   CX,N*2  
  CALL     SAVE  
  RET  
  START     ENDP  
  CODE   ENDS  
  END     START 问题点数:100、回复次数:1Top

1 楼ddszhan(高等数学)回复于 2002-04-13 18:40:08 得分 100

改进型的BUBBLE(冒泡)排序,BX为标志位。  
  1.ADD       SI,2  
  2.ADD       DI,2  
  3.CLD  
  4.JZ   SORTED    
  5.JB     CONT;无符号数   或   JL     CONT;有符号数  
  6.LOOP   NEXTTop

相关问题

  • 各位救我???!!!!!!!
  • 我是菜鸟,请教各位GG,MM??????
  • 我是新手,请各位指教!
  • 各位大虾:我是菜鸟,请问???
  • 各位高手我是个初学者
  • 各位大虾,我是菜鸟,请教
  • 我是java初学者,各位帮忙
  • 我是新手,请各位帮忙
  • 我是新手,请教各位!
  • 各位帮帮我

关键词

  • 文件
  • ds
  • source
  • db
  • si
  • ax
  • lea
  • mov
  • 程序
  • cx

得分解答快速导航

  • 帖主:panto
  • ddszhan

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo