→ Пошук по сайту       Увійти / Зареєструватися

Команди асемблера для Intel: 386р+ LTR, MOV, 386р+ MOV

386р+ LTR Завантаження регістра завдання TR

Команда Itr завантажує регістр завдання TR селектором сегменту стану завдання TSS з другого операнда, як який можна використовувати 16- або 32-розрядний регістр загального призначення або 16- або 32-бітове поле пам'яті. Команда використовується в захищеному режимі, якщо програмний комплекс виконаний у вигляді декількох самостійних завдань, і перемикання між ними здійснюються з використанням включених в процесор апаратних засобів підтримки багатозадачності.

MOV Пересилка даних

Команда mov заміщає перший операнд (приймач) другим (джерелом). При цьому початкове значення першого операнда втрачається. Другий операнд не змінюється. Залежно від опису операндів, пересилається слово або байт. Якщо операнди описані по-різному або режим адресації не дозволяє однозначно визначити розмір операнда, для уточнення розміру передаваних даних в команду слід включити один з атрибутних операторів byte ptr або word ptr. Команда не впливає на прапори процесора. Залежно від використовуваних режимів адресації, команда mov може здійснювати пересилки наступних видів:

  • з регістра загального призначення в регістр загального призначення;
  • з регістра загального призначення в елемент пам'яті;
  • з регістра загального призначення в сегментні регістри DS, ES і SS;
  • з елементу пам'яті в регістр загального призначення;
  • з елементу пам'яті в сегментний регістр;
  • з сегментного регістра в регістр загального призначення;
  • з сегментного регістра в елемент пам'яті;
  • безпосередній операнд в регістр загального призначення;
  • безпосередній операнд в елемент пам'яті.

Заборонені пересилки з елементу пам'яті в елемент пам'яті (для цього передбачена команда movs), а також завантаження сегментного регістра безпосереднім значенням, яке, таким чином, доводиться завантажувати через регістр загального призначення:

mov Ax,seg mem ;Сегментный адреса осередку mem
mov Ds,ax ;Загрузка його в регістр DS

Не можна також безпосередньо переслати вміст одного сегментного регістра в іншій. Такого роду операції зручно виконувати з використанням стека:

push DS
pop ES ; DS копіюється в ES

Приклади

;У полях даних:
memb db 5,6
memd dd 0 ;Двухсловная осередок
;У програмному сегменті:
mov Dx,ax ;Из регістра в регістр
mov Al,memb ;Из пам'яті в регістр
mov Ax,0b800h ;Непосредственное значення в
;регістр
mov Es,ax ;Из регістра в сегментний
;регістр
mov word ptr memd+2,es ;Из сегментного
;регістра в пам'ять
mov word ptr memd, 2000;Непосредственное
;значення в пам'ять
mov Bx,word ptr memb ;Слово з пам'яті в
;регістр (число 0605)
mov Di,word ptr memd ;Слово з пам'яті в
;регістр
mov Es,word ptr memd+2;Слово з пам'яті в
;сегментний регістр

Допустиме використання 32-бітових операндів і додаткових режимів адресації 32-розрядних процесорів.

Приклад 1

mov Eax,esi

Приклад 2

; У полях даних
mem dd 0
;В програмному сегменті
mov mem,ebp

386р+ MOV Пересилка в\із спеціальних регістрів

Цей варіант команди mov (з тією ж мнемонікою, але іншими кодами операцій) використовується в захищеному режимі і призначений для обміну даними із спеціальними регістрами процесора: керівниками CRO...CR3, тестування Tr6 і Tr7, а також регістрами відладки DRO...DR7. Одін з операндів команди mov має бути 32-розрядним регістром загального призначення, іншим - один із спеціальних регістрів процесора.

загрузка...
Сторінки, близькі за змістом