程序集8086中的数组大小未知

时间:2019-03-06 06:39:44

标签: assembly dos x86-16

我需要从用户处获取字符串输入,但我不知道他将输入的字符串的大小,并且我需要在内存中准备一个数组作为字符串的大小,因为我正在使用中断21h ,ah = 0ah。 所以我的问题是,如果我不知道字符串的大小,如何获取字符串的输入? 我还能使用其他中断吗?我搜索了但没有找到任何东西。

1 个答案:

答案 0 :(得分:3)

我建议您创建一个固定大小的缓冲区,并使用带有the interrupt 21h, ah=8的循环来直接输入字符。

这样,您可以检查用户输入多少字节,如果该数字超出缓冲区大小,则终止该字节。

简而言之:

  • 创建足够大小的缓冲区
  • 抓住一个字符直到
    • 这是换行符
    • 输入的字符数将超过您的缓冲区
  • 别忘了零终止您的字符串

如果确实需要读取整个字符串,则可以找到一种动态地重新分配缓冲区的方法。