| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 608 人关注过本帖
标题:【求助】主程序调用子程序,结果死在了第一个子程序上,高手帮忙看下
只看楼主 加入收藏
mooncakeduan
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2010-6-11
结帖率:0
收藏
已结贴  问题点数:10 回复次数:2 
【求助】主程序调用子程序,结果死在了第一个子程序上,高手帮忙看下
        DATA  SEGMENT
      BUFFER  DB        30
      ACTLEN  DB        ?
       CHARS  DB        30 DUP(20H)
       INPUT  DB        'please input 10 numbers:',0DH,0AH,'$'
      BINNUM  DB        10 DUP(?)
        DATA  ENDS

        CODE  SEGMENT
              ASSUME    CS:CODE,DS:DATA
        MAIN  PROC      FAR
      START:  PUSH      DS
              SUB       AX,AX
              PUSH      AX
              MOV       AX,DATA
              MOV       DS,AX
              CALL      INPUTNUM
              CALL      CRLF
              CALL      DECIBIN
              CALL      SORTNUM
              RET
        MAIN  ENDP

    INPUTNUM  PROC      NEAR
              MOV       DX,OFFSET INPUT
              MOV       AH,09H
              INT       21H                       ;显示 please input 10 numbers:
              MOV       DX,OFFSET BUFFER
              MOV       AH,0AH
              INT       21H                       ;以字符的形式输入10个数字(0——99)
              RET
    INPUTNUM  ENDP


        CRLF  PROC      NEAR
              MOV       DL,0DH
              MOV       AH,02H
              INT       21H
              MOV       DL,0AH
              MOV       AH,02H
              INT       21H
              RET
        CRLF  ENDP

     DECIBIN  PROC      NEAR                    ;ASC2码转成二进制
              LEA       SI,CHARS
              MOV       DX,0
              MOV       CX,29
              LEA       DI,BINNUM
      LOOP1:  PUSH      CX
              MOV       BL,[SI]
              SUB       BL,30H
              JL        MOVNUM
              CMP       BL,09H
              JG        MOVNUM
              MOV       AX,BX
              PUSH      AX
              MOV       AX,DX
              MOV       CX,10
              MUL       CX
              MOV       DX,AX
              POP       AX
              ADD       DX,AX
              POP       CX
              JCXZ      NEXT1
              INC       SI
              LOOP      LOOP1
     MOVNUM:  PUSH      BX
              MOV       BX,DX
              MOV       [DI],BX
              POP       BX
              INC       SI
              INC       DI
              XOR       DX,DX
              JCXZ      NEXT1
              LOOP      LOOP1
      NEXT1:  RET
     DECIBIN  ENDP

     SORTNUM  PROC      NEAR                       ;排序
              MOV       CX,10
      LOOP2:  MOV       DI,CX
              MOV       BX,0
      LOOP3:  MOV       AL,BINNUM[BX]
              CMP       AL,BINNUM[BX+1]
              JGE       CONTINUE
              XCHG      AL,BINNUM[BX+1]
              MOV       BINNUM[BX],AL
   CONTINUE:  INC       BX
              LOOP      LOOP3
              MOV       CX,DI
              LOOP      LOOP2
              RET
     SORTNUM  ENDP



        CODE  ENDS
              END       START
搜索更多相关主题的帖子: 子程序 主程序 结果 
2010-11-24 21:56
xiaomarn
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:5
帖 子:348
专家分:2026
注 册:2009-3-18
收藏
得分:5 
问题出在你输入的是ascii码,而不是你认为的数字,你直接将ascii码相加了
还要加个子程序,将ascii码转成数字,有点麻烦,先试试
2010-11-25 13:16
快速回复:【求助】主程序调用子程序,结果死在了第一个子程序上,高手帮忙看下
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012305 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved