程序集 8086 中的数组大小未知
Unknown size of array in assembly 8086
我需要从用户那里得到一个字符串输入,但我不知道他要输入的字符串的大小,我需要在内存中准备一个数组作为字符串的大小,因为我正在使用中断 21h,ah=0ah。
所以我的问题是,如果我不知道字符串的大小,如何获取字符串的输入?
我可以使用其他中断吗?我搜索了,但我没有找到任何东西。
我建议您创建一个固定大小的缓冲区,并使用带有 the interrupt 21h, ah=8 的循环来直接输入字符。
这样你就可以检查用户输入了多少字节,如果这个数字超过你的缓冲区大小就终止。
简而言之:
- 创建一个足够大小的缓冲区
- 抓取一个字符直到
- 这是换行符
- 输入的字符数将超过您的缓冲区
- 不要忘记以零终止字符串
如果您真的需要读取整个字符串,您也许可以找到一种动态重新分配缓冲区的方法。
我需要从用户那里得到一个字符串输入,但我不知道他要输入的字符串的大小,我需要在内存中准备一个数组作为字符串的大小,因为我正在使用中断 21h,ah=0ah。 所以我的问题是,如果我不知道字符串的大小,如何获取字符串的输入? 我可以使用其他中断吗?我搜索了,但我没有找到任何东西。
我建议您创建一个固定大小的缓冲区,并使用带有 the interrupt 21h, ah=8 的循环来直接输入字符。
这样你就可以检查用户输入了多少字节,如果这个数字超过你的缓冲区大小就终止。
简而言之:
- 创建一个足够大小的缓冲区
- 抓取一个字符直到
- 这是换行符
- 输入的字符数将超过您的缓冲区
- 不要忘记以零终止字符串
如果您真的需要读取整个字符串,您也许可以找到一种动态重新分配缓冲区的方法。