- •Сборник
- •Практическая работа №1 «Перевод чисел из системы в систему, сложение, числа со знаком»
- •Практическая работа №2 «Ввод, трансляция и исполнение программы»
- •Практическая работа №3 « Модификация первой программы»
- •Практическая работа №4 « Псевдооператоры»
- •Практическая работа №5 « Режимы адресации операндов»
- •Практическая работа №6 « Команды пересылки данных»
- •Практическая работа №7 « Арифметические команды»
- •Практическая работа №8 « Команды манипулирования битами»
Практическая работа №4 « Псевдооператоры»
Цель работы: Отработка и выполнение на компьютере навыков применения псевдооператоров и директив определения сегментов при создании программ на языке Ассемблера.
Материально-техническое оснащение:
ПК, текстовый редактор, служебные программы Tasm.exe, Tlink.exe, TD.exe.
Теория.
Оператором (строкой ) исходной программы может быть или команда, или псевдооператор языка Ассемблера. Псевдооператоры управляют работой Ассемблера, а не микропроцессора.
Наиболее распространенные псевдооператоры – псевдооператоры данных. Они делятся на следующие функциональные группы:
Псевдооператоры определения идентификаторов - EQU и =
Псевдооператоры определения данных – DB, DW, DD
Псевдооператоры внешних ссылок – Public, Extrn, Include
Псевдооператоры определения сегмента/ процедуры – Segment, Assume, Proc
Псевдооператоры управления трансляцией – End
Cуществуют также упрощенные директивы (псевдооператоры) определения сегментов:
Dosseg
.Model
.Stack
.Data
.Code
Ход работы.
Задача. Создать программу в которой:
предусмотреть несколько сегментов;
зарезервировать в памяти: 10 байт значением 55h, 10 байт неизвестным значением, 10 слов значением 1122h, 1 байт постоянным значением 33h;
вывести на экран сообщение об ошибке;
использовать псевдооператор трансляции.
Получите исполняемый модуль.
Проверьте правильность работы программы, запустив ее из отладчика.
В Turbo Debugger’е просмотрите сегмент данных через Dump памяти, прежде загрузив DS из пошагового режима.
Заключение.
Запишите созданную программу в свой каталог на диске и в тетрадь.
Обобщите все возникшие в процессе создания программы ошибки.
Контрольные вопросы.
Чем отличаются псевдооператоры EQU и = ?
Какие действия выполняет псевдооператор Include?
Какие действия выполняет псевдооператор Extrn?
Какие действия выполняет псевдооператор Public?
Литература.
1. Л. Скэнлон Персональные ЭВМ IBM PC XT. Программирование на языке ассемблера. М, Радио и связь, 1989 г.
2. В.Юров, С.Хорошенко. Ассемблер: учебный курс - СПб:ПитерКом,1999г.
3. Я. Белецкий Турбо Ассемблер версия 2.0, М, Машиностроение, 1994 г.
4. Под ред. И.Ю. Жукова Ассемблер в задачах защиты информации. М, КУДИЦ-ОБРАЗ, 2002 г.
Практическая работа №5 « Режимы адресации операндов»
Цель работы: Отработка навыков применения режимов адресации операндов при создании программ.
Материально-техническое оснащение:
ПК, текстовый редактор, служебные программы Tasm.exe, Tlink.exe, TD.exe.
Теория.
Микропроцессор 8088 предоставляет множество способов адресации операндов. Можно выделить семь режимов адресации:
Прямая адресация
Применяется, если операндом служит метка:
mov Table,ax
Непосредственная адресация
в качестве операнда выступает непосредственное значение:
mov al,55
Регистровая адресация
микропроцессор извлекает операнд из регистра или загружает его в регистр:
mov cl,al
Косвенная регистровая адресация
Исполнительный адрес операнда содержится в базовом регистре BX, регистре указателя базы BP или индексном регистре (DI, SI). Косвенные регистровые операнды заключаются в квадратные скобки:
mov [bx],al
Адресация по базе
Исполнительный адрес вычисляется как сложение значения сдвига с содержимым регистров BX или BP:
mov ax,es:[bp]+4
Адресация по базе с индексированием
характеризуется присутствием базового регистра BX или указателя базы BP, а также наличием индексного регистра:
mov [bx+di], al
Прямая адресация с индексированием
характеризуется наличием метки переменной и индексного регистра:
mov Table[si],al
Ход работы.
1. Задача. Создать программу в которой:
переслать в память число10h методом непосредственной адресации
переслать в память число 55h методом регистровой адресации
переслать в память число 10 методом адресации по базе
переслать в память число 12 методом прямой адресации с индексированием
переслать из памяти в память число 12 методом прямой адресации
Каждый раз пересылку осуществляйте в последующую ячейку памяти.
Получите исполняемый модуль.
Проверьте правильность работы программы, запустив ее из отладчика.
В Turbo Debugger’е просмотрите сегмент данных через Dump памяти, прежде загрузив DS в пошаговом режиме.
Заключение.
Запишите созданную программу в свой каталог на диске и в тетрадь.
Обобщите все возникшие в процессе создания программы ошибки.
Контрольные вопросы.
Какие режимы адресации используются в следующих командах? (запишите около каждой строки исходного текста):
Mov ax,[bx+6]
Mov ax,offset Fix
Mov ah,4ch
Mov ds,ax
Mov Fix[di],bx
Int 21h
Mov ax,[es:bp+si+8]
Литература.
1. Л. Скэнлон Персональные ЭВМ IBM PC XT. Программирование на языке ассемблера. М, Радио и связь, 1989 г.
2. В.Юров, С.Хорошенко. Ассемблер: учебный курс - СПб:ПитерКом,1999г.
3. Я. Белецкий Турбо Ассемблер версия 2.0, М, Машиностроение, 1994 г.
4. Под ред. И.Ю. Жукова Ассемблер в задачах защиты информации. М, КУДИЦ-ОБРАЗ, 2002 г.