Четность числа и ненормальное программирование - Assembler
Формулировка задачи:
Мог бы кто-нибудь написать программу на ассемблере, которая выясняет, четное-ли число.
Условие: четность числа должна выясняться отниманием 2 до тех пор, пока число не станет равно 0 или 1
Хотелось бы код и время его исполнения
Заранее спасибо
Решение задачи: «Четность числа и ненормальное программирование»
textual
Листинг программы
;fasm code... org 100h jmp start mes0 db 13,10,'Чётное! 0$' mes1 db 13,10,'Не чётное! 1$' const dw 1234h ; число для проверки start: mov ax,[const] cycle: sub ax,2 or ax,ax ; проверка на нуль jz @00 cmp ax,1 ; ..и на единицу jz @01 jmp cycle ; значит ни-то-ни-то.. @00: mov dx,mes0 jmp @prn @01: mov dx,mes1 @prn: mov ah,9 ; выводим результ! int 21h xor ax,ax int 16h int 20h ; на выход!
Объяснение кода листинга программы
Код на языке Assembler выполняет следующие действия:
- Устанавливает точку входа в программу.
- Определяет две строки для вывода: mes0 и mes1.
- Объявляет константу const, которая содержит число для проверки.
- Выполняет цикл проверки числа на четность, используя подстановку регистра ax.
- Если число равно нулю, то переходит к строке mes0.
- Если число равно единице, то переходит к строке mes1.
- Если число не равно ни нулю, ни единице, то продолжает цикл проверки.
- После выполнения цикла, выводит результат проверки на экран с помощью функции int 21h.
- Очищает регистры ax и dx.
- Выполняет функцию int 16h для вывода символа возврата каретки.
- Выполняет функцию int 20h для выхода из программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д