Второй байт буфера будет содержать длину реально введенной строки без учета последнего символа CR (клавиша Enter);
Первый байт буфера должен содержать максимальное число символов для ввода (от 1 до 254);
Таким образом, для получения 50 - символьной строки надо отвести под буфер минимум 53 байта памяти:
– в первый байт памяти записать число ASCII 51;
– после ввода 50 символов второй байт дескриптора будет содержать ASCII 50;
– 53-й байт отведённой памяти будет содержать ASCII 13 (0Dh).
Пример 2:
; - - - в сегменте данныхSTRING DB 53 DUP(?) ; область для 50 символов; - - - получение строки с клавиатурыLEA DX, STRING ; DS:DX - адрес строкиMOV BX,DXMOV AL,51 ; установка длины строки (+1 для CR)MOV [BX], AL ; посылаем в первый байт дескриптора ; длину строкиMOV AH, 0AH ; номер функцииINT 21H; - - - получаем в AH длину строкиMOV AH, [BX]+1 ; теперь реальная длина в AH
Пример 3:
; Программа считывает строку символов и выводит ее на экран.
Пример 5. Программа с консоли заполняет файл my_file.txt, который находится в текущей папке. Длина строки, вводимой в файл с консоли не более 80 символов. Ввод с консоли прекращается, когда в новой строке в начале вводится «пробел». (WFile1.asm)