- •Лабораторная работа №2
- •Методические указания к изучению операций передачи данных
- •Команда пересылки mov
- •Команда обмена xchg
- •Команды ввода и вывода
- •Загрузка эффективного адреса
- •Загрузка указателя
- •Пересылка флагов
- •Перекодировка
- •Команды работы со стеком
- •Система команд передачи данных
- •Способы адресации к памяти
- •Задание на программирование
Лабораторная работа №2
Команды передачи данных и адресация к памяти
Цель работы: освоение приемов пересылки данных между ячейками памяти с использованием команд побайтовой или пословной передачи данных, применение режимов адресации к памяти.
Методические указания к изучению операций передачи данных
Обычно команды пересылки данных наиболее часто используются в наборе команд любой ЭВМ. Большая часть каждой задачи по обработке данных заключается в переносе информации из одного места в другое.
Команда пересылки mov
Команда MOV - основная команда пересылки данных, которая пересылает байт, слово или двойное слово данных из памяти в регистр, из регистра в память или из регистра в регистр. Команда MOV может также занести число, определенное программистом в виде константы, в регистр или в память.
Существует несколько различных вариантов команды MOV, но программист использует каждую из этих команд с помощью единственного кода операции MOV. Ассемблер порождает правильную машинную команду, основываясь на операндах (ассемблер требует для операндов назначения типов, т.е. ассемблер должен знать, что представляет собой каждый операнд - регистр, байт памяти, слово памяти, сегментный регистр и т.п.).
Общая форма команды MOV имеет вид:
MOV приемник, источник
Допустимые сочетания приемников и источников приведены в таблице 1.1, в которой -
Br регистры AH,AL,BH,BL,CH,CL,DH,CL (байтовые регистры);
Wr регистры AX,BX,CX,DX,SР,BР,SI,DI (16 - разрядные регистры);
Dr регистры EAX,EBX,ECX,EDX,ESР,EBР,ESI,EDI (32 - разрядные регистры);
Sr регистры SS,ES,DS,GS,FS (сегментные регистры);
М -ячейка памяти;
Const непосредственно заданная константа.
Табл.1.1 Сочетания приемников и источников
Приемник |
Источник | |||||
Br |
Wr |
Dr |
Sr |
Const |
M | |
Br |
X |
|
|
|
X |
X |
Wr |
|
X |
|
X |
X |
X |
Dr |
|
|
X |
|
X |
X |
Sr |
|
X |
|
|
|
|
M |
X |
X |
|
|
X |
|
Команда обмена xchg
Команда замены XCHG меняет местами содержимое двух ячеек. Эта команда обменивает содержимое двух регистров, или регистра и памяти.
Синтаксис команды имеет вид:
XCHG приемник, источник
Источник и приемник в команде имеет тоже смысл, что и для команд пересылки данных. При этом в качестве одного из операндов не может использоваться сегментный регистр.
Команда XCHG заменяет три команды пересылки и не требует промежуточной ячейки памяти.
Команды ввода и вывода
Для выполнения операций ввода и вывода микропроцессор имеет команды IN и OUT соответственно. Каждое устройство ввода-вывода персональной ЭВМ фирмы IBM имеет один или больше встроенных регистров, с которыми могут работать эти команды. Устройство ввода-вывода имеет адреса для встроенных регистров. Это адресное пространство отличается от адресного пространства памяти; всего существует 65536 адресов ввода-вывода, доступных микропроцессору.
Команда IN пересылает данные из устройства ввода-вывода в регистр AL. Эта команда может указать адрес устройства ввода-вывода двумя различными способами. Если адрес устройства находится в пределах 0 - 255, он может содержаться в команде как непосредственное значение. В противном случае, адрес устройства ввода-вывода должен содержаться в регистре DX. Регистр DX может задавать адреса всех устройств ввода-вывода, включая и те, номера которых меньше 256.
Аналогично работает команда OUT, за исключением того, что она записывает регистр AL в регистр устройства ввода-вывода. Адреса в команде OUT указываются так же, как и в команде IN.
Синтаксис команд ввода-вывода имеет вид:
IN const
IN DX
OUT const
OUT DX