I
IN Ввод из порта
Команда in вводит в регистр AL или АХ соответственно байт или слово из порта, указываемого вторым операндом. Адрес порта помещается в регистр DX. Если адрес порта не превышает 255, он может быть указан непосредственным значением. Указание регистра-приемника (AL или АХ) обязательно, хотя с другими регистрами команда in не работает, и их указывать нельзя. Команда не воздействует на флаги процессора.
Пример 1:
in AL, 60h; Ввод байта из порта 60h
Пример 2:
mov DX,3D5h; Адрес порта in AL,DX; Ввод байта из порта 3D5h
Допустимо использование в качестве операнда-приемника расширенного регистра ЕАХ (если адресуемое устройство позволяет прочитать из его порта двойное слово).
Пример:
mov DX,345h; Адрес порта in EAX,DX
INC Инкремент (увеличение на 1)
Команда inc прибавляет 1 к операнду, в качестве которого можно указывать регистр (кроме сегментного) или ячейку памяти размером как в байт, так и в слово. Не допускается использовать в качестве операнда непосредственное значение. Операнд интерпретируется как число без знака. Команда воздействует на флаги OF, SF, ZF, AF и PF. Команда не воздействует на флаг CF; если требуется воздействие на этот флаг, необходимо использовать команду add op,l.
Пример 1:
mov AX,0563h inc AX; AX=0564h
Пример 2:
mov BH,15h inc BH; BH=16h
Пример 3:
mov AX,A5FFh inc AL; AX=A500h inc AH; AX=A600h
Пример 4:
mov AX,0FFFFh inc AX; AX=0000h, ZF=1, CF=0 ;Для сравнения: mov CX,0FFFFh add CX,1; CX=0000h, ZF=1, CF=1
Допустимо использование 32-битовых операндов и дополнительных режимов адресации 32-разрядных процессоров.
Пример:
;В полях данных mem dd 12345678h ; В программном сегменте inc mem; mem=12345679h