Предмет: Информатика,
автор: dmitro0
Реализация конструкции цикла do while на языке ассемблера. Составьте программу, которая вычисляет сумму чисел от 100 до 200, кратных 7.
MaxikMK:
Вопрос довольно специфический, вряд ли много кто из отвечающих в информатике знает ассемблер.
Ответы
Автор ответа:
3
Немного о полученном коде.
- Так как из реализации на C++ можно узнать, что ответ 2107 - очевидно, ответ не помещается в 2 байта, поэтому будет хранить его в двух регистрах: R1 и R2, соответственно старшие и младшие байты.
- Сначала делим текущее значение числа k на 7 (команда DIV AB), если остаток нулевой, добавляем к младшим байтам текущее число и при наличии бита переноса увеличиваем старшие байты.
- После этого проверяем, не равно ли текущее значение двумстам, если это так - завершаем программу, иначе увеличиваем это значение и возвращаемся в начало "цикла".
В приложении смотри:
- непосредственно код программы на Ассемблере (37783247.asm.txt),
- скриншот кода на Ассемблере и значения, хранящиеся в регистрах в результате выполнения,
- соответствующий код на плюсах и результат выполнения,
- на засыпку, результат конвертации числа 2107 из десятичной в 16-чную систему :)
Приложения:
Похожие вопросы
Предмет: Русский язык,
автор: apoloh2010
Предмет: Русский язык,
автор: sapiyt
Предмет: Русский язык,
автор: yanakuleshova
Предмет: ОБЖ,
автор: vasilina090214