OUTS Вывод строки в порт
OUTSB Вывод байта в порт
OUTSW Вывод слова в порт
OUTSD Вывод двойного слова в порт
Команды предназначены для вывода данных в порт непосредственно из памяти. Адрес
порта указывается, как и для команды out, в регистре DX, при этом задание адреса
порта непосредственным значением не допускается. Данные извлекаются из памяти
по адресу, находящемуся в паре регистров DS:ESI. Замена сегмента не допускается.
Команда outsb передает в порт 1 байт, команда outsw - 1 слово, команда outsd
- 1 двойное слово, а команда outs может быть использована для передачи байтов,
слов и двойных слов. В последнем случае размер загружаемого данного определяется
описанием строки (с помощью директив db, dw или dd). После передачи данных регистр
ESI получает положительное (если флаг DF=0) или отрицательное (если флаг DF=1)
приращение. Величина приращения составляет 1, 2 или 4 в зависимости от размера
передаваемых данных.
Вариант команды outs имеет формат
outs DX, строка
(что не избавляет от необходимости
инициализировать регистры DS:ESI адресом строки).
Если устройство, адресуемое через порт, может принимать последовательность данных,
то команды outs можно предварить префиксом повторения rep. В этом случае в порт
пересылается СХ элементов данных заданного размера.
Команды outs не воздействуют на флаги процессора.
Пример 1
; В полях данных
Пример 2
; В полях данных