|
|
|
|
|
|
|
Окончание таблицы |
|
№ |
Название части |
|
Рассматриваемые вопросы, тип программы, |
|||||
п/п |
|
|
|
|
количество модулей и операционная система |
|||
|
языке 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
1. ПОДГОТОВКА РАБОЧЕГО МЕСТА К ЗАНЯТИЯМ
Рабочее место оборудуется персональным компьютером, на котором для первых шести лабораторных работ достаточно:
–установить операционную систему Windows 95 (или выше: Windows 98, Windows XP Edition, Windows XP Proffetional, Windows 2000 – кроме Windows Millenium);
–установить Far;
–создать папку C:\assebler и поместить в нее все содержимое папки u_m_lab1: tasm.exe, tlink.exe, rtm.exe, dpmiload.exe, dpmimem.dll и примеры: lab1pr1.asm, lab1pr2.asm, lab1pr3.asm, lab1pr4.asm, lab1pr5.asm, lab1pr6.asm, lab1pr7.asm, lab1pr8.asm и включаемые файлы: as_b_bwd.asm, bin_asci.asm, vvod_bwd.asm и l_1proc7.asm.
2.АУДИТОРНОЕ ЗАНЯТИЕ
2.1.Создание и редактирование исходного текста программы, компиляция и выполнение программы
(тренинг под руководством преподавателя)
Демонстрационные примеры приведены в подразделе 6 (примеры 1.1 – 1.9). Используются преподавателем при проведении лабораторной работы №1 в дисплейном классе и могут использоваться студентами при самостоятельном изучении.
2.1.1.Включение ПК, запуск операционной системы Windows 95,
Windows 98, Windows XP или Windows 2000 (не применять Windows Millenium).
2.1.2.Вызов оболочки (пакета) Far и открытие папки
C:\Assembler\u_m_lab1.
2.1.3.Ассемблирование программы lab1pr1.asm, т.е. получение объектного модуля lab1pr1.obj (в командной строке набрать и выполнить команду tasm lab1pr1.asm); компоновка (в командной строке набрать и выполнить команду tlink lab1pr1.obj) и выполнение (исполнение) полученной программы lab1pr1.exe.
2.1.4.Редактирование (встроенным редактором оболочки Far) сообщения msg в сегменте данных программы lab1pr1.asm (изменить на текст: «Привет, <любое имя>») и сохранение полученного файла под другим именем: l_pr1fio.asm (здесь fio – инициалы: первые буквы фамилии, имени и отчества).
2.1.5.Ассемблирование, компоновка и выполнение полученной программы (l_1fio.asm).
7
2.1.6. Демонстрация ввода с клавиатуры байта (lab1pr2.asm), слова (lab1pr3.asm) и двойного слова (lab1pr4.asm) с акцентированием внимания на списках параметров (vvod_b, vvod_w и vvod_d), вызове процедур преобразования данных из кода ASCII (сокращенное название Американского стандартного кода обмена информацией) в двоичный код
(процедуры ascii_bin_b, ascii_bin_w и ascii_bin_d), на входных и выходных параметрах этих процедур и использование полученных данных (занесение в соответствующие ячейки памяти: b1, w1, d1 и т.д.).
Здесь и ниже b1, b2,…,w1, w2, …, d1, d2, … и т.д. определены директивами db, dw и dd аналогично приведенным ниже примерам:
b0 db 10 ; определение байта (директива db);
w0 dw 100; определение слова (директива dw);
d0 dd 1000 ; определение двойного слова (директива dd). Внимание! Пункты 2.1.7 – 2.1.10 при проведении аудиторного
занятия преподаватель может порекомендовать пропустить тем студентам, кто по каким-либо причинам задержался с выполнением предыдущих пунктов! Эти пункты могут быть выполнены при самостоятельной работе над программой.
2.1.7.Редактирование сообщения mas_b1 в программе lab1pr2.asm (сначала заменить только текст на «b2= », не меняя метку) и сохранение файла под другим именем (l_pr2fio.asm). Ассемблирование, компоновка, выполнение программы.
2.1.8.Редактирование метки сообщения mas_b1 (заменить на mas_b2 в сегменте данных; заменить ссылки на метку в сегменте кода). Ассемблирование, компоновка, выполнение программы.
2.1.9.Редактирование сообщения mas_w1 в программе lab1pr3.asm (заменить текст сообщения на «w2= », в сегменте данных заменить метку на mas_w2 и в сегменте кода заменить ссылки на эту метку) и сохранение файла под другим именем (l_pr3fio.asm). Ассемблирование, компоновка, выполнение программы.
2.1.10.Редактирование сообщения mas_d1 в программе lab1pr4.asm (заменить текст сообщения на «d2= », в сегменте данных заменить метку на mas_d2 и в сегменте кода заменить ссылки на метку mas_d1 ссылками на метку mas_d2) и сохранение файла под другим именем (l_pr4fio.asm). Ассемблирование, компоновка, выполнение программы.
2.1.11.Демонстрация преобразования данных (b1, w1 и d1) из двоичного кода в код ASCII (процедура bin_ascii) и вывод преобразованных данных на экран. Ассемблирование, компоновка, выполнение программы lab1pr5.asm.
2.1.12.Редактирование программы lab1pr5.asm (убрать списки параметров vvod_b, vvod_w и vvod_d в файл vvod_bwd.asm и процедуры ascii_bin_b, ascii_bin_w и ascii_bin_d в файл as_b_bwd.asm. Т.е. вырезать из lab1pr5.asm соответствующий фрагмент, создать файл (Shift+F4) с нужным именем, вставить в созданный файл фрагмент из буфера обмена (Ctrl+Insert) и сохранить созданный файл).
8
2.1.13.Редактирование программы lab1pr5.asm (убрать процедуру bin_ascii в файл bin_ascii.asm. Т.е. вырезать из lab1pr5.asm
соответствующий фрагмент, создать файл (Shift+F4) с нужным именем, вставить в созданный файл хранящийся в буфере обмена фрагмент (Ctrl+Insert) и сохранить созданный файл).
2.1.14.Редактирование программы lab1pr5.asm. Вставить в соответствующих местах программы строки с директивами:
include vvod_bwd.asm include as_b_bwd.asm include bin_ascii.asm
2.1.15.Ассемблирование программы lab1pr5.asm с получением объектного модуля (lab1pr5.obj) и листинга (т.е. файла lab1pr5.lst), компоновка и выполнение программы lab1pr5.exe. Продемонстрировать по листингу lab1pr5.lst результат выполнения директив include (вставлен текст соответствующих файлов и сформированы эквивалентные им машинные команды).
2.1.16.Ассемблирование программы, компоновка и выполнение программы lab1pr6.
2.1.17.Проверка правильности решения контрольных примеров:
|
|
|
|
|
|
|
|
Таблица 2.1 |
№п/п |
b1 |
|
b2 |
|
w1 |
w2 |
d1 |
d2 |
1 |
|
1 |
|
1 |
1 |
1 |
1 |
1 |
2 |
|
10 |
|
10 |
10 |
10 |
10 |
10 |
3 |
|
100 |
|
100 |
1000 |
1000 |
100000 |
100000 |
4 |
|
200 |
|
200 |
40000 |
40000 |
2000000000 |
2000000000 |
2.1.18. Ассемблирование программы, компоновка и выполнение программы lab1pr7. Проверка правильности решения контрольных примеров:
Таблица 2.2
№ |
b1 |
b2 |
w1 |
|
w2 |
|
№ |
b1 |
b2 |
w1 |
w2 |
п/п |
|
|
|
|
|
|
п/п |
|
|
|
|
1 |
1 |
1 |
- |
|
- |
|
7 |
- |
- |
1000 |
1000 |
2 |
10 |
10 |
- |
|
- |
|
8 |
- |
- |
10000 |
10000 |
3 |
100 |
100 |
- |
|
- |
|
9 |
100 |
- |
10000 |
- |
4 |
200 |
200 |
- |
|
- |
|
10 |
2 |
- |
60000 |
- |
5 |
- |
- |
|
1 |
|
1 |
11 |
100 |
- |
- |
10000 |
6 |
- |
- |
|
10 |
|
10 |
12 |
2 |
- |
- |
60000 |
2.1.19. Ассемблирование программы, компоновка и выполнение программы lab1pr8. Проверка правильности решения контрольных примеров:
9
Таблица 2.3
№ |
b1 |
b2 |
w1 |
d1 |
|
№ |
b1 |
b2 |
w1 |
d1 |
п/п |
|
|
|
|
|
п/п |
|
|
|
|
1 |
10 |
10 |
- |
|
- |
8 |
100 |
- |
1050 |
- |
2 |
200 |
10 |
- |
|
- |
9 |
|
|
10 |
10 |
3 |
1 |
200 |
- |
|
- |
10 |
- |
- |
10 |
10000 |
4 |
100 |
- |
100 |
|
- |
11 |
- |
- |
1 |
10000 |
5 |
100 |
- |
10000 |
|
- |
12 |
- |
- |
100 |
1000000 |
6 |
1 |
- |
10000 |
|
- |
13 |
- |
- |
100 |
1000050 |
7 |
2 |
- |
7 |
|
- |
|
|
|
|
|
2.2. Редактирование, компиляция и выполнение демонстрационных примеров
(самостоятельная проверка возможностей управления выводом на экран
вбазовой версии DOS)
Впапке C:\assebler\u_m_lab1 создать файл l_1_fio.asm, где fio – инициалы выполняющего работу (первые буквы фамилии, имени и отчества – латинскими буквами).
2.2.1.Проверка действия кодов перевода строки (0ah) и возврата на начало строки (0dh). Редактирование (встроенным редактором оболочки Far) сообщения msg в сегменте данных программы lab1pr1.asm (вставить эти коды перед символом $) и сохранение полученного файла под другим именем: l#pr1fio.asm (здесь fio – инициалы: первые буквы фамилии, имени и отчества).
2.2.2.Ассемблирование, компоновка и выполнение полученной программы (l#pr1fio.asm).
2.2.3.Проверка действия символа $, который в базовой версии MSDOS является признаком окончания сообщения. Редактирование программы l#pr1fio.asm (в сегменте кода убрать команды вывода сообщения msg_e, т.е. строки с 35 по 37 включительно) и сохранение полученного файла под этим же именем: l#pr1fio.asm.
2.2.4.Ассемблирование, компоновка и выполнение полученной программы (l#pr1fio.asm). Убедиться, что сообщение «Для выхода нажмите любую клавишу» на экран не выдается.
2.2.5.Редактирование сообщения msg в сегменте данных программы l#pr1fio.asm (убрать символ $ после этого сообщения) и сохранение полученного файла под этим же именем: l#pr1fio.asm.
2.2.6.Ассемблирование, компоновка и выполнение полученной программы (l#pr1fio.asm). Убедиться, что теперь сообщение «Для выхода нажмите любую клавишу» на экран выдается: идет выдача сообщения msg до тех пор, пока не встречается символ $, а он – за сообщением msg_e.
10