Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Методические указания. Алгоритмическая структура, приведенная на рис




Алгоритмическая структура, приведенная на рис. 6, используется при программировании на языках высокого уровня. Однако в языке ассемблера, во-первых, возможны только два признака ветвления – содержимое регистра условия Rус нулевое (выполняются операции одной ветви) или ненулевое (выполняются операции другой ветви). Для формирования этих признаков требуются дополнительные логические и/или сервисные операции, что должно быть отражено в алгоритмической структуре (рис. 7).

 

При этом для одного и того же исходного условия признаки ветвления могут быть получены разными способами. Например:

1. В случае отношений а ³ 0 либо а < 0 помимо команд сравнения (обсуждаются ниже) можно использовать знак числа (значение 31-го двоичного разряда). Для его выделения пригодны конъюнкция (команда AND) с числом 80000000h, выделение области из одного старшего бита (команда EXT или EXTU), сдвиг вправо на 31 разряд (команда SHR или SHRU), обнуление 31 младших разрядов (команда CLR).

2. Для определения четности числа можно использовать его конъюнкцию с числом 00000001h, выделение области из одного младшего бита, сдвиг влево на 31 разряд, обнуление 31 старших разрядов.

Указанная множественность решений отражена в разделе «Способ формирования содержимого регистра условия Rус» таблицы задания, где для одного и того же условия в зависимости от варианта предлагаются различные команды его реализации.

Во-вторых, команды сравнения ассемблера реализуют только строгие отношения: а < b, a > b и a = b. Поэтому в случае условий a £ b, a ³ b и a ¹ b следует использовать альтернативные условия: a > b, а < b и a = b, соответственно. При этом признаки выполнения ветвей «Да» и «Нет» блока ветвления меняются местами. Например, некоторая операция должна выполняться, только если a £ b (признак «Да»). При использовании условия a > b заданная операция должна выполняться только в случае его нарушения, то есть признак «Да» заменяется признаком «Нет» и наоборот.

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

Обобщенное решение представленного задания:

Пример обобщенных алгоритма и программы (без указания конкретных данных) приведен на рис. 8.

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

Примечание: при выполнении некоторых команд ассемблера происходит дополнение старших разрядов знаком и если число отрицательное в этих разрядах появятся единицы, что может привести к неверному результату.

Контрольные вопросы

1. Укажите регистры РОН, допустимые для использования в качестве регистра условия.

2. Сформулируйте особенности реализации нестрогих отношений в условии ветвления.

3. Поясните общие принципы организации ветвлений при программировании на языке ассемблера.

4. С пояснениями приведите примеры поля условия строки ассемблера.

5. Приведите формат логической команды, заданной преподавателем.

6. Приведите формат сервисной команды, заданной преподавателем.

7. Определите результат выполнения логической команды, заданной преподавателем.

8. Определите результат выполнения сервисной команды, заданной преподавателем.

9. Приведите программную реализацию ветвления по любому другому варианту.

 

 




Поделиться с друзьями:


Дата добавления: 2014-11-18; Просмотров: 421; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.009 сек.