Сравнение чисел - 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
Объяснение кода листинга программы
В этом коде происходит следующее:
- Организация сегмента данных - сегмент данных (DS) устанавливается равным 100h.
- Начало работы программы - переход на метку
start
. - Загрузка числа в регистры - число 2fh загружается в регистр si.
- Сравнение чисел - происходит сравнение чисел в регистрах ah и al. Если ah меньше или равно al, то происходит переход на метку
fuck
. - Вывод числа - если произошло сравнение, то в регистр ax загружается число ':('. Если не произошло, то в регистр ax загружается число ':)'.
- Вывод числа на экран - переход на функцию вывода числа на экран (int 29h).
- Масштабирование числа - число в регистре ax масштабируется на 8 бит и снова выводится на экран (int 29h).
- Вывод символа - переход на функцию вывода символа на экран (int 20h). Список переменных и их значений:
- si - 2fh
- ax - 0-й регистр
- ah - 0-й регистр
- al - 0-й регистр
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д