ХАНДЫФАР

Функция PrintFormatTime выводит строку, содержащую форматированное время. В строке могут быть указаны спецификаторы для вывода часов, минут и секунд:

  • %h: Часы.
  • %m: Минуты.
  • %s: Секунды.

Строка должна завершаться нулём (\0) или 0. Если указатель на строку равен 0, функция завершает работу без изменений.

Параметры:

  • AX: Указатель на строку, завершающуюся нулём (\0) или 0.

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

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

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

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

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

  • Функция анализирует строку и заменяет спецификаторы на соответствующие значения времени.

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

  • Строка должна завершаться нулём (\0) или 0, чтобы функция могла определить её конец.

  1. title Автор: Довгополов Евгений Сергеевич
  2. .model small
  3. .stack 100h
  4. data segment public
  5. ____fmtstr db "Текущее время: ______________[%h:%m:%s]\0"
  6. data ends
  7. code segment public
  8. ____assume _ds:data, cs:code
  9. ____include Handyfar.inc
  10. ____main proc
  11. ________call____SetDataSegment
  12. ________lea_____ax, ds:[fmtstr]
  13. ________call____PrintFormatTime
  14. ________xor_____al, al
  15. ________call____ExitProcess
  16. ____main endp
  17. code ends
  18. end main
Функция PrintFormatTime выводит строку, содержащую форматированное время. В строке могут быть указаны спецификаторы для вывода часов, минут и секунд:

  • %h: Часы.
  • %m: Минуты.
  • %s: Секунды.

Строка должна завершаться (\0) или 0. Если указатель на строку равен 0, функция завершает работу без изменений.

Параметры:

  • AX: Указатель на строку, завершающуюся (\0) или 0.

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

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

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

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

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

  • Функция анализирует строку и заменяет спецификаторы на соответствующие значения времени.

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

  • Строка должна завершаться (\0) или 0, чтобы функция могла определить её конец.

  1. title Автор: Довгополов Евгений Сергеевич
  2. .model small
  3. .stack 100h
  4. data segment public
  5. ____fmtstr db "Текущее время: [%h:%m:%s]\0"
  6. data ends
  7. code segment public _____________; Начало сегмента кода
  8. ____assume _ds:data, cs:code
  9. ____include Handyfar.inc_________; Подключаем файл с функциями
  10. ____main proc ___________________; Начало процедуры main
  11. ________call____SetDataSegment___; Вызываем процедуру SetDataSegment
  12. ________lea_____ax, ds:[fmtstr]__; Загружаем адрес строки формата fmtstr в регистр ds:ax
  13. ________call____PrintFormatTime__; Вызываем процедуру PrintFormatTime(ax:fmtstr)
  14. ________xor_____al, al___________; Обнуляем регистр al
  15. ________call____ExitProcess______; Вызываем процедуру ExitProcess
  16. ____main endp ___________________; Конец процедуры main
  17. code ends _______________________; Конец сегмента кода
  18. end main ________________________; Конец файла. Точкой входа указывается процедура main
Made on
Tilda