首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 汇编语言 >

初学汇编-字符的输入与储存,该如何处理

2012-03-05 
初学汇编--字符的输入与储存汇编程序:用字符输入的方法输入一个1位或2位数。要求:如果连续输入两个0~9之间

初学汇编--字符的输入与储存
汇编程序: 用字符输入的方法输入一个1位或2位数。
  要求: 如果连续输入两个0~9之间的字符,则当成是2位数,将结果送存(这个我会);如果输入一个0~9之间的字符,再敲一下回车键,则认为输入的是一个1位数,将结果送存(这个我不会,请问该怎么写?我初学汇编,麻烦说得详细一些,最好给出程序段。)

[解决办法]
datasegment
NUMEQU255
stringdbNUM,?,NUM dup(?)
msg1db'input the string:$'
msg2db'digits:$'
crlfdb0dh,0ah,'$'
dataends

codesegment
assume ds:data,cs:code
mainprocfar
start:
pushds
xorax,ax
pushax
movax,data
movds,ax

leadx,msg1
movah,9
int 21h

leadx,string
movah,0ah
int 21h

movch,0
movcl,string[1]
movax,0
movsi,0
judge:
cmpstring[si+2],'0'
jlerror
cmpstring[si+2],'9'
jgerror
inc ax
incsi
loopjudge
error:
pushax
leadx,crlf
movah,9
int 21h

leadx,msg2
movah,9
int 21h

popax
addal,30h
movdl,al
movah,2
int 21h

ret
mainendp
codeends
endstart

好久没写汇编了
[解决办法]
大体思路是:

调用DOS int 21中断,取字符,然后判断是否是数字字符,

如果是则转换为数字(也可以不转化看你的需要),然后存储

在.data中的一个数组中。也可以包装一个子过程,用来判断

数字字符。
[解决办法]
汗了,楼主说回两个字符的,但不会一个字符的,好像诡异了点
不过回车不也就一字符么?虽然不是可显示字符。。

热点排行