| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 749 人关注过本帖
标题:帮忙看个代码
只看楼主 加入收藏
loknight123
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2008-11-26
收藏
 问题点数:0 回复次数:1 
帮忙看个代码
输了8个数,只能0-9,其他报错~~~~最后调试,输到第8个数会出现报错..而且还可以输~~~~

DATAS SEGMENT

    FALSE DB'WRONG NUMBER,INPUT AGAIN$';此处输入数据段代码  
DATAS ENDS


CODES SEGMENT
    ASSUME CS:CODES,DS:DATAS
START:
    MOV AX,DATAS
    MOV DS,AX
    MOV CX,8
      L0:MOV AH,02H
    MOV DL,07H
    INT 21H
    MOV AH,01H
    INT 21H
    CALL INPU
    CALL DISPL
    MOV AH,4CH
    INT 21H

   
  INPU PROC NEAR
   INPUT:
    SUB AL,30H
    CMP AL,0DH
    JZ WRONG
    CMP AL,20H
    JZ WRONG
    CMP AL,09H
    JA WRONG
    CMP AL,00H
    JB WRONG
    MOV [DI],AL
    INC DI
   
     LOOP L0
   INPU ENDP

  WRONG:
    MOV AH,09H
    MOV DX,OFFSET FALSE
    INT 21H
    JMP L0
  
  DISPL PROC NEAR   
  DISP:MOV AH,02H
    MOV BX,8
    MOV DL,[DI+BX-1]
    INT 21H
    DEC BX
    JNZ DISP
    RET
    DISPL ENDP

   
    CODES ENDS
    END START
搜索更多相关主题的帖子: 代码 
2008-11-28 13:40
cnhanxiao
Rank: 2
等 级:新手上路
威 望:4
帖 子:124
专家分:0
注 册:2008-10-17
收藏
得分:0 
INPU PROC NEAR
   INPUT:
    SUB AL,30H
    CMP AL,0DH    ;是要判断回车了吧?你先减掉30H了,想想0Dh成了多少?
                  ;这句应该放在-30h之前
    JZ WRONG      ;错误处理怎么能跑到过程外面呢?
    CMP AL,20H
    JZ WRONG
    CMP AL,09H
    JA WRONG
    CMP AL,00H
    JB WRONG
    MOV [DI],AL
    INC DI
   
    LOOP L0         ;循环到主程序中了,允许吗?
                    ;返回指令呢?
INPU ENDP

幸亏你的程序只输入8个数字,要是你的程序输入数字太多,栈就崩溃了!

[[it] 本帖最后由 cnhanxiao 于 2008-11-29 14:24 编辑 [/it]]

还有绑架成版主的?拒绝做版主——对不起啊!
2008-11-29 14:22
快速回复:帮忙看个代码
数据加载中...
 
   



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

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