Сравнение чисел - 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-й регистр
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д