ХАНДЫФАР

Функция ReadString считывает пользовательский ввод с клавиатуры и сохраняет его в подготовленном буфере, завершающемся нулём 0. Ввод завершается при нажатии клавиши Enter, после чего в буфер добавляется символ завершения строки 0.

Параметры:

  • AX: Указатель на буфер, в который будет сохранён пользовательский ввод.

Возвращаемое значение:

  • Функция не возвращает значение.

Состояние флагов:

  • Функция не изменяет состояние флагов.

Особенности:

  • Функция не изменяет значения регистров, кроме тех, которые используются для считывания ввода.

  • Ввод завершается при нажатии клавиши Enter, после чего в буфер добавляется символ завершения строки 0.

  1. title Автор: Довгополов Евгений Сергеевич
  2. .model small
  3. .stack 100h
  4. data segment public
  5. ____askUser_db "Введите свое полное имя: \0"
  6. ____output__db "\nВаше полное имя \0"
  7. ____buffer__db 255 dup(0)
  8. data ends
  9. code segment public ______________; Начало сегмента кода
  10. ____assume _ds:data, cs:code
  11. ____include Handyfar.inc__________; Подключаем файл с функциями
  12. ____main proc ____________________; Начало процедуры main
  13. ________call____SetDataSegment____; Вызываем процедуру SetDataSegment
  14. ________lea_____ax, ds:[askUser]__; Загружаем адрес переменной askUser в регистр ds:ax
  15. ________call____WriteString_______; Вызываем процедуру WriteString(ax:askUser)
  16. ________lea_____ax, ds:[buffer]___; Загружаем адрес переменной buffer в регистр ds:ax
  17. ________call____ReadString________; Вызываем процедуру ReadString(ax:buffer)
  18. ________lea_____ax, ds:[output]___; Загружаем адрес переменной output в регистр ds:ax
  19. ________call____WriteString_______; Вызываем процедуру WriteString(ax:output)
  20. ________lea_____ax, ds:[buffer]___; Загружаем адрес переменной buffer в регистр ds:ax
  21. ________call____WriteString_______; Вызываем процедуру WriteString(ax:buffer)
  22. ________xor_____al, al____________; Обнуляем регистр al
  23. ________call____ExitProcess_______; Вызываем процедуру ExitProcess
  24. ____main endp ____________________; Конец процедуры main
  25. code ends ________________________; Конец сегмента кода
  26. end main _________________________; Конец файла. Точкой входа указывается процедура main
Made on
Tilda