Студопедия

КАТЕГОРИИ:


Архитектура-(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; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.009 сек.