 |
::
Меню :: |
 |
|
|
 |
::
Друзі :: |
 |
|
|
 |
::
Лічильники :: |
 |
|
|
|
INS Введення рядка з порту
INSB Введення байта з порту
INSW Введення слова з порту
INSD Введення подвійного слова з порту
Команди
призначені для введення даних з порту безпосередньо в пам'ять. Адреса порту
указується, як і для команди in, в регістрі DX,
при цьому завдання адреси порту
безпосереднім значенням не допускається. Дані пересилаються за адресою, що
знаходиться в парі регістрів Es:edi. Заміна сегменту не допускається. Команда
insb переносить з порту 1 байт, команда insw - 1 слово, команда insd - 1 подвійне
слово, а команда ins може бути використана для передачі байтів, слів і подвійних
слів. У останньому випадку розмір завантажуваного даного визначається описом
рядка (за допомогою директив db, dw або dd). Після передачі даних регістр EDI
отримує позитивний (якщо прапор Df=0) або негативний (якщо прапор
Df= 1)
приріст. Величина приросту складає 1, 2 або 4, залежно від розміру передаваних
даних. Варіант команди ins має формат
ins рядок, DX
(що не позбавляє від необхідності
ініціалізувати регістри Es:edi адресою рядка).
Якщо
пристрій, що адресується через порт, може передавати послідовність
даних, то командам ins можна передувати префіксом повторення
rep. В цьому випадку
з порту приймається СХ елементів даних заданого розміру.
Команди ins не впливають на прапори процесора.
Приклад
;У
сегменті даних, що адресуються через DS mem dw 0
;В програмному сегменті
push DS
pop ES ;ES=DS
mov Di,offset mem;ES:DI -> mem
mov Dx,303h ;Адрес порту
insw ;Ввод з порту 16-бітового даного
-
|
 |
::
Наша кнопка :: |
 |
|
 |
Отримати код:
|
Підтримайте наш сайт і розмістіть нашу
кнопку на своєму ресурсі. |
|
|
 |
::
Популярне :: |
 |
|
|
 |
:: Посилання :: |
 |
|
|
|