Четность числа и ненормальное программирование - 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 выполняет следующие действия:

  1. Устанавливает точку входа в программу.
  2. Определяет две строки для вывода: mes0 и mes1.
  3. Объявляет константу const, которая содержит число для проверки.
  4. Выполняет цикл проверки числа на четность, используя подстановку регистра ax.
  5. Если число равно нулю, то переходит к строке mes0.
  6. Если число равно единице, то переходит к строке mes1.
  7. Если число не равно ни нулю, ни единице, то продолжает цикл проверки.
  8. После выполнения цикла, выводит результат проверки на экран с помощью функции int 21h.
  9. Очищает регистры ax и dx.
  10. Выполняет функцию int 16h для вывода символа возврата каретки.
  11. Выполняет функцию int 20h для выхода из программы.

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


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

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

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