汇编中怎样一次输入多个字符

用DOS功能调用的01号只能一次输入一个字符吧?怎样能把连续输入的‘12’当作一个十进制数储存起来呢?... 用DOS功能调用的01号只能一次输入一个字符吧?怎样能把连续输入的‘12’当作一个十进制数储存起来呢? 展开
 我来答
NJGQZF
2015-06-11 · TA获得超过1.1万个赞
知道大有可为答主
回答量:3165
采纳率:0%
帮助的人:1239万
展开全部
汇编语言编程时,如果想一次输入多个字符,需要设定结束字符输入的条件。下面以示例程序说明:
data segment
str db 200 dup (00h);定义输入字符接收区
data ends

code segment
assume cs:code,ds:data
main proc far
start:
mov ax,data
mov ds,ax
lea si,str
mov cx,200;限定最多输入200字符
inpstr: mov ah,01h;等待输入字符
int 21h
mov [si],a1;输入的字符存入接收区
inc si
xor al,0dh;以回车符作为结束条件
jz endinp
loop inpstr;如果没有输入回车符,以输入200字符作为结束条件

endinp: mov ah,4ch;输入的字符在接收区,结束程序
int 21h
ret
main endp
code ends
end start
百度网友fbd573469
2008-04-15 · TA获得超过636个赞
知道小有建树答主
回答量:244
采纳率:0%
帮助的人:0
展开全部
这时你可以规定间隔符,通常采用非数字的一些符号如:空格、逗号、回车等。
实际中,通常连续检测(循环)所读到的字符如果是数字字符,则认为该书没有结束,否则数据已经输入完毕。

LEA DI, BUF
CLD
next:
MOV AH, 1
INT 21H
CMP AL,'0'
JB LEND
CMP AL,'9'
JA LEND
STOSB ; 保存在buf中,以备后续处理
LEND:
....... ; 后续处理
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zjmaxuewen
2008-04-15 · TA获得超过593个赞
知道小有建树答主
回答量:99
采纳率:100%
帮助的人:115万
展开全部
这个要用汇编语言编写一个算法,将输入的各个数字位组合成一个数据
如输入顺序1、2、3,则可以设计以下算法:
0*10=0,0+1=1
1*10=10,10+2=12
12*10=120,120+3=123
即:用初值0乘以10,将乘积加上第一个按键值;
将第一步结果乘以10,将乘积加上第二个按键值;
将第二步结果乘以10,将乘积加上第三个按键值;
依此类推,直到最后一个按键,则最后结果即为输入的数据。
可用循环结构实现上述算法
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
胡杨胖子
2008-04-15 · TA获得超过362个赞
知道小有建树答主
回答量:186
采纳率:0%
帮助的人:185万
展开全部
用INT 16H读取
;下面的只能读两个数字,需要多的自行修改
;只接受0~9按键
DATA SEGMENT
ASSUME DATA:DS
KEYCODE DB 0,0,$
NUM DB 0
DATA ENDS
CODE SEGMENT
ASSUME CODE:CS
START: MOV AX,DATA
MOV DS,AX
MOV SI,OFFSET KEYCODE
XOR CX,CX
READKEY:XOR AX,AX
PUSH CX
PUSH SI
INT 16H
POP SI
POP CX
CMP AL,'0'
JB READKEY
CMP AL,'9'
JA READKEY
MOV [SI],AL
PUSH CX
PUSH SI
MOV DL,AL;显示数字字符
MOV AH,2
INT 21H
POP SI
POP CX
INC SI
INC CX
CMP CX,1
JBE READKEY
MOV SI,OFFSET KEYCODE;开始转换
MOV AL,[SI]
SUB AL,30H
MOV CL,10
MUL CL
INC SI
MOV CL,[SI]
SUB CL,30H
ADD AL,CL
MOV NUM,AL
;转换过的数在NUM,如果只是显示可以直接用KEYCODE
MOV AX,4C00H
INT 21H
CODE ENDS
END START
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友83af0da
2008-04-15 · TA获得超过294个赞
知道答主
回答量:161
采纳率:0%
帮助的人:99.4万
展开全部
类似于C语言中的scanf()函数,如果必要的话,可以自己编写一些函数库,以方便调用
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式