КАТЕГОРИИ: Архитектура-(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) |
Команда сравнения
Циклические и разветвляющиеся программы Mov es,ax Mov ax,seg pole Code Pole dw 5 Data Пример записи формулы Запись программ на языке ассемблера Ниже приведена типичная структура простой программы на ассемблере. . data;директива начала сегмента данных · d1 dw 34h · d2 db 10100110b · d3 dd 3 dup (?) .code start: mov ax,data; Загрузить адрес mov ds,ax; сегмента данных . .; текст программы quit: mov ax,4c00h; Код завершения 0 int 21h; Выход в DOS end start Загрузка адреса сегмента данных состоит из двух команд, так как непосредственные данные нельзя заносить прямо в сегментный регистр. Для завершения программы и выхода в DOS имеется несколько возможностей, рекомендуется использовать две команды, начинающиеся с метки quit. Вычислить Х = 3А + (В + 5) / 2 – С – 1, где А, В, С, Х- целые знаковые числа занимающие слово, написать программу реализующую данную формулу. Распишем формулу по отдельным операциям: · АХ ← А; значение А в регистре АХ АХ ← 2 *(АХ); 2А в АХ АХ ← (АХ) + А; 3А в АХ ВХ ← В; В в ВХ ВХ ← 5 + (ВХ); В+5 в ВХ ВХ ← (ВХ) / 2; (В+5) / 2 в ВХ АХ ← (BX) + (AX); 3А+(В+5) / 2 в АХ АХ ← (АХ) – С; 3А+(В+5) / 2 – С в АХ АХ ← (АХ) -1; 3А+(В+5)/2 – С – 1 в АХ Х ← (АХ); 3А+(В+5)/2 – С – 1 в Х Ниже приведена типичная структура простой программы на ассемблере. Текст программы: .model small .data · a dw 10 · b dw 20 · c dw 5 · x dw? .stack 100h . code · start: mov ax, @data; загрузить адрес · mov dx, ax; сегмента данных · mov ax, a · sal ax, 1 · add ax, a · mov bx, b · add bx, 5 · sar bx, 1 · add ax, bx · sub ax, c · dec ax · mov x, ax; запись результата в память · quit: mov ax, 4c00h; код завершения 0 · int 21; выход в dos · end start Варианты заданий Разработать программу реализующую указанную формулу, исполнить программу с несколькими (три – четыре) наборами исходных данных, проверить правильность результатов.
1. Х= А – 5 (В – 2С) + 2 2. Х= - 4А + (В + С) / 4 + 2 3. Х= 7А – 2В – 100 + С 4. Х= - А / 2 + 4 (В + 1) + 3С 5. Х= 5 (А – В) – 2С + 5 6. Х= (А/ 2 + В) / 4 + С – 1 7. Х= - (С + 2А + 4В + В) 8. Х= 6С + (В – С + 1) / 2 9. Х= 2 – В (А + В) + С / 4 10. Х= 2В – 1 + 4 (А – 3С) 11. Х= (2А + В) / 4 – С / 2 + 168 12. Х= 6 (А – 2В + С / 4) + 10 13. Х= 5 (А – В) + С mod 4 14. Х= - (5 – (С + 2А) * 4В + 38) 15. Х= А – 3 (А + В) + С mod 4 16. Х= 3(А – 2В) +50 – С / 2 17. Х= (3А + 2В) – С / 4 + 217 18. Х= 3(С – 2A) + (В – С + 1) / 2 19. Х= (2А + В) / 4 – С / 2 + 168 20. Х= 6 (А – 2В + С / 4) + 10 21. Х= 3 (А – 4В) + С / 4 22. Х= - (- (С + 2А) * 5В – 27) 23. Х= А / 2 – 3 (А + В) + С * 4 24. Х= 3(А – 2В) +50 – С / 2 25. Х= 5А + 2В – B / 4 + 131 Оператор получения смещения выражения offset позволяет получить значение смещения выражения в байтах относительно начала того сегмента, в котором выражение пределено … … mov dx,offset pole;теперь в паре es:dx полный адрес pole Команда передачи, управления служит для передачи управления инструкции, не следующей непосредственно за данной. Управление может передаваться как внутри текущего сегмента кода (внутрисегментная передача управления), так и за его пределы (межсегментная передача управления). Тип передачи управления может быть задан ассемблеру предшествующим адресу перехода ключевым словом NEAR (внутрисегментная) или FAR (межсегментная).
Дата добавления: 2014-10-15; Просмотров: 592; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |