ХАНДЫФАР

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

Параметры:

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

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

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

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

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

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

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

  1. title Автор: Довгополов Евгений Сергеевич
  2. .286C
  3. .model small
  4. .stack 100h
  5. data segment public
  6. ____askUser db "Введите своё полное "
  7. ____________db "имя: \0"
  8. ____output__db "\nВаше полное имя \0"
  9. ____buffer__db 255 dup(0)
  10. data ends
  11. code segment public
  12. ____assume _ds:data, cs:code
  13. ____include Handyfar.inc
  14. ____include Handymac.inc
  15. ____main proc
  16. ________call____SetDataSegment
  17. ________pushs___ds:[askUser]
  18. ________call____WriteStringEx
  19. ________pushs___ds:[buffer]
  20. ________call____ReadStringEx
  21. ________pushs___ds:[output]
  22. ________call____WriteStringEx
  23. ________pushs___ds:[buffer]
  24. ________call____WriteStringEx
  25. ________push____0
  26. ________call____ExitProcessEx
  27. ____main endp
  28. code ends
  29. end main
Функция ReadStringEx считывает пользовательский ввод с клавиатуры и сохраняет его в подготовленном буфере, завершающемся 0. Ввод завершается при нажатии клавиши Enter, после чего в буфер добавляется символ завершения строки 0. Функция ReadStringEx автоматически выравнивает стек на 2 байта

Параметры:

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

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

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

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

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

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

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

  1. title Автор: Довгополов Евгений Сергеевич
  2. .286C
  3. .model small
  4. .stack 100h
  5. data segment public
  6. ____askUser db "Введите своё полное имя: \0"
  7. ____output__db "\nВаше полное имя \0"
  8. ____buffer__db 255 dup(0)
  9. data ends
  10. code segment public
  11. ____assume _ds:data, cs:code
  12. ____include Handyfar.inc________; Подключаем файл с функциями
  13. ____include Handymac.inc________; Подключаем файл с макросами
  14. ____main proc
  15. ________call____SetDataSegment__; Вызываем процедуру SetDataSegment
  16. ________pushs___ds:[askUser]____; Ложим на вершину стека адрес переменной string
  17. ________call____WriteStringEx___; Вызываем процедуру WriteStringEx(string)
  18. ________pushs___ds:[buffer]_____; Ложим на вершину стека адрес переменной buffer
  19. ________call____ReadStringEx____; Вызываем процедуру ReadStringEx(buffer)
  20. ________pushs___ds:[output]_____; Ложим на вершину стека адрес переменной output
  21. ________call____WriteStringEx___; Вызываем процедуру WriteStringEx(output)
  22. ________pushs___ds:[buffer]_____; Ложим на вершину стека адрес переменной buffer
  23. ________call____WriteStringEx___; Вызываем процедуру WriteStringEx(buffer)
  24. ________push____0_______________; Ложим на вершину стека байтовое значение кода возврата
  25. ________call____ExitProcessEx___; Вызываем процедуру ExitProcess(0)
  26. ____main endp
  27. code ends
  28. end main
Made on
Tilda