assembly - 程序集 8086 中数组大小未知

标签 assembly dos x86-16

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

最佳答案

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

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

简而言之:

  • 创建一个足够大小的缓冲区
  • 抓取一个字符直到
    • 这是一个换行符
    • 输入的字符数将超出您的缓冲区
  • 不要忘记以零终止字符串

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

关于assembly - 程序集 8086 中数组大小未知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55017050/

相关文章:

c++ - 使用 C++ 代码中的参数调用 masm 函数

assembly - 6502汇编器随机数问题

assembly - movzwl、%ax 和负值的奇怪结果

组件(TASM): print the sum of certain bits in bytes

assembly - 如何将第9扇区复制到第1扇区?

c# - 为什么代码大小对于 JIT 编译很重要?

batch-file - 批处理文件删除文件夹

assembly - 自定义键盘中断处理程序

batch-file - 检查dos批处理文件中的输入命令?

assembly - 在汇编中将字符串写入文件 100 次