Копирование второго операнда в первый операнд
__________________MOV reg/mem
8, reg
8 -
Скопировать reg
8 в reg/mem
8.
__________________MOV reg/mem
16, reg
16 -
Скопировать reg
16 в reg/mem
16.
__________________MOV reg
8, reg/mem
8 -
Скопировать reg/mem
8 в reg
8.
__________________MOV reg
16, reg/mem
16 -
Скопировать reg/mem
16 в reg
16.
MOV AX, moffs16 - Скопировать слово из (seg:offset(смещение)) в AX.
__________________MOV moffs
8, AL
- Скопировать AL в (seg:offset(смещение)).
__________________MOV moffs
16--
Скопировать AX в (seg:offset(смещение)).
__________________MOV reg
8, imm
8--
Скопировать imm
8 в reg
8.
__________________MOV reg
16, imm
16 -
Скопировать imm
16 в reg
16.
__________________MOV reg/mem
8, imm
8 -
Скопировать imm
8 в reg/mem
8.
__________________MOV reg/mem
16, imm
16 -
Скопировать imm
16 в reg/mem
16.
Копирует второй операнд в первый операнд. Исходным операндом может быть непосредственное значение, регистр общего назначения, сегментный регистр или ячейка памяти; регистром назначения может быть регистр общего назначения, сегментный регистр или ячейка памяти. Оба операнда должны быть одинакового размера, который может быть байтом или словом.
Инструкция
mov не может быть использована для загрузки регистра
cs. Попытка сделать это приводит к недопустимому исключению кода операции (#UD). Чтобы загрузить регистр
cs, используйте инструкцию дальнего
jmp,
call или
ret.
Если операндом назначения является сегментный регистр (DS, ES, FS, GS или SS), исходный операнд должен быть допустимым селектором сегмента. В защищённом режиме перемещение селектора сегментов в регистр сегментов автоматически приводит к загрузке информации о дескрипторе сегмента, связанной с этим селектором сегментов, в скрытую (теневую) часть регистра сегментов. При загрузке этой информации проверяется информация о селекторе сегмента и дескрипторе сегмента. Данные дескриптора сегмента получены из записи GDT или LDT для указанного селектора сегментов.
Селектор нулевого сегмента (значения 0000-0003) может быть загружен в регистры DS, ES, FS и GS, не вызывая исключения защиты. Однако любая последующая попытка сослаться на сегмент, соответствующий регистр сегмента которого загружен с нулевым значением, вызывает исключение общей защиты (#GP).
Загрузка регистра
ss командой
mov подавляет или запрещает некоторые исключения отладки и запрещает прерывания на границе следующей команды. (Блокирование заканчивается после выдачи исключения или выполнения следующей инструкции.) Такое поведение позволяет загрузить указатель стека в регистр
sp со следующей инструкцией (
mov sp, значение указателя стека) до того, как может быть доставлено событие. Intel рекомендует программному обеспечению использовать инструкцию
lss для совместной загрузки регистра
ss и
sp.
В качестве примера скопируем значение
3510 в регистр
ax, в регистр
bx скопируем значение
123416 а в регистр
cx скопируем значение
000100112.
- title Автор: Довгополов Евгений Сергеевич
- .model small
- .stack 100h
- code segment public ___________; Начало сегмента кода
- ____assume cs:code
- ____main proc _________________; Начало процедуры main
- ________mov_____ax, 35 ________; Копируем десятичное значение 35 в регистр ax
- ________mov_____bx, 1234h _____; Копируем шестнадцатеричное значение 1234 в регистр bx
- ________mov_____cx, 00010011b__; Копируем двоичное значение 00010011 в регистр cx
- ________mov_____ax, 4C00h _____; Копируем значение функции завершения процесса в ah а значение в al
- ________int_____21h ___________; Вызываем прерывание DOS
- ____main endp _________________; Конец процедуры main
- code ends _____________________; Конец сегмента кода
- end main ______________________; Конец файла. Точкой входа указывается процедура main