|
|
|
|
|
|
|
|
Окончание таблицы |
|
|
|
|
|
||||||
№ |
Название части |
|
Рассматриваемые вопросы, тип программы, |
||||||
п/п |
|
|
|
|
|
количество модулей и операционная система |
|||
|
|
|
|
|
|
стека). EXE-программа для МП Intel 80386. ОС – |
|||
|
|
|
|
|
|
Windows 95/98/NT. Модель памяти – простая, |
|||
|
|
|
|
|
|
соответствует директиве определения модели па- |
|||
|
|
|
|
|
|
мяти .flat. Режим работы процессора – защищенный |
|||
10 |
Связь с программами на |
Смешанное программирование (связь с програм- |
|||||||
|
языке Pascal; |
ассемблер- |
мами на языке Pascal; встроенный ассемблер; |
||||||
|
ные врезки в программу |
вычисление по формуле: операции двоичной |
|||||||
|
на Pascal’e |
|
|
|
арифметики и логические операции, сдвиги; |
||||
|
|
|
|
|
|
определение данных; логика и организация |
|||
|
|
|
|
|
|
программ – условные и безусловные переходы и |
|||
|
|
|
|
|
|
циклы; вызов процедур; ввод с клавиатуры и вывод |
|||
|
|
|
|
|
|
на экран; использование стека). EXE-программа для |
|||
|
|
|
|
|
|
МП Intel 8086 на языке Pascal с вставками на |
|||
|
|
|
|
|
|
ассемблере. ОС – MS-DOS |
|
|
|
11 |
Связь с программами на |
Смешанное программирование (связь с программа- |
|||||||
|
языке |
C++; |
ассемблер- |
ми на языке С++; ассемблер, встроенный в С++; |
|||||
|
ные врезки в программу |
операции двоичной арифметики и логические опера- |
|||||||
|
на языке C++ |
|
|
|
ции, определение данных, переходы и циклы, вызов |
||||
|
|
|
|
|
|
процедур; ввод с клавиатуры и вывод на экран – |
|||
|
|
|
|
|
|
средствами языка С++; сдвиги – средствами |
|||
|
|
|
|
|
|
ассемблера). Режим работы процессора – реальный. |
|||
|
|
|
|
|
|
EXE-программа для МП Intel 80386. ОС – MS-DOS |
|||
12 |
Программирование |
|
на |
Программирование на ассемблере |
в среде Linux |
||||
|
ассемблере |
в |
среде |
(операции двоичной арифметики и логические |
|||||
|
Linux. Синтаксис AT&T |
операции, сдвиги; ввод с |
клавиатуры и вывод |
||||||
|
|
|
|
|
|
на экран). Синтаксис AT&T. EXE-программа для |
|||
|
|
|
|
|
|
МП Intel 80386. ОС – Linux |
|
|
|
13 |
Резидентные программы |
Разработать резидентную программу или драйвер. |
|||||||
|
и драйверы для MS-DOS |
ОС – MS-DOS |
|
|
|||||
14 |
Работа |
с файлами |
в |
Одновременная работа с несколькими файлами и |
|||||
|
базовой версии MS-DOS |
несколькими |
областями |
DTA. |
(Назначение |
||||
|
и Windows |
|
|
|
программы: |
1) работа с файлами в базовой версии |
|||
|
|
|
|
|
|
MS-DOS – ввод данных, запись в файл (прямой и |
|||
|
|
|
|
|
|
последовательный доступ), чтение из файла (прямой |
|||
|
|
|
|
|
|
и последовательный доступ), одновременная работа |
|||
|
|
|
|
|
|
с несколькими файлами; 2) одновременная работа с |
|||
|
|
|
|
|
|
несколькими |
областями |
DTA; |
3) шифрование; |
|
|
|
|
|
|
4) дешифрация). ЕХЕ-программа (модель памяти – |
|||
|
|
|
|
|
|
компактная или большая). ОС– MS-DOS и Windows |
|||
15 |
Дизассемблирование |
|
Восстановление текста программы по ее |
||||||
|
программ |
|
|
|
загрузочному модулю – COM или EXE. ОС – MS- |
||||
|
|
|
|
|
|
DOS. Дизассемблер IDA Pro |
|
|
|
|
|
|
|
|
|
6 |
|
|
|
В результате использования комплекта пособий студент должен приобрести устойчивые навыки:
•корректного (грамотного) использования директив и команд (непривилегированных и привилегированных) заданного (16или 32разрядного) процессора, эффективно используя его режимы (реальный и защищенный), ограничения и специфические возможности;
•построения программ, использующих различную структуру (в т.ч. содержащих различные и разное количество сегментов и использующих различные модели памяти);
•построения программ, состоящих из нескольких модулей;
•построения EXE- и COM-программ и преобразования EXE-программы
вCOM-программу и COM-программы в EXE-программу;
•смешанного программирования (Pascal и встроенный ассемблер, C++ и встроенный ассемблер);
•программирования приложений, работающих под управлением операционных систем MS-DOS, Windows, Linux и вызывающих функции используемых операционных систем;
•работы с экранным редактором, с Турбоассемблером (tasm.exe), с компоновщиком (tlink.exe и tlink32.exe), с турбопаскалем и компилятором с языка С++;
•работы с листингом (т.е. с файлом .lst), с машинными командами и машинным представлением данных;
•работы с дизассемблером.
1. ПОДГОТОВКА РАБОЧЕГО МЕСТА К ЗАНЯТИЯМ
Рабочее место оборудуется персональным компьютером, на котором для первых шести лабораторных работ достаточно:
•установить операционную систему Windows 95 (или выше: Windows 98, Windows XP Edition, Windows XP Proffetional, Windows 2000 – кроме Windows Millenium);
•установить Far;
•создать папку C:\assebler и поместить в нее все содержимое папки u_m_lab2, т.е. следующие файлы: tasm.exe, tlink.exe, rtm.exe и примеры: lab2apr1.asm, lab2bpr1.asm, lb2_1pr2.asm, lb2_2pr2.asm, lab2and.asm, lab2or.asm, lab2xor.asm, lab2not.asm, lb2_1bnn.asm, lb2_2bnn.asm, l_2_1zal.asm, l_2_2zal.asm, l_2_1kln.asm и l_2_2kln.asm.
7
2.АУДИТОРНОЕ ЗАНЯТИЕ
2.1.Создание и редактирование исходного текста программы, компиляция и выполнение программы
(тренинг под руководством преподавателя)
Демонстрационные примеры приведены в подразделе 6 (примеры 2.1–2.6). Используются преподавателем при проведении лабораторной работы №2 в дисплейном классе и могут использоваться студентами при самостоятельном изучении.
2.1.1.Включение ПК, запуск операционной системы Windows 95,
Windows 98, Windows XP или Windows 2000 (не применять Windows Millenium).
2.1.2.Вызов оболочки (пакета) Far и открытие папки
C:\assembler\u_m_lab2.
2.1.3.Ассемблирование программы lab2apr1.asm, т.е. получение объектного модуля lab2apr1.obj (в командной строке набрать и выполнить команду tasm lab2apr1.asm).
2.1.4.Ассемблирование программы lab2bpr1.asm, т.е. получение объектного модуля lab2bpr1.obj (в командной строке набрать и выполнить команду tasm lab2bpr1.asm).
2.1.5.Компоновка (в командной строке набрать и выполнить команду tlink lab2apr1.obj lab2bpr1.obj) и выполнение (исполнение) полученной программы lab2apr1.exe.
2.1.6.Ассемблирование программы lb2_1pr2.asm, т.е. получение объектного модуля lb2_1pr2.obj (в командной строке набрать и выполнить команду tasm lb2_1pr2.asm).
2.1.7.Ассемблирование программы lb2_2pr2.asm, т.е. получение объектного модуля lb2_2pr2.obj (в командной строке набрать и выполнить команду tasm lb2_2pr2.asm).
2.1.8.Компоновка (в командной строке набрать и выполнить команду tlink lb2_1pr2.obj lb2_2pr2.obj) и выполнение (исполнение) полученной программы lb2_1pr2.exe.
2.1.9.Получение объектного файла lab2and.obj и файла lab2and.exe. Выполнение программы lab2and.exe. На экран должно быть выведено
«4234».
2.1.10.Отредактировать программу таким образом, чтобы на экран полученный результат выводился вместо цифры «2», т.е. «1434».
2.1.11.Получение объектного файла lab2or.obj и файла lab2or.exe.
8
Выполнение программы lab2or.exe. На экран должно быть выведено
«1334».
2.1.12.Отредактировать программу таким образом, чтобы на экран полученный результат выводился вместо цифры «4», т.е. «1233».
2.1.13.Получение объектного файла lab2xor.obj и файла lab2xor.exe. Выполнение программы lab2xor.exe. На экран должно быть выведено
«1244».
2.1.14.Отредактировать программу таким образом, чтобы на экран
полученный результат выводился вместо цифры «2», т.е. «1434».
2.1.15.Получение объектного файла lab2not.obj и файла lab2not.exe. Выполнение программы lab2not.exe. На экран должно быть выведено
«1232».
2.1.16.Отредактировать программу таким образом, чтобы на экран
полученный результат выводился вместо цифры «1», т.е. «2434».
2.1.17.Получение объектных модулей lb2_1bnn.obj и lb2_2bnn.obj компоновка и выполнение программы lb2_1bnn.exe.
2.1.18.Получение объектных модулей l_2_1zal.obj и l_2_2zal.obj, компоновка и выполнение программы l_2_1zal.exe.
2.1.19.Получение объектных модулей l_2_1kln.obj и l_2_2kln.obj, компоновка и выполнение программы l_2_1kln.exe.
2.1.20.Подготовить контрольные примеры для проверки логических операций по форме:
|
|
Таблица 2.1 |
|||
|
|
|
B2 |
|
|
№ п/п |
B1 |
|
|
||
1 |
|
|
|
|
|
2 |
|
|
|
|
|
3 |
|
|
|
|
|
4 |
|
|
|
|
|
2.2. Редактирование, компиляция и выполнение демонстрационных примеров
(под контролем преподавателя)
В папке C:\assebler\u_m_lab2 создать файл l_2_fio.asm, где fio –
инициалы выполняющего работу (первые буквы фамилии, имени и отчества – латинскими буквами).
2.2.1.Связывание модулей (пример 2.1).
2.2.2.Логическая операция И (пример 2.2).
2.2.3.Логическая операция ИЛИ (пример 2.3).
2.2.4.Логическая операция ИСКЛЮЧАЮЩЕЕ ИЛИ (пример 2.4).
2.2.5.Логическая операция НЕ (пример 2.5).
9
2.3. Ассемблирование программы и получение загрузочного файла
2.3.1.Для ассемблирования программы необходимо файлы с программой (то есть файлы l_2_1fio.asm и l_2_2fio.asm) поместить в каталог с ассемблером (то есть с файлом tasm.exe), набрать в командной строке команду:
tasm.exe <имя файла>.asm /l
и нажать клавишу Enter. Т.е. в нашем случае набрать и выполнить команду:
tasm.exe l_2_1fio.asm /l
В результате будет получен файл с расширением .obj (полное его имя: l_2_1fio.obj).
2.3.2.Затем аналогично получить объектный файл по второму модулю
(l_2_2fio.obj).
2.3.3. Затем с помощью программы tlink.exe получить загрузочный модуль. Для этого необходимо, чтобы файл tlink.exe был в каталоге с ассемблером. Набрать в командной строке и выполнить команду
tlink.exe l_2_1fio.obj l_2_2fio.obj
Врезультате будет получен файл l_2_1fio.exe.
2.3.4.Запустить программу (для этого навести курсор на полученный файл и нажать клавишу Enter).
Каждый вводимый вами символ выведется дважды: один раз, когда он отображается DOS при вводе с клавиатуры, и второй раз он отображается вашей программой.
2.4. Подготовка к выполнению индивидуального задания
(создание заготовки l_2_fio.asm)
До ввода команд ввести комментарий, который показывает очередность выполнения операций (выдача сообщений, ввод данных, преобразование из символьного вида в двоичный, вычисления, преобразование из двоичного вида в символьный и т.п.), см. приложение
(файлы lb2_1bnn.asm и lb2_2bnn.asm).
3.ЗАДАНИЕ НА ЛАБОРАТОРНУЮ РАБОТУ (ОБЩАЯ ЧАСТЬ)
3.1.Составить EXE-программу, состоящую из двух модулей, для МП
Intel 8086:
•первый модуль предназначен для вычисления по той же формуле, содержащей арифметические операции сложения, вычитания, умножения и деления, что использовалась в первой лабораторной работе;
•второй модуль предназначен для выполнения логических операций (И, ИЛИ, НЕ, ИСКЛЮЧАЮЩЕЕ ИЛИ, т.е. СЛОЖЕНИЕ ПО
10