КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Директива ASSUME
Директива ENDS Cseg SEGMENT Директива SEGMENT ТЕОРІЯ Вивчення режимів адресації і8086 та команд пересилання даних ЛАБОРАТОРНА РОБОТА № 2 ЗАВДАННЯ ТЕОРІЯ Вивчення відлагоджувача DEBUG ЛАБОРАТОРНА РОБОТА № 1
МЕТА РОБОТИ: Навчитися відлагоджувати програми за допомогою відлагоджувача DEBUG. Ключі до відлагоджувача DEBUG: допомога? ввід команд асемблера A[адреса ] порівняти C діапазон адрес отримати байт пам’яті D[діапазон ] редагувати чарунки пам’яті E адреса [список байт ] виконати зі вказаної адреси G[=адреса][адреса] скопіювати М діапазон адрес вихід Q зміст регістрів R[регістр] пошук S трасування T[=адреса][число повторювань] дізасемблер U [ діапазон адрес] Самостійно вивчити відлагоджувач Debug. Практично продемонструвати роботу з відлагоджувачем DEBUG викладачу.
МЕТА РОБОТИ: Вивчити режими адресації МП і 8086 та команди пересилання даних, а також навчитися застосовувати отримані знання при написанні програм на мові асемблер. Директива SEGMENT визначає початок сегменту. Мітка, яка вказується у даній директиві, визначає початок сегменту. Наприклад, директива: Визначає початок сегменту з ім’ям Cseg. Директива SEGMENT може також (необов’язково) визначати атрибути сегмента, включаючи вирівнювання у пам’яті на кордон байта, слова, подвійного слова, параграфа (16 байт) чи сторінки (256 байт). Інші атрибути включають в себе спосіб, за допомогою якого сегмент буде комбінуватися з іншими сегментами з тим же ім’ям та класом сегмента. Директива ENDS визначає кінець сегменту. Наприклад:
Cseg ENDS
завершує сегмент з ім’ям Cseg, який починався по директиві SEGMENT. При використанні стандартних директив визначення сегментів, ви повинні явним чином завершити кожний сегмент.
Директива ASSUME вказує Турбо Асемблеру, у значення якого сегменту встановлений даний сегментний регістр. Директиву ASSUME CS: потрібно указати у кожній програмі, в якої використовуються стандартні сегментні директиви, бо Турбо Асемблеру необхідно знати про сегмент коду для того, щоб встановити програму яка виконується. Крім того, звичайно використовуються директиви ASSUME DS: та ASSUME ES:, завдяки яким Турбо Асемблер знає до яких чарунок пам’яті ви можете адресуватись у даний момент. Директива ASSUME дозволяє Турбо Асемблеру перевірити допустимість кожного звернення до іменованої чарунки пам’яті з урахуванням значення поточного сегментного регістру. Роздивимось наступний приклад:
Data1 SEGMENT WORD ‘DATA’ Var1 DW 0 Data1 ENDS Data2 SEGMENT WORD ‘DATA’ var2 DW 0 Data2 ENDS Code SEGMENT WORD ‘CODE’ ASSUME CS:CODE Program Start: mov ax,Data1 mov ds,ax; установити DS у Data1 ASSUME DS:Data1 mov ax,[Var2] ; спроба завантажити Var2 у AX ; це призведе до помилки, бо ; Var2 недоступна у сегменті ; Data1
Турбо Асемблер відзначає у цій програмі помилку, бо у ній робиться спроба отримати доступ до змінної пам’яті Var2, коли регістр DS встановлений у значення сегменту Data1 (до Var2 неможливо адресуватись, допоки DS не буде встановлений у значення сегмента Data2).
Дата добавления: 2015-04-25; Просмотров: 394; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |