Неизвестный размер массива в сборке 8086 - PullRequest
0 голосов
/ 06 марта 2019

Мне нужно получить строку ввода от пользователя, но я не знаю размер строки, которую он введет, и мне нужно подготовить массив в памяти в качестве размера строки, потому что я использую прерывание 21h ах = 0ах. Итак, мой вопрос, как получить ввод строки, если я не знаю ее размер? Могу ли я использовать другое прерывание? Я искал, но ничего не нашел.

1 Ответ

3 голосов
/ 06 марта 2019

Я предлагаю вам создать буфер с фиксированным размером и использовать цикл с прерыванием 21h, ах = 8 для прямого ввода символов.

Таким образом, вы можете проверить, сколько байтов пользователь вводит, и завершить работу, если это число превышает размер вашего буфера.

Короче говоря:

  • создать буфер с достаточным размером
  • захватить один символ до
    • это разрыв строки
    • количество введенных символов превысит ваш буфер
  • не забудьте обнулить строку

И если вам действительно нужно прочитать всю строку, вы можете найти способ динамического перераспределения буфера.

...