Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
МЕТОДИЧЕСКИЕ УКАЗАНИЯ ПО ПРОВЕДЕНИЮ
Лабораторных работ
по дисциплине _ 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.
Здесь детализированы функции INT 10H стандартного видеосервиса ROM-BIOS. AH = 00H Установка видеорежима. Вход: AL = видеорежим
Функции 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; Нарушение авторского права страницы