Иллюстрированный самоучитель по Assembler

I

IN Ввод из порта

Команда in вводит в регистр AL или АХ соответственно байт или слово из порта, указываемого вторым операндом. Адрес порта помещается в регистр DX. Если адрес порта не превышает 255, он может быть указан непосредственным значением. Указание регистра-приемника (AL или АХ) обязательно, хотя с другими регистрами команда in не работает, и их указывать нельзя. Команда не воздействует на флаги процессора.

Пример 1:

in AL, 60h; Ввод байта из порта 60h

Пример 2:

mov DX,3D5h; Адрес порта
in AL,DX; Ввод байта из порта 3D5h

Иллюстрированный самоучитель по Assembler › Приложение. Система команд процессоров Intel. › I Допустимо использование в качестве операнда-приемника расширенного регистра ЕАХ (если адресуемое устройство позволяет прочитать из его порта двойное слово).

Пример:

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

Иллюстрированный самоучитель по Assembler › Приложение. Система команд процессоров Intel. › I Допустимо использование 32-битовых операндов и дополнительных режимов адресации 32-разрядных процессоров.

Пример:

;В полях данных
mem dd 12345678h
; В программном сегменте
inc mem; mem=12345679h
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.