Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Описание лабораторных 1_6.doc
Скачиваний:
7
Добавлен:
19.11.2018
Размер:
192.51 Кб
Скачать
  1. вывести дамп для записанных адресов памяти и найти соответствующие коды в ячейках;

  2. запустить программу на исполнение, посмотреть результат ее выполнения;

  3. начиная с адреса CS:200, ввести непосредственно в ячейки ОЗУ коды команд программы, записанные по п. 3, заменив при этом код символа 41H на 34H;

  4. запустить вторую программу и сравнить результат с полученным ранее по п. 5;

  5. с помощью команды отладчика сравнить две области памяти с введенными программами. Результат сравнения записать в тетрадь;

  6. вычислить длину программы, записанную в п.8, с помощью команды Н (Hexarith­metic).

  7. сохранить программу, выполненную в п.8;

  8. проверить результат записи программы (путь файла, имя файла, размер) в любом из проводников операционной системы;

  9. самостоятельно составить программу, которая выполняет решение следующего выражения: 795-(293+147). Данные представлены в десятичном виде, т.е. необходимо самостоятельно перевести данные в шестнадцатеричную систему). Результат поместить в регистр ВХ. Программу сохранить на диске.

  10. выйти из программы-отладчика в среду MS-DOS;

  11. Выключить компьютер.

Оборудование и программное обеспечение

  • IBM - совместимый персональные компьютеры (Pentium II и выше);

  • операционная система Windows 98 и выше;

  • манипулятор "мышь".

Замечание. Изучать среду DEBUG и работать в среде можно практически на любом IBM PC от 80286 и выше с Windows и без нее в операционной системе MS-DOS. В этом случае не гарантируется правильность результатов выполнения некоторых пунктов заданий в лабораторных работах.

Методические указания

  1. В создаваемых программах при выводе на экран символьной информации с помощью функции-прерывания MS-DOS INT 10 (п. 3) следует учитывать, что каждое обращение к этой функции сопровождается выводом символа, код которого помещен в регистр АХ, и перемещением курсора в следующую позицию.

  2. При запуске программы на исполнение из отладчика в команде запуска всегда необходимо учитывать начальный адрес размещенной в памяти программы. Так для программ из п.п. 3 и 8 начальные адреса в команде запуска будут различными.

  3. При сохранении программы на диске в регистре СХ хранится размер программы в байтах. Он будет равен разности конечного и начального смещений.

  4. Регистры DS, ES, SS и CS содержат один и тот же адрес сегмента. Это потому, что DEBUG рассматривает весь введенный код как программу .СОМ, хранящую данные, стек и код в одном сегменте. При написании программы .ЕХЕ стек, данные и код хранятся в отдельных сегментах с разными адресами.

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

  1. Какие команды отладчика служат для ввода программы в кодах и на языке ассемблера? Записать формат этих команд.

  2. Начиная с какого адреса в памяти по умолчанию размещается набираемая программа?

  3. Как запустить из памяти на исполнение программу с начальным относительным адресом 0580?

  4. Предположим, введена такая команда DEBUG:

Е CS:100 B8 45 01 05 25 00

Значение 45 на самом деле должно было быть 54. Укажите команду, изменяющую только этот байт, которая исправляет сделанную ошибку.

  1. Каково назначение инструкции INT?

ЛАБОРАТОРНАЯ РАБОТА №6

Работа с видеопамятью

Цели работы:

  • получить навыки в работе с текстовым дисплейным буфером памяти;

  • изучение возможностей базовой системы ввода-вывода при выводе текстовой информации на экран монитора.

Задание и порядок выполнения работы

При подготовке к работе необходимо:

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

  2. ответить на контрольные вопросы;

  3. в тетради для лабораторных работ заготовить отчет по лабораторной работе, в который предварительно занести название и цели работы, требуемые для выполнения теоретические данные, записи команд и последователь­ность действий в соответствии с заданием.

В лаборатории:

  1. по указанию преподавателя включить компьютер и загрузить операционную систему Windows;

  2. войти в виртуальный реальный режим MS-DOS Prompt и запустить отладчик DEBUG;

  3. просмотреть дамп памяти по адресу B800:0000. Объяснить наличие за каждым символом в этой области байта атрибутов 07Н (см. Приложение 4).

  4. заполнить область памяти, являющуюся текстовым дисплейным буфером, следующей командой:

F B800:0000 L1000 41 05 41 15 41 85

(здесь 41H - код символа на экране, 05H, 15H, 85H - коды признаков символа: 1-я тетрада – цвет фона, 2-я – цвет символа).

Результат записать в тетрадь.

  1. для иллюстрации работы команды, записанной в п. 11, выполнить ее отдельно в следующем порядке:

F B800:0000 L1000 20 07 ; очистка экрана (пробел, черный фон)

F B800:0900 L0C 50 15 72 50 69 20 6d 85 65 35 72 40

  1. Результаты действия записать в тетрадь;

  2. Написать команды для вывода пяти символов «сердца» (код 03) в текстовом режиме ярко-зеленым цветом на белом фоне.

  3. Вывести на экран символ «Д», используя функцию BIOS через прерывание INT 10H.

MOV AH, 02 ; системная функция 02 –

вывод символа на экран

MOV DL, 84 ; ASCII-код буквы "Д"

INT 21H ; прерывание для вывода "Д"

INT 20H ; выход из программы.

  1. Вывести на экран символы, составляющие ваше имя (см. Приложение 1), воспользовавшись следующими командами п.7.

  2. Написать программу для очистки экрана. Начальное значение строки и столбца заносится в регистр DX, цвет фона и символов 07 – в регистр BH, 0600H - в AX.

MOV AX,0600H ;AH 06 (прокрутка), AL 00 (весь экран)

MOV BH,07 ;Нормальный атрибут (черно/белый)

MOV CX,0000 ;Верхняя левая позиция

MOV DX,184FH ;Нижняя правая позиция

INT 10H ;Передача управления в BIOS

  1. Используя данные лабораторной работы №3 (о состоянии оборудования), объяснить число нижней правой позиции экрана (184FH).

  2. Самостоятельно очистить экран, выбрав другие цвета фона и символов (Приложение 4).

  3. Программа, приведенная ниже, использует команду INT 10Н для установки графического режима, выбора зеленого фона и вывода на экран точек (40 строк по 320 столбцов). В программе происходит увеличение значения цвета на 1 для каждой строки. Так как в определении цвета участвуют только три правых бита, цвета повторяются через каждые семь строк.

MOV AH,00 ;Устан. режима графики

MOV AL,0DH для EGA (CGA=04)

INT 10H

MOV AH,0BH ;Установить палитру

MOV BH,00 ;Фон

MOV BL,02 ;Зеленый

INT 10H

MOV BX,00 ;Начальные цвет,

MOV CX,00 ;столбец

MOV DX,00 ;и строка

A50: MOV AH,0CH ;Функция вывода точки

MOV AL,BL ;Установить цвет

INT 10H ;BХ, СХ и DХ сохраняются

INC CX ;Увеличить столбец

CMP CX,320 ;Столбец 320?

JNE A50 ;Нет - цикл,

MOV CX,00 ;Да - сбросить

INC BL ;Изменить цвет

INC DX ;Увеличить строку

CMP DX,40 ;Строка 40?

JNE A50 ;Нет - цикл,

RET ;Да - завершить