Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Короткі теоретичні відомості.




МП intel допускають роботу в реальному, захищеному, віртуального V86 режимах. Кожний з цих режимів характеризується особливостями роботи з пам'яттю (див. лекцію). При роботі програми необхідні дані можуть знаходитися в зовнішній пам'яті, стеці або регістрах мікропроцесора. Від того, як будуть розміщені дані, у якому порядку вони будуть оброблятися, де будуть зберігатися проміжні результати, багато в чому залежить ефективність написаної програми. Мікропроцесор завжди поміщає дані для обробки в один з регістрів загального призначення, тому необхідно знати правила, по яких варто адресувати необхідні операнди. По можливості варто розташовувати дан у регістрах мікропроцесора, проміжні результати – у регістрах або стеці, результат – у регістрах, стеці або пам'яті. Вибір способу адресації визначається,:

- кількістю даних;

- місцем розміщення даних;

- наявністю вільних регістрів мікропроцесора;

- особливістю розв'язуваної задачі;

- зручністю використання.

Слід зазначити, що при описі будь-якої команди мікропроцесора використовуються мнемонічні позначення (мнемоніки) інструкцій (директив, команд) мовою асемблера, що являють собою скорочені англійські слова, наприклад mov від move, xchg від exchange, і т. п.

При написанні програми варто також пам'ятати, що в будь-яких інструкціях із двома операндами на місці першого операнда завжди знаходиться приймач (destination) результату або даних, а після коми, на місці другого операнда – джерело даних.

Способи адресації і правила використання регістрів і додаткових компонентів (бази, індексу, масштабу і зсуву) обчислення ефективної адреси приведені в таблицях 1 і 2.

Таблиця 1- Способи адресації (у дужках при використанні masm)

Спосіб адресації Приклад запису
Регістрова адресація mov ax, bx
Безпосередня адресація mov ах,2
Пряма адресація (використовується рідко) mov ax,[es:0001] (mov ax, es:0001)
Непряма адресація mov ax,[bx]
Варіанти непрямої адресації
Адресація по базі зі зсувом (для роботи з одномірними масивами) mov ax,[bx+2]; (mov ax,[bp]+2; mov ax,2[bp])
Непряма адресація з масштабуванням (тільки для розширених регістрів) mov ax,[esi*2+2] (mov ax,[esi*2]+2)
Адресація по базі з індексуванням (для роботи з двовимірними масивами) mov ax, [bx+si+2] (mov ax,[bx],[si+2]; mov ax,2[bx][si]; mov ax,[bx+2][si])
Адресація по базі з індексуванням і масштабуванням mov ax,[cs: eax+ebx*2+2] mov ax, cs:[eax+ebx*4+32]  
Логічна адреса: <сегментний регістр>:<16-розрядна ефективна адреса> <селектор сегмента>:<32-розрядна ефективна адреса> 32- розрядна ефективна адреса ЕА: ЕА=база + (індекс*масштаб) +зсув

 

Таблиця 2. – Припустимі значення

Компоненти ЕА 16-розрядна адреса 32-розрядна адреса
Базовий регістр bх, bр будь-який РЗП
Індексний регістр si, di будь-який РЗП, крім esp
Масштаб немає 2,4,8
Зсув 0,8,16 біт 0,8,16,32 біта
Поделиться:





Читайте также:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...