Сравнение чисел - Assembler

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

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

Надеюсь найдется кто-то, который пишет на этом языке. В общем суть такая нужно как-то сравнить два числа и написать что из них больше, меньше либо они равные.

Решение задачи: «Сравнение чисел»

textual
Листинг программы
  1. ;fasm code...
  2. org 100h
  3. start: mov   si,2fh
  4.        lodsw
  5.        cmp   ah,al
  6.        jb    fuck
  7.        mov   ax,':)'
  8.        jmp   print
  9. fuck:  mov   ax,':('
  10. print: int   29h
  11.        shr   ax,8
  12.        int   29h
  13.        int   20h

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

В этом коде происходит следующее:

  1. Организация сегмента данных - сегмент данных (DS) устанавливается равным 100h.
  2. Начало работы программы - переход на метку start.
  3. Загрузка числа в регистры - число 2fh загружается в регистр si.
  4. Сравнение чисел - происходит сравнение чисел в регистрах ah и al. Если ah меньше или равно al, то происходит переход на метку fuck.
  5. Вывод числа - если произошло сравнение, то в регистр ax загружается число ':('. Если не произошло, то в регистр ax загружается число ':)'.
  6. Вывод числа на экран - переход на функцию вывода числа на экран (int 29h).
  7. Масштабирование числа - число в регистре ax масштабируется на 8 бит и снова выводится на экран (int 29h).
  8. Вывод символа - переход на функцию вывода символа на экран (int 20h). Список переменных и их значений:
  9. si - 2fh
  10. ax - 0-й регистр
  11. ah - 0-й регистр
  12. al - 0-й регистр

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


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

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

14   голосов , оценка 3.857 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы