Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


МЕТОДИЧЕСКИЕ УКАЗАНИЯ ПО ПРОВЕДЕНИЮ



Лабораторных работ

 

по дисциплине _ 27379 «ЭВМ и периферийные устройства»

Рекомендуется для направления

230100 «Системы автоматизированного проектирования»

 

 

Обсуждены на заседании кафедры

(предметно-методической секции)

«17» сентября 2013__г.

Протокол № 2

 

 

МГУПИ -2013г.


Общие положения

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

№1. Программирование операций ввода-вывода для стандартных устройств

№2. Программирование операций создания файла и работы с ним

 

По каждой работе студент получает следующие материалы:

· задание на лабораторную работу

· методические рекомендации по выполнению работы

· описание основного теоретического материала для выполнения лабораторной работы

· список рекомендованной литературы

 

Студент должен подготовиться к выполнению работы самостоятельно.

 

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

 

После успешного выполнения работы студент защищает полученные результаты работы и предоставляет письменный отчёт.

 

Преподаватель оценивает результат выполнения работы по пятибалльной системе.

 

 

3. Рекомендуемая литература для подготовки к лабораторным работам:

 

1. Э.Тененбаум. Архитектура компьютера. Питер, 2006 г.

 

2. В.Л.Бройдо, О.П.Ильина. Архитектура ЭВМ и систем. Питер, 2006 г.

 

3. Покровская Н.В. Методические указания по выполнению лабораторных работ по дисциплине «ЭВМ и периферийные устройства». 2013 г.

4. Порядок выполнения работы:

 

1. Установить на ПК систему программирования на языке Ассемблера (выдается преподавателем)

2. Ввести текст программы в любом текстовом редакторе, например, Блокнот и сохранить его в папке с Ассемблером в файле с типом ASM – исходный файл. Для разработки текста программы использовать справочный материал, представленный ниже.

3. Выполнить трансляцию исходного файла с помощью программы TASM – получить объектный файл типа.OBJ

4. Выполнить редактирование объектного файла с помощью программы TLINK – получить исполняемый файл типа EXE.

5. Выполнить исполняемый файл

6. Для автоматизации процедуры «трансляция – редактирование – выполнение» разработать пакетный файл с параметром.

7. Для отладки и контроля хода выполнения программы уметь использовать отладчик TD.EXE (Turbo Debugger).

 

5. Порядок сдачи лабораторной работы:

 

1. Представить преподавателю следующие материалы:

a. работоспособный текст программы на языке Ассемблера

b. пакетный файл для трансляции – редактирования – выполнения программы

c. отчёт по программе со скрин-шотами текста программы и окна отладчика

2. Уметь отвечать на вопросы по программе и отладчику, в т.ч. уметь заменять использованные в программе функции на другие, предложенные преподавателем.


Основной теоретический материал для выполнения лабораторных работ

Общий формат команды Ассемблера

 

[Метка: ] Код_операции [Операнд1 [, Операнд2] ] [; Комментарий ]

 

Адреса памяти в командах м.б. записаны так:

· А

· А[М]

· А[М1] [М2]

Где А – адрес, М – регистр ВХ, ВР, M2 - регистр SI или DI. В случае 2 и 3 компонента А может отсутствовать (т.е. А=0).

 

Примеры:

Mov Ax, Si

 

Mov Bh, 5

Mov Di, Size X

 

Mov X, Ah

Mov X[Bx][Di], 5

Mov [Bx], Cl

 

Mov Ah, 5

Mov Ax, 5

Mov [Bx], 300

 

Mov Ds, Ax

Mov Cx, Bh

Mov Dl, 300

 

Mov [Bx], 5 - Некорректный вариант - Не Определён Тип Операнда

Mov Byte Ptr [Bx], 5 - корректный вариант

Mov Word Ptr [Bx], 5 - корректный вариант

 

X Dw 999

Mov Ah, X

Mov Ah, Byte Ptr X

 

Mov Ax, 80h

Mov Ax, -128; 0ff80h

Mov Ax, 128; 0080h

Mov Ax, 80h; 0080h

 

 


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

Модуль программы на языке ассемблера состоит из сегментов следующих типов:

- сегмент кода

- сегмент данных

- сегмент стека

- расширенный сегмент

 

Assume CS: Code, DS: Data

 

Code SEGMENT

org 100h

Start: …; точка входа в программу

Code ENDS

 

Data Segment

….

Data ENDS

 

END Start

 

 

Dt1 Segment

A Db 0

B Dw?

Dt1 Ends

;

Dt2 Segment

C Db ‘Hallo’

Dt2 Ends

;

Code Segment

Assume Cs: Code, Ds: Dt1, Es: Dt2

Beg: Mov Ax, Dt2

Mov Ds, Ax

Mov Bh, C

Code Ends

End Beg

 

В простейшей программе может быть всего один сегмент - кодовый, тогда необходимо в директиве Assume указать его использование и для адресации данных, а также загрузить в регистр ds его фактический адрес.

Assume CS: Code, DS: Code

 

Code SEGMENT

org 100h

Start: mov ax, cs

mov ds, ax

 

 


Функции BIOS

Функции BIOS – это функции, вызываемые по команде INT с номерами в диапазоне от 0 до 20h для обработки различных событий в ЭВМ. Детализация вызываемого сервиса обычно вводится в регистре АН.

 

Int 10H: Видео сервис

Ниже приведен перечень функций видеосервиса, предоставляемых подпрограммами BIOS. Номер функции определяется значением регистра АН при вызове int 10.

 

  Глава I. Функция
00h Установить видеорежим
01h Установить размер и форму курсора
02h Установить позицию курсора
03h Читать позицию курсора
04h Читать световое перо
05h Выбрать активную страницу дисплея
06h Скроллинг окна вверх (или очистка его)
07h Скроллинг окна вниз (или очистка его)
08h Читать символ/атрибут
09h Вывести символ/атрибут
0ah Вывести символ
0bh Выбрать палитру/цвет рамки
0ch Вывести графическую точку
0dh Читать графическую точку
0fh Вывести символ в режиме TTY
10h Читать видео режим
   

 

Здесь детализированы функции INT 10H стандартного видеосервиса ROM-BIOS.

AH = 00H Установка видеорежима.

Вход: AL = видеорежим

AL Тип Формат Цветов
текст 40 х 25 16/8
текст 40 х 25 16/8
текст 80 х 25 16/8
текст 80 х 25 16/8
графика 320 х 200
графика 320 х 200
графика 640 х 200
текст 80 х 25
0dh графика 320 х 200
0eh графика 640 х 200
0fh графика 640 х 350

 

 

Функции OS

 

 

Функции OS - это функции, выполняемые при вызове прерывания int 21h с обозначением функции в регистре AH и подфункции (если это необходимо) в регистре AL.

Ввод-вывод текстовых данных

Функция 01h: Ввод с клавиатуры

Вход AH = 01h

Выход AL = символ, полученный из устройства стандартного ввода

Описание: Считывает (ожидает) символ со стандартного устройства ввода. Отображает этот символ на стандартное устройство вывода (эхо). При распознавании Ctrl-Break выполняется int 23h.

Замечание: Ввод расширенных клавиш ASCII (F1-F12, PgUp, курсор и т. п.) требует двух обращений к этой функции. Первый вызов возвращает AL = 0. Второй вызов возвращает в AL расширенный код ASCII.

 

Функция 02h: Вывод на дисплей

Вход AH = 02h

DL = символ, выводимый на устройство стандартного вывода

Описание: Посылает символ из DL на устройство стандартного вывода. Обрабатывает символ Backspace (ASCII 8), перемещая курсор влево на одну позицию и оставляя его в новой позиции. При обнаружении Ctrl-Break выполняется int 23h.

Функция 09h: Вывести строку на дисплей

Вход AH = 09h

DS: DX = адрес строки, заканчивающейся символом '$' (ASCII 24h)

Описание: Строка, исключая завершающий ее символ '$', посылается на устройство стандартного вывода. Символы Backspace обрабатываются как в функции 02h. Обычно, чтобы перейти на новую строку, включают в текст пару CR/LF (ASCII 13h и ASCII 0ah).

 

Функция 0ah: Ввод строки с клавиатуры в буфер

Вход AH = 0ah

DS: DX = адрес входного буфера (смотри ниже)

Выход Буфер содержит ввод, заканчивающийся символом CR (ASCII 0dh)

Описание: При обращении буфер по адресу DS: DX должен содержать значение максимально допустимой длины ввода. На выходе функции в следующем байте содержится действительная длина ввода, затем введенный текст, завершающийся символом возврата каретки (0dh). Символы считываются с устройства стандартного ввода вплоть до CR (ASCII 0dh) или до достижения длины MAX-1. Если достигнут MAX-1, включается консольный звонок для каждого очередного символа, пока не будет введен возврат каретки CR (нажатие Enter). Второй байт буфера заполняется действительной длиной введенной строки, не считая завершающего CR. Последний символ в буфере - всегда CR (не засчитан в байте длины). Символы в буфере (включая LEN) в момент вызова используются как " шаблон". В процессе ввода действительны обычные клавиши редактирования: Esc выдает " \" и начинает с начала, F3 выдает буфер до конца шаблона, F5 выдает " @" и сохраняет текущую строку как шаблон, и т. д. Большинство расширенных кодов ASCII игнорируются. При распознавании Ctrl-Break выполняется прерывание int 23h (буфер остается неизменным).

 

Завершение программы

 


Поделиться:



Популярное:

Последнее изменение этой страницы: 2016-08-31; Просмотров: 425; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.031 с.)
Главная | Случайная страница | Обратная связь