Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
___МЕТОДИЧКИ_2013 / __3_TD_Копытов.doc
Скачиваний:
29
Добавлен:
15.03.2016
Размер:
115.71 Кб
Скачать

2 Задание к лабораторной работе

2.1 Чтение и запись в порт В (с адресом 0061) программируемого периферийного адаптера (ППА) I8255.

Хотя уже давно программируемые контроллеры, которые использовались в первых компьютерах IBM PC в виде отдельных микросхем, интегрированы в состав БИС чипсета, для пользователя адреса их портов остались первоначальными.

2.1.1 Прочитать содержимое порта 61h. Для этого воспользоваться командой I/O > и In byte локального меню подокна кода. В верхней части появившегося окна будет подсказка, что нужно ввести номер порта в шестнадцатиричном виде. После выполнения команды на экране появится окно с десятичными и шестнадцатиричными значениями номера порта и его содержимого.

2.1.2 Последовательно записать в порт 61h значения 33h, 30h и 33h. Для этого воспользоваться командой I/O > и Out byte локального меню подокна кода. В верхней части появившегося окна будет подсказка, что нужно ввести номер порта и через запятую значение для вывода. Результат будет услышан: включится динамик. Для его выключения необходимо записать в порт 61h число 30h.

2.2 Определение даты BIOS компьютера.

«Заглянуть» в ПЗУ BIOS по физическому адресу FFFF516, чтобы определить дату BIOS компьютера. Используя команду Goto локального меню подокна данных, индицировать область оперативной памяти BIOS с адреса FFFF:5. Обратите внимание, что при вводе число должно начинаться с цифры, а не с буквы. То есть правильно указывать логический адрес так 0FFFF:5.

2.3 Определение количества последовательных и параллельных портов и их базовых адресов.

При загрузке компьютера программа BIOS загружает базовые (начальные) адреса основных портов в начало оперативной памяти начиная с физического адреса 102410=40016 (логический адрес 40:0).

Используя команду Goto локального меню подокна данных, индицировать область оперативной памяти BIOS с адреса 40:0. Поскольку адреса портов двухбайтовые и принято размещать числа в памяти начиная с младшего байта, то базовый адрес, например, порта СОM2 будет 02F8. Результаты занести в приведенную таблицу.

Адрес памяти

Порт

Базовый адрес порта

40:0

СOM1

40:2

СОM2

02F8

40:4

СOM3

40:6

СOM4

40:8

LPT1

40:A

LPT2

40:C

LPT3

2.4 Модификация и выполнение текущей программы.

2.4.1 Зайти в подокно кода и выделить инструкцию с указателем в виде стрелки. Набрать следующий фрагмент программы, подтверждая ввод каждой новой инструкции нажатием клавиши «Enter»:

MOV AX, 1234

MOV DX, 2345

ADD DX, AX

MOV BX, DX

SUB DX, DX

2.4.2 Выполнить данный фрагмент в режиме трассировки. Для этого выделить цветом первую набранную команду (помеченную стрелкой) и, нажимая клавишу F7, трассировать программу. Обратите внимание, что изменяющиеся значения подсвечиваются белым цветом. Например, в подокне регистров подсвечиваются соответствующие регистры, а после выполнения инструкции «SUB DX, DX» в подокне флагов устанавливаются флаги нулевого результата z и паритета p.

2.5 Создание нового файла с произвольным содержимым.

2.5.1 Войти в подокно данных. Выделить первый байт и набрать 16 чисел: 00h, 11h, 22h, 33h, 44h, 55h, 66h, 77h, 88h, 99h, 0AAh, 0BBh, 0CCh, 0DDh, 0EEh, 0FFh.

2.5.2 Записать данную комбинацию в файл PPSU.DAT. Для этого вызвать команду Block локального меню и ее подкоманду Write.

2.5.3 Ввести название файла PPSU.DAT <Enter>.

2.5.4 Указать начальный шестнадцатиричный адрес блока и после запятой его размер.

2.5.5 Выйти в Windows и проверить наличие записанного файла и его размер. Учтите, что файл с произвольным содержимым можно полностью просмотреть, используя шестнадцатиричные редакторы. Текстовые редакторы отобразят только коды, имеющие символьное представление.

2.6 Создание исполняемой программы и выполнение ее под управлением отладчика.

2.6.1 Получить у преподавателя вариант текста исходной программы на ассемблере.

2.6.2 С помощью Турбо Ассемблера (TASM) получить объектный файл и листинг программы. При наличии синтаксических ошибок исправить их. В командную строку TASM поместить опцию /zi, включающую в объектный файл информацию об оригинальных идентификаторах программы для отладки.

2.6.3 С помощью редактора связей TLINK получить исполняемый файл программы.

2.6.4 Запустить программу и убедиться в ее работоспособности или неработоспособности.

2.6.5 Распечатать листинг программы.

2.6.6. Запустить Турбо Отладчик (TD). С помощью опции верхнего меню File и подопции Open загрузить в отладчик свою исполняемую программу.

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

При наличии в программе длительных циклов или подпрограмм может потребоваться относительно большое число шагов. Для быстрого выполнения таких участков программы выделите цветом команду после участка и нажмите клавишу F4. Участок программы выполнится до выделенной команды.

2.6.8 Важным преимуществом оконного отладчика Turbo Debugger по сравнению со строковым отладчиком Debug.exe является использование отдельных окон для отладки и для вывода программы пользователя.

Зайти в верхнее меню, выбрать опцию Window, а в ней подопцию User screen. На экране должно появиться окно с выводом пользовательской программы. Для выхода в окно отладки нажать любую клавишу.

2.6.9. Продолжить трассировку программы с периодическим просмотром окна пользователя. Если в программе были логические ошибки, попытаться их обнаружить. Если ошибки найдены, нужно заново отредактировать текст программы, выполнить ее ассемблирование и связывание.

Соседние файлы в папке ___МЕТОДИЧКИ_2013