Материал: 1117

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

 

 

 

 

 

 

 

Окончание таблицы

№

Название части

 

Рассматриваемые вопросы, тип программы,

п/п

 

 

 

 

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

 

языке 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

Источник: https://studfile.net/preview/16407174/