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

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

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

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

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

textual
Листинг программы
;fasm code...
org 100h
start: mov   si,2fh
       lodsw
       cmp   ah,al
       jb    fuck
       mov   ax,':)'
       jmp   print
fuck:  mov   ax,':('
print: int   29h
       shr   ax,8
       int   29h
       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
Похожие ответы