Читайте также: |
|
Команды ввода-вывода используются для взаимодействия с периферийными устройствами системы. Они имеют формат
IN аккумулятор, порт
OUT порт, аккумулятор
где аккумулятор – регистр AL при обмене байтами или регистр АХ при обмене словами. Операндом порт может быть десятичное значение от 0 до 255, что позволяет адресоваться к 256 устройствам.
В качестве операнда порт можно использовать регистр DX, что позволяет легко изменять номер порта, например при необходимости пересылать одни и те же данные в несколько различных портов.
Приведем несколько примеров команд IN и OUT:
IN AL,200;Ввести байт из порта 200
IN AL,PORT_VAL; или из порта, указанного константой
OUT ЗОН,AХ; Вывести слово в порт ЗОН
OUT DX,AX; или в порт, указанный в ОХ
Команды пересылки адреса
Команды пересылки адреса передают не содержимое переменных, а их адреса.
Команда загрузки исполнительного адреса
Команда LEA (load effective address — загрузить исполнительный адрес) пересылает смещение ячейки памяти в любой 16-битовый регистр общего назначения, регистр указателя или индексный регистр. Она имеет формат
LEA регистр16,память16
где операнд память16 должен иметь атрибут типа WORD.
Операнд память16 в команде LEA может быть индексирован, что дает возможность осуществить гибкую адресацию. Например, если регистр DI содержит 5, то команда
LEA BX,TABLE[DI]
загрузит смещение адреса TABLE+5 в регистр ВХ.
Команда загрузки указателя и регистра сегмента данных LDS
Команда LDS (load pointer using DS — загрузить указатель с использованием регистра DS) считывает из памяти 32-битовое двойное слово и. загружает первые 16 битов в заданный регистр, а следующие 16 битов - в регистр сегмента данных DS. Она имеет формат
LDS регистр16,память32
где регистр 16 - любой 16-битовый регистр общего назначения, а память32 — ячейка памяти с атрибутом типа DOUBLEWORD.
Команда загрузки указателя и регистра дополнительного сегмента LES
Команда LES (load pointer using ES - загрузить указатель с использованием регистра ES) идентична команде LDS, но загружает номер блока в регистр ES, а не в DS.
Команды помещения флагов в стек PUSHF и извлечения флагов из стека POPF
Эти команды пересылают содержимое регистра флагов в стек и обратно. Они в сущности идентичны командам PUSH и POP, но в них не требуется указывать операнд, так как под ним подразумевается регистр флагов.
Как и в случае команд PUSH и POP, команды PUSHF и POPF всегда используются парами. Другими словами, каждой команде PUSHF должна соответствовать исполняемая позже команда POP.
Дата добавления: 2015-11-13; просмотров: 41 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Команды общего назначения | | | Индивидуальное задание. |