Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Лабораторная работа №9 Использование ассемблера в языках высокого уровня
Цель работы: Изучение особенностей построения разноязыковых программ; изучение взаимосвязи разных уровней представления программы.
Порядок выполнения работы 1. Изучить стандартные соглашения о регистрах, соглашения о метках и типах, соглашения о передаче параметров. Изучить процедуры пролога и эпилога. 2. Изучить пример выполнения задания. 3. Разработать алгоритм вычисления выражения из индивидуального задания. 4. Разработать процедуру на языке высокого уровня С++, реализующую вычисление функции из индивидуального задания. 5. Разработать процедуру вычисления функции на языке ассемблера, используя встроенные средства языка С++. 6. Разработать отдельную процедуру вычисления функции на языке ассемблера и подключить её к проекту на языке С++. 7. Провести тестирование всех разработанных в пп.4-6 процедур. 8. Выполнить анализ реализованных процедур вычисления заданной функции по быстродействию, для чего разработать соответствующую главную функцию на языке С++. Все данные между главной функцией из пункта 8 и разработанными в пунктах 4-6 процедурами обязательно должны передаваться списком параметров. 9. Составить отчет.
Пример выполнения задания a+b.
Текст процедуры на языке языке C++ short sumC(short p1, short p2) { return (p1 + p2); }
Текст процедуры на языке языке C++ с ассемблерной вставкой short sumCA(short p1, short p2) { _asm { mov ax, p1; add p2, ax } return p2; }
Текст процедуры на языке ассемблер .586 .MODEL SMALL, C .CODE sumA PROC C p1:word, p2:word; mov ax, p1; mov bx, p2; add ax, bx ret sumA ENDP
Пример работы программы для анализа времени выполнения процедур представлены на рисунке 3. Приведенные выше тексты соответствуют 2, 4, 5 строкам вывода.
Рисунок 3. Пример работы программы оценивающей время выполнения приведённых выше процедур
Содержание отчета 1. Текст задачи 2. Схема алгоритма решения задачи 3. Тексты всех разработанных в пп. 4-6,8 модулей 4. Тесты 6. Вывод, содержащий анализ быстродействия проведенный в п.8
Варианты индивидуальных заданий 1. (2*c – d + 23) / (a/4 – 1) 2. (c + 4*d – 123) / (1 – a/2) 3. (-2*c + d*82) / (a/4 – 1) 4. (2*c + d – 52) / (a/4 + 1) 5. (c/4 – d*62) / (a*a + 1) 6. (-2*c – d + 53) / (a/4 – 1) 7. (2*c – d/4) / (a*a + 1) 8. (2 + c – d*23) / (2*a*a – 1) 9. (2*c – d/3) / (b – a/4) 10. (4*c + d – 1) / (c – a/2) 11. (2*c – d*42) / (c + a – 1) 12. (25/c – d + 2) / (b + a*a – 1) 13. (c – d/2 + 33) / (2*a*a – 1) 14. (4*c – d/2 + 23) / (a*a – 1) 15. (c*d + 23) / (a/2 – 4*d – 1)
Контрольные вопросы 1. Какие существуют формы комбинирования программ на языке высокого уровня с ассемблером? Дайте им характеристику. 2. Процедуры пролога и эпилога. 3. Соглашения о регистрах, соглашения о метках и типах, соглашения о передаче параметров. 4. Возможности встроенных средств С++ для использования языка ассемблера.
|
||
|
Последнее изменение этой страницы: 2024-06-17; просмотров: 58; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.21 (0.005 с.) |