Иллюстрированный самоучитель по Assembler

           

Р+ 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-разрядным регистром общего назначения, другим - один из специальных регистров процессора.

Содержание раздела