Массив с подпрограммами - Assembler

Узнай цену своей работы

Формулировка задачи:

Помогите с программой. Лабораторная №2. Найти наибольший и наименьший элемент в заданном массиве. Реализовать программу с использованием подпрограмм (функций)

Решение задачи: «Массив с подпрограммами»

textual
Листинг программы
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. При завершении работы основной процедуры выводится сообщение об успешном завершении работы программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4.333 из 5
Похожие ответы