Лабораторые работы / Методуказ к лаб 3- Орг-я ЭВМ
.docМетодические указания к выполнению лабораторной работы 3
Тема: Работа в среде отладчика TD.exe с исполняемым файлом учебной программы на языке Ассемблер для IBM PC.
Аппаратно-программное обеспечение работы: IBM PC - совместимый компьютер, ОС WINDOWS с эмуляцией MS DOS или ОС MS DOS, программа-отладчик td.exe, исполняемый файл учебной программы a1.exe.
-
Подготовка к работе.
1.1. Получить вариант для введения изменений в программу a1.exe/
1.2. Повторить по установочной лекции, темам Учебного пособия / 1/ и лекциям 5 и 6:
-
Сегментацию памяти для процессоров IBM PC – тема 3 /1/.
-
Регистры данных и адресов: имена, разрядность, назначение - тема 3 /1/..
-
Типы сегментов памяти, адресацию сегментов и элементов в них - тема 3 /1/.
-
Взаимосвязь между типами сегментов и адресными регистрами тема - 3 /1/..
-
Способы адресации операндов в командах языка Assembler - тема 5 /1/.
-
Основные команды языка Assembler для IBM PC - тема 6 /1/.
1.3. Повторить Инструкцию по работе с программой – отладчиком TD (см. файл с тем же именем).
-
Порядок выполнения работы:
-
Запустите отладчик TD (файл td.exe) с загрузкой в его память учебной программы a1.exe. Можно запустить отладчик TD (td.exe) из MS DOS или WINDOWS, не загружая файл a1.exe, но в этом случае в меню уже запущенной программы td.exe надо через опцию OPEN найти и открыть a1.exe
-
Перепишите или распечатайте текст программы до введения изменений. Ввести изменения на языке Ассемблера в текст программы a1.exe, отображаемой в окне CPU отладчика TD.exe. Помните, чтоизмененные коды могут «забивать» используемые ячейки exe-файла, поэтому придется это учитывать и возвращать «забитые » команды вслед за измененными и т.д.
-
Отладить программу с введенными изменениями, используя свой опыт, приобретенный на лаб. работах 1и 2.
-
Составить отчет.
3. Содержание отчета:
3.1.Тема и номер лаб. работы.
3.2. Номер варианта и текст исполняемой учебной программы на языке Ассемблер.
3.3. Экран программы в последнем цикле после исполнения команды, предшествующей команде возврата на начало цикла.
3.4.Структурная перационная и блочная схема алгоритма исполнения 11-той (одиннадцатой) команды.
-
Варианты заданий на лаб. работу.
ТАБЛИЦА Варианты для введения изменений в учебную программу.
-
1
Элемент исходного массива имеет формат слова суммируется с константой, если она отрицательна.
2
Сохранить массив результата в стеке и . Организовать цикл без использования команды LOOP
3
Выполнять вычитание из константы элемента исходного массива и вместо регистра ВХ использовать другой допустимый регистр.
4
Увеличить размер исходного массива байт на 2: добавить в сегмент данных две константы с числовыми значениями 5 и 12 и Выполнять вычитание из константы элемента исходного массива, если константа содержит четное число единиц в b –коде.
5
Вместо третьей команды sub ax,ax использовать другую, дающую тот же результат и вместо регистра ВХ использовать другой допустимый регистр.
6
Элемент исходного массива суммируется с константой, если она имеет четный адрес и Размер исходного массива сделать равным 10 байт.
7
Вместо команд LEA и inc di использовать другие, дающие те же результаты и Увеличение адреса текущего элемента исходного массива реализовать другим способом.
8
Если константа равна элементу исходного массива, то выполнять сложение, иначе – не выполнять и Размер исходного массива сделать равным 6 слов.
9
Если результат команды add получился отрицательным, его в памяти. не сохранять. и Для организации цикла использовать команду условной передачи управления
10
Сложить константу с элементом исходного массива и вместо регистра ВХ использовать другой допустимый регистр
11
Создать программу не циклическую, а линейную с размером исходного массива 3 байта, для чего использовать прямую адресацию элементов исходного массива.
12
Сравнить константу с элементом массива и, если они не равны, выполнить сложение и Перебор элементов исходного массива реализовать другим способом.
13
. Сохранить массив результата в стеке
14
Организовать цикл без использования команды LOOP.
15
Если константа неравна элементу исходного массива, то выполнять сложение, иначе – не выполнять.
16
Константа вычитается из элемента исходного массива, а не суммируется, если она имеет четный адрес
17
Размер исходного массива байт уменьшить на 1 байт и Вместо команд inc использовать другие, дающие те же результаты.
18
Создать программу циклическую, с размером исходного массива 3 слова.,
19
Если константа не равна элементу исходного массива, то выполнять сложение, иначе – вычитание.
20
Если результат команды add получился отрицательным, его в памяти. не сохранять
Литература:
-
Архитектура и программирование реального режима микропроцессоров фирмы Intel: Уч. пособие /Сост. Т.К.Щемелева; Перм. техн. ун-т. Пермь,2001. 96 c.
-
Абель П. Язык ассемблера для IBM PC и программирования. – М.: Высш. шк., 1992. 447 с.
