Алгоритм с ветвлениями - Assembler
Формулировка задачи:
помогите пожалуйста с индивидуалкой по ассемблеру
_______________
Вася пытается высунуть голову в форточку размерами a и b см. Приняв условно, что его голова — круглая диаметром d см, определить, сможет ли Вася сделать это. Для прохождения головы в форточку необходим зазор в 1 см с каждой стороны.
_______________
я понимаю что вы подумаете ,типо халявщик,дет что ему решение накатают и тд , но мне оч надо много закрыть долгов , помогите с решением
Решение задачи: «Алгоритм с ветвлениями»
textual
Листинг программы
LOCALS .model small .stack 100h .data msgFit db 'Prolezet', 0Dh, 0Ah, '$' msgNoFit db 'Ne prolezet', 0Dh, 0Ah, '$' ;размер форточки a dw 12 b dw 33 ;диаметр головы Василия d dw 11 .code main proc mov ax, @data mov ds, ax mov ax, d ;ax - диаметр головы Василия add ax, 2 ;к диаметру добавляем необходимый зазор ;сравниваем со строрной a cmp ax, a ja NotFit ;если не пролезет - вывести соответствующее ;сообщение ;сравниваем со стороной b cmp ax, b ja NotFit ;если не пролезет - вывести соответствующее ;сообщение ;в этой строке оказались, если голова пролезет ;выводим сообщение mov ah, 09h lea dx, msgFit int 21h ;и выходим из программы jmp @@Exit NotFit: ;в этой строке оказались, если голова не пролезет ;выводим сообщение mov ah, 09h lea dx, msgNoFit int 21h @@Exit: ;завершение программы mov ax, 4C00h int 21h main endp end main
Объяснение кода листинга программы
- Создаем переменные:
msgFit
- строка 'Prolezet', 0Dh, 0Ah, '$'msgNoFit
- строка 'Ne prolezet', 0Dh, 0Ah, '$'a
- двойное слово (dw) со значением 12b
- двойное слово (dw) со значением 33d
- двойное слово (dw) со значением 11
- Входим в процедуру
main
. - Перемещаем адрес сегмента данных в регистр
ax
и загружаем его в регистр данныхds
. - Помещаем значение переменной
d
в регистрax
. - Добавляем 2 к значению регистра
ax
(диаметр головы Василия) и сохраняем результат. - Сравниваем значение в регистре
ax
с переменнойa
(размер форточки). Если значение вax
больше, переходим к меткеNotFit
. - Сравниваем значение в регистре
ax
с переменнойb
(размер форточки). Если значение вax
больше, переходим к меткеNotFit
. - Если голова пролезает, выводим сообщение
Prolezet
и завершаем программу. - Если голова не пролезает, выводим сообщение
Ne prolezet
. - Завершаем программу, возвращая управление операционной системе.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д