从字节键盘读取转换为字

时间:2013-09-17 21:47:04

标签: assembly

我是这个地方和集会的新手,我想问一个对我有帮助的问题。我有一个代码:

mov dx, 200
mov ah, 0A
int 21
mov bh, 00
mov bl, byte ptr [201]
mov byte ptr[200], 0D
mov byte ptr[201], 0A
mov byte ptr[202 + bx], 24
mov dx, 200
mov ah, 09
int 21
mov ah, 4c
int 21

这显示了我在键盘上输入的内容,但它仅适用于6个数字。我必须让我可以输入8个。据我所知,我需要从字节ptr改为word,但我不知道该怎么做。你能解释一下怎么做以及为什么这样做。我将不胜感激。

1 个答案:

答案 0 :(得分:0)

从stdin读取字符串时(int 21h,ah = 0a)ds:dx必须指向存储字符串的有效缓冲区。这个缓冲区有一个特殊的格式:

 offset | content
--------+----------
      0 | maximum string length
      1 | will contain number of characters read
      2 | will contain the string

所以基本上你必须指定你想要的字符数(最多):

mov byte ptr[200], 8
mov dx, 200
mov ah, 0A
int 21

byte ptr和word ptr(以及dword ptr)指定CPU应从内存加载的字节数,因此它们与此无关。

参考here