Найти среднее из трех заданных чисел - Assembler

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

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

Дано три числа найти среднее из них

Решение задачи: «Найти среднее из трех заданных чисел»

textual
Листинг программы
_STACK  segment para stack
        db      1024 dup(?)
_STACK  ends
 
_DATA   segment
        A       dw      12
        B       dw      -25
        C       dw      -10
        Result  dw      ?
        CrLf    db      0Dh, 0Ah, '$'
_DATA   ends
 
_TEXT   segment
        assume  cs:_TEXT, ds:_DATA, ss:_STACK
main    proc
        ;инициализация сегментного регистра данных
        mov     ax,     _DATA
        mov     ds,     ax
 
        mov     ax,     [A]
        mov     bx,     [B]
        mov     cx,     [C]
 
        cmp     ax,     bx
        jle     m1
        xchg    ax,     bx
m1:
        cmp     bx,     cx
        jle     m2
        xchg    bx,     cx
m2:
        cmp     ax,     bx
        jle     m3
        xchg    ax,     bx
m3:
        mov     [Result],       bx
 
        ;завершение программы
        mov     ax,     4C00h
        int 21h
main    endp
 
_TEXT   ends
 
        end     main

Объяснение кода листинга программы

  1. В коде используется сегментная модель памяти, поэтому каждый сегмент (stack, data, text) имеет свой собственный сегментный регистр (ss, ds, es).
  2. Сначала происходит инициализация сегментного регистра данных в сегмент данных.
  3. Затем происходит загрузка трех чисел в регистры ax, bx и cx.
  4. Происходит сравнение чисел в регистрах ax и bx, и если число в регистре ax меньше числа в регистре bx, то происходит обмен этих чисел местами.
  5. Затем происходит сравнение чисел в регистрах bx и cx, и если число в регистре bx меньше числа в регистре cx, то происходит обмен этих чисел местами.
  6. Последнее сравнение - между числами в регистрах ax и bx. Если число в регистре ax меньше числа в регистре bx, то происходит обмен этих чисел местами.
  7. Результат (наибольшее число из трех) сохраняется в переменной Result.
  8. Код завершается командой int 21h, которая вызывает функцию завершения программы.

ИИ для рефератов и докладов


  • Экспорт Word по ГОСТу
  • Минимум 80% уникальности текста
  • Поиск релевантных источников в интернете
  • Готовый документ за 2 минуты

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

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