ХАНДЫФАР

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

Параметры:

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

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

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

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

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

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

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

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

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

  1. title Автор: Довгополов Евгений Сергеевич
  2. .286C
  3. .model small
  4. .stack 100h
  5. data segment public
  6. ____fmtout__db "%f + %f = %f\0"
  7. ____number1 dq 23.4562
  8. ____number2_dq 51.6847
  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
  16. ________push____3
  17. ________call____SetPrecisionEx
  18. ________fld_____qword ptr[number1]
  19. ________fadd____qword ptr[number2]
  20. ________fld_____qword ptr[number2]
  21. ________fld_____qword ptr[number1]
  22. ________leaax___ds:[fmtout]
  23. ________call____PrintFormatString
  24. ________push____0
  25. ________call____ExitProcessEx
  26. ____main endp
  27. code ends
  28. end main
Функция SetPrecisionEx устанавливает количество цифр после точки, которые будут выводиться при работе с вещественными числами. Это значение используется в других функциях, которые выводят или форматируют вещественные числа.

Параметры:

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

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

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

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

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

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

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

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

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

  1. title Автор: Довгополов Евгений Сергеевич
  2. .286C
  3. .model small
  4. .stack 100h
  5. data segment public
  6. ____fmtout__db "%f + %f = %f\0"
  7. ____number1 dq 23.4562
  8. ____number2_dq 51.6847
  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. ________push____3___________________; Ложим на вершину стека число 3
  17. ________call____SetPrecisionEx______; Вызываем процедуру SetPrecisionEx(3)
  18. ________fld_____qword ptr[number1]__; Ложим на вершину математического сопроцессора number1
  19. ________fadd____qword ptr[number2]__; number1 + number2 (Результат остается на вершине мат. стека)
  20. ________fld_____qword ptr[number2]__; 3-й: Загружаем на вершину стека мат. сопроцессора number2
  21. ________fld_____qword ptr[number1]__; 2-й: Загружаем на вершину стека мат. сопроцессора number1
  22. ________leaax___ds:[fmtout]_________; 1-й: Загружаем адрес строки формата fmtout в регистр ds:ax
  23. ________call____PrintFormatString___; Вызываем процедуру PrintFormatString(ax:fmtout, ...)
  24. ________push____0___________________; Ложим на вершину стека байтовое значение кода возврата
  25. ________call____ExitProcessEx_______; Вызываем процедуру ExitProcess(0)
  26. ____main endp
  27. code ends
  28. end main
Made on
Tilda