Среди трёх чисел вывести среднее - Assembler
Формулировка задачи:
2. Среди трёх чисел вывести среднее.
Пока что над этими задачами пыхчу но безуспешно если кто знает решение напишите желательно с пояснением.
Решение задачи: «Среди трёх чисел вывести среднее»
textual
Листинг программы
.model small .stack 100h .data a db 5 b db 7 c db 3 Max db ? Min db ? Middle db ? .code main proc mov ax, @data mov ds, ax ;минимум mov al, [a] cmp al, [b] jbe @@Min1 mov al, [b] @@Min1: cmp al, [c] jbe @@Min2 mov al, [c] @@Min2: mov [Min], al ;максимум mov al, [a] cmp al, [b] jae @@Max1 mov al, [b] @@Max1: cmp al, [c] jae @@Max2 mov al, [c] @@Max2: mov [Max], al ;среднее равно Middle=(a+b+c-Min-Max) mov al, [a] add al, [b] add al, [c] sub al, [Min] sub al, [Max] mov [Middle], al ;вывод результата ; - преобразование числа в символ mov al, [Middle] add al, '0' ; - вывод символа результата вычисления mov ah, 02h mov dl, al int 21h ;ожидание нажатия любой клавиши mov ah, 08h int 21h or al, al jnz @@Skip ;если нажата функциональная клавиша, mov ah, 08h ;то считать расширенный символ int 21h ;очистив тем самым буфер клавиатуры @@Skip: ;конец программы mov ax, 4C00h int 21h main endp end main
Объяснение кода листинга программы
- Объявление переменных: — a, b, c - значения 5, 7, 3 соответственно — Max, Min, Middle - флаги, инициализированные как ? (проверяется как 0)
- Нахождение минимума из трех чисел (переменные a, b, c) и сохранение его в переменной Min.
- Нахождение максимума из трех чисел (переменные a, b, c) и сохранение его в переменной Max.
- Нахождение среднего значения (сумма a, b, c минус минимальное и максимальное значения), сохранение его в переменной Middle.
- Преобразование числа в символ (добавление '0' для преобразования в двузначное число) и вывод символа результата вычисления.
- Ожидание нажатия любой клавиши (функциональные клавиши не считаются).
- Если нажата функциональная клавиша, то считывается расширенный символ.
- Конец программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д