Массив с подпрограммами - Assembler
Формулировка задачи:
Решение задачи: «Массив с подпрограммами»
text segment assume CS:text, DS:data mini proc push CX mov CX,length add BX, 2 cycle1: cmp AX,[BX] jle next mov AX,[BX] next: add BX, 2 loop cycle1 mov min,AX pop CX ret mini endp maxi proc push CX mov CX, length add BX, 2 cycle2: cmp AX,[BX] jge next2 mov AX,[BX] next2: add BX, 2 loop cycle2 mov max,AX pop CX ret maxi endp main proc mov AX,data mov DS,AX mov AX, array mov min, AX mov max, AX lea BX,array mov AX, [BX] mov CX,1 call mini mov AX,data mov DS,AX lea BX,array mov CX,length mov AX, [BX] mov CX,1 call maxi mov AX,4c00h int 21h main endp text ends data segment array DW 17,3,-51,2,119 length DW 5 min DW ? max DW ? data ends end main
Объяснение кода листинга программы
В этом коде две процедуры: mini и maxi. В первой из них (mini) выполняется цикл, который сравнивает значения в массиве с подпрограммами и, если значение в массиве меньше или равно текущему значению AX, записывает это значение в AX. Затем цикл повторяется. Во второй процедуре (maxi) также есть цикл, который работает аналогично первой процедуре, но если значение в массиве больше или равно текущему значению AX, записывает это значение в AX. В основной процедуре (main) сначала устанавливается сегмент данных на значение, равное сегменту переменных, затем в AX записывается адрес массива. После этого вызывается mini, затем maxi. При завершении работы основной процедуры выводится сообщение об успешном завершении работы программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д