ресою пам'яті, за допомогою спеціальної директиви визначення пам'яті, наприклад, DB - байт, DW - слово, DD - подвійне слово. Якщо в сегменті ES міститься директива Var_p DW, тоді по команді
AX, ES: Var_p; ((ES) + Var_p) ® AX
вміст двох байтів, починаючи з адреси (ES) + Var_p пересилаються в AX.
Наприклад, якщо команда має вигляд:
AX, Var_p; ((DS) + Var_p) ® AX. ?????????????
4) Побічно-реєстрова адресація. Даний вид адресації відрізняється від реєстрової адресації тим, що в регістрі міститься не сам операнд, а адреса області пам'яті, в якій міститься операнд. Наприклад,
MOV AX, [SI].
Для зберігання адреси пам'яті можуть використовуватися регістри SI, DI, BX, BP, EAX. EBX, ECX, EDX, EBP, ESI, ED, але не можуть використовуватися AX, CX, DX, SP, ESP.
) Адресація по базі зі зміщенням:
AX, [BX] +2; ((DS) + (BX) +2) ® AX.
? MOV AX, [BX +2]? MOV AX, 2 [BX] AX, [BP +4]; ((SS) + (BP) +4) ® AX.
) Пряма адресація з індексуванням
AX, MAS [SI]; ((DS) + (SI) + MAS) ® AX
- адреса в області пам'яті. За допомогою цієї адресації можна працювати з одновимірними масивами. Символічне ім'я визначає початок масиву, а перехід від одного елемента до іншого здійснюється за допомогою вмісту індексного регістра.
) Адресація по базі з індексуванням
AX, Arr [BX] [DI]; ((DS) + (BX) + (DI) + Arr) ® AX.
Ця адресація використовується для роботи з двовимірними масивами. Символічне ім'я визначає початок масиву, за допомогою базового регістра здійснюється перехід від одного рядка матриці до іншої, а за допомогою індексного регістра - перехід від одного елемента до іншого всередині рядка.
8. Особливості використання команд пересилання
1. Не можна пересилати інформацію з однієї області пам'яті в іншу.
2. Не можна пересилати інформацію з одного сегментного регістра в інший.
. Не можна пересилати безпосередній операнд в сегментний регістр, але якщо така необхідність виникає, то потрібно використовувати в якості проміжного один з регістрів загального призначення:
MOV DX, 100h DS, DX
4. Не можна змінювати командою MOV вміст регістра CS.
. Дані в пам'яті зберігаються в «перевернутому» вигляді, а в регістрах у «нормальному» вигляді, і команда пересилки враховує це, наприклад,
R DW 1234h
У байті з адресою R буде 34h, в байті з адресою R +1 буде 12h.
AX, R; 12h ® AH, 34h ® AL.
6. Розмір переданих даних визначається типом операндів в команді.
X DB? ; Х - адресу одного байта в памяті.W? ; Y визначає поле в 2 байта в пам'яті.
MOV X, 0; очищення одного байта в пам'яті.
MOV Y, 0; очищення двох байт в пам'яті.
MOV AX, 0; очищення двох байт регістра
MOV [SI], 0; повідомлення про помилку.