Команды INS, INSB, INSW, INSD
Рубрика: Архитектура PC
(Команды CPU)
1134
Опубликовано: 05.05.2017
Команды INS, INSB, INSW, INSD позволяют несколько автоматизировать операции получения данных из порта ввода-вывода. По сути эти команды выполняют команду IN, только результат помещается не в регистр, а в ячейку памяти, адресуемую парой регистров ES:(E)DI, после чего производится сдвиг адреса для записи следующей порции данных в следующую ячейку памяти.
Команда INS
Синтаксис: | INS op1,DX |
Операнды: | op1 - m8, m16, m32 |
Назначение: | Ввод из порта в строку |
Процессор: | 80186+ |
Флаги: | Не изменяются |
Комментарий: | Команда INS как и команда CMPS не является командой процессора. Когда в тексте программы встречается эта команда, компилятор вычисляет размерность ее операнда и на основании вычислений подставляет на ее место одну из реальных команд процессора INSB, INSW или INSD. |
Ограничения: | Нет |
Примеры: |
ins es:str1, dx |
Команда INSB
Синтаксис: | INSB |
Операнды: | Нет |
Назначение: | Ввод байтов из порта в строку |
Процессор: | 80186+ |
Флаги: | Не изменяются |
Комментарий: | Команда INSB пересылает байт данных из заданного регистром DX порта ввода в ячейку памяти по адресу ES:DI. Аналогична по действию команде IN. После выполнения пересылки регистр DI увеличивается на 1, если флаг DF=0 или уменьшается на 1, если флаг DF=1. Если команда используется в 32-разрядном режиме адресации, то используется регистр EDI. |
Ограничения: | Нет |
Примеры: |
mov dx,03DFh sub di,di insb |
Команда INSW
Синтаксис: | INSW |
Операнды: | Нет |
Назначение: | Ввод 2-байтовых значений из порта в строку |
Процессор: | 80186+ |
Флаги: | Не изменяются |
Комментарий: | Команда INSW пересылает слово данных из заданного регистром DX порта ввода в ячейку памяти по адресу ES:DI. Аналогична по действию команде IN. После выполнения пересылки регистр DI увеличивается на 2, если флаг DF=0 или уменьшается на 2, если флаг DF=1. Если команда используется в 32-разрядном режиме адресации, то используется регистр EDI. |
Ограничения: | Нет |
Примеры: |
mov dx,03DFh sub di,di insw |
Команда INSD
Синтаксис: | INSD |
Операнды: | Нет |
Назначение: | Ввод 4-байтовых значений из порта в строку |
Процессор: | 80386+ |
Флаги: | Не изменяются |
Комментарий: | Команда INSD пересылает байт данных из заданного регистром DX порта ввода в ячейку памяти по адресу ES:DI. Аналогична по действию команде IN. После выполнения пересылки регистр DI увеличивается на 4, если флаг DF=0 или уменьшается на 4, если флаг DF=1. Если команда используется в 32-разрядном режиме адресации, то используется регистр EDI. |
Ограничения: | Нет |
Примеры: |
mov dx,03DFh sub di,di insd |
Комментарии (0)