ЛАБОРАТОРНАЯ РАБОТА №10 Оптимизация исполняемого кода с помощью ассемблера

Цель: изучение возможностей оптимизации исполняемого кода с помощью ассемблера

Задание:

1. Написать на Turbo Pascal 7.0 программу с использованием циклов и массивов вещественного типа. Пример:
var x: single;
a,b: array[1..5] of single;
begin
x := 0;
for i := 1 to 5 do
x := x + a[i] * b[i];
end.

2. Откомпилировать эту программу с ключом N+ - для использования сопроцессора.

3. Нажать Shift+F4 для загрузки автономного отладчика.

4. Просмотреть откомпилированный код в окне CPU отладчика, рекомендуется в режиме “Mixed Yes”, чтобы видеть исходный код на Паскале и соответствующий ему исполняемый код в виде мнемоник аасемблера.

5. Изучив откомпилированный код и записав его, предложить свой вариант более эффективного решения задачи с использованием встроенного ассемблера. В программу включить дополнительно одну команду, по согласованию с преподавателем.

6. Написать, откомпилировать и просмотреть с помощью автономного отладчика откомпилированный код новой программы.

7. Используя выпадающее меню (появляется при нажатии правой кнопки мыши в соответствующем окне) ввести в окно Watch несколько переменных.

8. Открыть окна CPU и Numeric processor.

9. Провести пошаговое выполнение этой программы и оценить ее эффективность по сравнению с исходной. В ходе выполнения обращать внимание на содержимое регистров процессора и детально рассмотреть изменения в регистрах сопроцессора.

10.Детальное описание работы одной из команд ассемблера для сопроцессора включить в отчет.

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

1. Отладчики: определение, назначение, классификация, примеры.

2. Отладчик TD: определение, назначение, использование.

3. Сходство и различие режимов Step Over и Trace Into и особенности их реализации в окнах Module и CPU.

4. Окна Watch, CPU, Numeric processor, Dump, Register. Назначение, использование, особенности меню.

5. Особенности изменения значений данных (переменных, регистров и флагов) в окнах CPU, Numeric processor, Watch и других

7. Возможности оптимизации кода программы с помощью встроенного ассемблера.

ЛАБОРАТОРНАЯ РАБОТА №11 Тестирование и экспертная оценка ПС

Цель: изучить методику тестирования, основные особенности этой методики, изучить тестируемое программное средство и написать краткую инструкцию по работе с ним

Задание:

1. Получить задание у преподавателя на тестирование ПС. Записать название ПС. В данной работе запись обязательна для всех пунктов работы без дополнительных напоминаний, а объем отчета может значительно влиять на оценку. Пункт без информации в отчете считается невыполненным.

2. Изучить назначение, особенности установки, работы ПС, входные и выходные данные. Записать все доступные сведения о разработчиках (фамилии, адреса, организации), времени создания (дата, версия), используемых языках и системах программирования (язык; платформа, название, версия, год выпуска, фирма-разработчик системы программирования), прочая информация.

3. Описать данные системы:

3.1. количество файлов, название и назначение каждого файла,

3.2. структура важнейших файлов,

3.3. описание формата входных данных,

3.4. описание формата выходных данных...

4. Оценить следующие параметры:

4.1. характер интерфейса пользователя,

4.2. быстродействие (указать основные параметры машины),

4.3. совместимость (по данным),

4.4. возможность коллективного использования данных,

4.5. документация (наличие, качество),

4.6. простота установки, освоения, использования,

4.7. надежность, обработка ошибок, защита и восстановление данных,

4.8. политика поддержки,

4.9. качество поддержки,

4.10. адаптивность (указать операционную систему и среду),

4.11. степень соответствия заявленному,

4.12. эффективность,

4.13. максимальные размеры данных.

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

6. Написать краткую методику использования данного ПС.

7. Отчет - обязательно в текстовом файле, не менее 3-х страниц содержательного текста (по 60 строк страница). На двоих - не менее 6 страниц.

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

ЛАБОРАТОРНАЯ РАБОТА №12 Программирование суперскалярных операций

Цель: изучить основы разработки программ для суперскалярных процессоров

Задание:

1. Выбрать задание по варианту.

2. Разработать алгоритм программы.

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

4. Тестирование программы выполнять на процессорах Pentium 3 и старше.

Варианты заданий

Вариант 0 A * B + C + D
Вариант 1 A * (B + C) + D
Вариант 2 A * (B + C + D)
Вариант 3 A * B * C + D
Вариант 4 A * (B * C + D)
Вариант 5 A * B * (C + D)
Вариант 6 A * B + C * D
Вариант 7 A * (B + C) * D
Вариант 8 (A + B) * (C + D)
Вариант 9 A * B * C * D

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

1. Параллельные системы: определение, классификация, примеры.

2. Конвейерные системы: определение, назначение, использование.

3. Кластерные системы: определение, назначение, использование.

Заключение

Методические указания к выполнению лабораторных работ ориентированы на небольшой по объему практический курс, поэтому ориентирован на приобретение навыков работы с наиболее популярными пользовательскими средами. Мы ставили целью рассмотрение таких умений и приемов работы, как научиться определять конфигурацию и компоненты вычислительной системы и их основные параметры; изучить конструктивные особенности системного блока, особенностей материнской платы и особенности сборки-разборки компьютера; изучить параметры и особенности работы периферийного устройства; изучить основные особенности программирования на ассемблере и сравнить с программированием на Паскале; изучить основные особенности программирования на ассемблере процедур. Многие вопросы данного курса предназначены для самостоятельного изучения, а некоторые - для реферативного исследования.

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

Наши рекомендации