ХАНДЫФАР

Функция ArrayGetMinimumEx находит минимальное значение в заданном массиве чисел. Функция ArrayGetMinimumEx автоматически выравнивает стек на 4 байта.

Параметры:

  1. Указатель на массив.
  2. Длина массива (количество элементов).

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

  • AX: Минимальное значение в массиве.

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

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

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

  • Если длина массива = 0, функция возвращает 0.
  • Функция не изменяет значения регистров, кроме AX.

  1. title Автор: Довгополов Евгений Сергеевич
  2. .286C
  3. .model small
  4. .stack 100h
  5. data segment public
  6. ____array__dw__4, 7, 3, 67, 5, 22, 5, 66
  7. ___________dw__8, 5
  8. ____arrlen_equ ($-array) / 2
  9. ____fmtout db__"Минимальное число в "
  10. ___________db__"массиве: %d\0"
  11. data ends
  12. code segment public
  13. ____assume _ds:data, cs:code
  14. ____include Handyfar.inc
  15. ____include Handymac.inc
  16. ____main proc
  17. ________call____SetDataSegment
  18. ________push____arrlen
  19. ________pushs___ds:[array]
  20. ________call____ArrayGetMinimumEx
  21. ________push____ax
  22. ________leaax___ds:[fmtout]
  23. ________call____PrintFormatString
  24. ________add_____sp, 2
  25. ________push____0
  26. ________call____ExitProcessEx
  27. ____main endp
  28. code ends
  29. end main
Функция ArrayGetMinimumEx находит минимальное значение в заданном массиве чисел. Функция ArrayGetMinimumEx автоматически выравнивает стек на 4 байта.

Параметры:

  1. Указатель на массив.
  2. Длина массива (количество элементов).

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

  • AX: Минимальное значение в массиве.

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

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

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

  • Если длина массива = 0, функция возвращает 0.
  • Функция не изменяет значения регистров, кроме AX.

  1. title Автор: Довгополов Евгений Сергеевич
  2. .286C
  3. .model small
  4. .stack 100h
  5. data segment public
  6. ____array__dw__4, 7, 3, 67, 5, 22, 5, 66, 8, 5
  7. ____arrlen_equ ($-array) / 2
  8. ____fmtout db__"Минимальное число в массиве: %d\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. ________push____arrlen_____________; 2-й: Ложим на вершину стека длину массива array
  17. ________pushs___ds:[array]_________; 1-й: Ложим на вершину стека адрес массива array
  18. ________call____ArrayGetMinimumEx__; Вызываем процедуру ArrayGetMinimumEx(array, arrlen) := AX
  19. ________push____ax_________________; 2-й: Ложим на вершину стека значение регистра ax
  20. ________leaax___ds:[fmtout]________; 1-й: Загружаем адрес строки формата fmtout в регистр ds:ax
  21. ________call____PrintFormatString__; Вызываем процедуру PrintFormatString(ax:fmtout, ax)
  22. ________add_____sp, 2______________; Выравниваем стек
  23. ________push____0__________________; Ложим на вершину стека байтовое значение кода возврата
  24. ________call____ExitProcessEx______; Вызываем процедуру ExitProcess(0)
  25. ____main endp
  26. code ends
  27. end main
Made on
Tilda