ХАНДЫФАР

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

Параметры:

  • AL: Число, указывающее количество выводимых цифр после точки.

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

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

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

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

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

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

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

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

  1. title Автор: Довгополов Евгений Сергеевич
  2. .model small
  3. .stack 100h
  4. data segment public
  5. ____fmtstr db "Число: %f\0"
  6. ____number dq 123.456789
  7. data ends
  8. code segment public
  9. ____assume _ds:data, cs:code
  10. ____include Handyfar.inc
  11. ____main proc
  12. ________call____SetDataSegment
  13. ________mov_____al, 4
  14. ________call____SetPrecision
  15. ________fld_____qword ptr[number]
  16. ________lea_____ax, ds:[fmtstr]
  17. ________call____PrintFormatString
  18. ________add_____sp, 2
  19. ________xor_____al, al
  20. ________call____ExitProcess
  21. ____main endp
  22. code ends
  23. end main
Функция SetPrecision устанавливает количество цифр после точки, которые будут выводиться при работе с вещественными числами. Это значение используется в других функциях, которые выводят или форматируют вещественные числа.

Параметры:

  • AL: Число, указывающее количество выводимых цифр после точки.

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

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

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

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

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

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

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

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

  1. title Автор: Довгополов Евгений Сергеевич
  2. .model small
  3. .stack 100h
  4. data segment public
  5. ____fmtstr db "Число: %f\0"
  6. ____number dq 123.456789
  7. data ends
  8. code segment public _______________; Начало сегмента кода
  9. ____assume _ds:data, cs:code
  10. ____include Handyfar.inc___________; Подключаем файл с функциями
  11. ____main proc _____________________; Начало процедуры main
  12. ________call____SetDataSegment_____; Вызываем процедуру SetDataSegment
  13. ________mov_____al, 4______________; Копируем число 4 в регистр al
  14. ________call____SetPrecision_______; Вызываем процедуру SetPrecision
  15. ________fld_____qword ptr[number]__; 2-й: Загружаем на вершину стека мат. сопроцессора number
  16. ________lea_____ax, ds:[fmtstr]____; 1-й: Загружаем адрес строки формата fmtstr в регистр ds:ax
  17. ________call____PrintFormatString__; Вызываем процедуру PrintFormatString(ax:fmtstr, st(0))
  18. ________add_____sp, 2______________; Выравниваем стек
  19. ________xor_____al, al_____________; Обнуляем регистр al
  20. ________call____ExitProcess________; Вызываем процедуру ExitProcess
  21. ____main endp _____________________; Конец процедуры main
  22. code ends _________________________; Конец сегмента кода
  23. end main __________________________; Конец файла. Точкой входа указывается процедура main
Made on
Tilda