Assembly 8086部件-输入一个大于9的数字

Assembly 8086部件-输入一个大于9的数字,assembly,Assembly,这是我用来输入数字的中断,但是它不允许我输入大于9的数字: mov AH, 08h int 21h 是否存在允许我同时输入2位数字的不同中断?对于08h,您请求的是单字符输入,请参阅文档,例如或教程。然后读取两位数字需要两个int21hs。或者,您可以看看如何使用0ah,但考虑到它只有两个字符: mov ah, 08h int 21h mov dl, al int 21h ; now dl contains the first character, al the second 问题是,我打算

这是我用来输入数字的中断,但是它不允许我输入大于9的数字:

mov AH, 08h
int 21h

是否存在允许我同时输入2位数字的不同中断?

对于
08h
,您请求的是单字符输入,请参阅文档,例如或教程。然后读取两位数字需要两个
int21h
s。或者,您可以看看如何使用
0ah
,但考虑到它只有两个字符:

mov ah, 08h
int 21h
mov dl, al
int 21h
; now dl contains the first character, al the second

问题是,我打算以后用这个号码。我不希望它被分成数字,然后再打印出来。将数字捕获为字符串,然后将其转换为数字。要显示数字,请将其转换为字符串,以下是您需要的程序=。有了这个答案,你可以输入更大的数字。字符串输入是AH=09h,对吗?09是输出(printf),0A是输入(scanf)。一个更简单的例子=没有办法简单地用一个动作插入一个两位数的数字吗?硬件不是这样工作的。但正如Jose在他的评论中指出的那样,您可以自己编写一个帮助函数,为您包装多字符输入。@Steven1903需要阅读整行内容。也可以阅读一定数量的字符,但当字符数为两个时,你最好按照Jens的建议去做。对mov啊,01h,也可以这样做吗??