| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1544 人关注过本帖
标题:输入0—9中得一个数,输出其对应的英文单词。
只看楼主 加入收藏
hustluojiang
Rank: 1
等 级:新手上路
帖 子:13
专家分:1
注 册:2013-3-12
结帖率:0
收藏
 问题点数:0 回复次数:5 
输入0—9中得一个数,输出其对应的英文单词。
刚刚学汇编,不太懂,请大神们指教!!
.386
DATA SEGMENT
INPUT  DB  'INPUT X(0-9):$'
TAB    DB  'ZERO$ ','ONE$  ','TWO$  ','THREE$','FOUR$ ','FIVE$ ','SIX$ ','SEVEN$','EIGHT$','NINE$ ' ;算上空格,每部分占6个字符
X      DB  ?
INERR  DB  0AH,0DH,'INPUT ERROR!TRY AGAIN',0AH,0DH,'$'
CRLF   DB  0DH,0AH,'$'
DATA ENDS

STACK SEGMENT USE16 STACK
   DB 200 DUP(0)
STACK ENDS

CODE SEGMENT USE16
ASSUME CS:CODE, DS:DATA,SS:STACK
START:MOV AX,DATA
      MOV DS,AX
NEXT:MOV DX,OFFSET INPUT
     MOV AH,9
     INT 21H
     
     MOV AH,1
     INT 21H
     
     LEA DX,CRLF
     MOV AH,9
     INT 21H
     
     CMP AL,'0'
     JB ERR
     CMP AL,'9'
    JA ERR
      
     AND AL,0FH
     MOV X,AL
     MOV Bl,X
     MOV BH,0
     MOV SI,BX
     IMUL SI,6
     
     MOV BL,TAB
     MOV BH,0
     LEA DX,[BX+SI]
     MOV AH,9
     INT 21H
EXIT:MOV AH,4CH
     INT 21H
ERR:MOV DX,OFFSET INERR
    MOV AH,9
    INT 21H
    JMP NEXT
CODE ENDS
 END START

为什么输出的都是乱码??实在是不知道哪里错了。谢谢各位了!

[ 本帖最后由 hustluojiang 于 2013-4-20 16:18 编辑 ]
搜索更多相关主题的帖子: 英文单词 SEVEN 
2013-04-20 15:06
hustluojiang
Rank: 1
等 级:新手上路
帖 子:13
专家分:1
注 册:2013-3-12
收藏
得分:0 
很急啊,求大神指点啊
2013-04-21 00:35
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:400
帖 子:11771
专家分:43421
注 册:2006-5-13
收藏
得分:0 
要输出的都是英文字母,输出了乱码,则肯定是数据的地址不正确。将下列红色部分修改一下试试:

DATA SEGMENT
INPUT  DB  'INPUT X(0-9):$'
TAB    DB  'ZERO$ ','ONE$  ','TWO$  ','THREE$','FOUR$ ','FIVE$ ','SIX$ ','SEVEN$','EIGHT$','NINE$ ' ;算上空格,每部分占6个字符
X      DB  ?
INERR  DB  0AH,0DH,'INPUT ERROR!TRY AGAIN',0AH,0DH,'$'
CRLF   DB  0DH,0AH,'$'
DATA ENDS

STACK SEGMENT USE16 STACK
   DB 200 DUP(0)
STACK ENDS

CODE SEGMENT USE16
ASSUME CS:CODE, DS:DATA,SS:STACK
START:MOV AX,DATA
      MOV DS,AX
NEXT:MOV DX,OFFSET INPUT
     MOV AH,9
     INT 21H
     
     MOV AH,1
     INT 21H
     
     LEA DX,CRLF
     MOV AH,9
     INT 21H
     
     CMP AL,'0'
     JB ERR
     CMP AL,'9'
    JA ERR
      
     AND AL,0FH
     MOV X,AL
     MOV Bl,X
     MOV BH,0
     MOV SI,BX
     IMUL SI,6
     
     MOV BL,OFFSET TAB
     MOV BH,0
     LEA DX,[BX+SI]
     MOV AH,9
     INT 21H
EXIT:MOV AH,4CH
     INT 21H
ERR:MOV DX,OFFSET INERR
    MOV AH,9
    INT 21H
    JMP NEXT
CODE ENDS
END START

活到老,学到老!http://www.(该域名已经被ISP盗卖了)E-mail:hu-jj@
2013-04-21 10:26
hustluojiang
Rank: 1
等 级:新手上路
帖 子:13
专家分:1
注 册:2013-3-12
收藏
得分:0 
回复 3楼 hu9jj
还是不行。。。
2013-04-21 11:56
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:400
帖 子:11771
专家分:43421
注 册:2006-5-13
收藏
得分:0 
我的DOS中断手册不在身边,暂时看不出哪里有问题。你首先确定程序能运行么,能提示用户输入么,能判断录入了错误的数据么,程序能正常结束么。

活到老,学到老!http://www.(该域名已经被ISP盗卖了)E-mail:hu-jj@
2013-04-21 13:31
hustluojiang
Rank: 1
等 级:新手上路
帖 子:13
专家分:1
注 册:2013-3-12
收藏
得分:0 
我刚刚弄好了。还是谢谢了
2013-04-21 16:55
快速回复:输入0—9中得一个数,输出其对应的英文单词。
数据加载中...
 
   



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

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