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

O

OR Логическое Включающее ИЛИ

Команда or выполняет операцию логического (побитового) сложения двух операндов. Результат замещает первый операнд (приемник); второй операнд (источник) не изменяется. В качестве первого операнда можно указывать регистр (кроме сегментного) или ячейку памяти, в качестве второго – регистр (кроме сегментного), ячейку памяти или непосредственное значение, однако не допускается определять оба операнда одновременно как ячейки памяти. Операнды команды or могут быть байтами или словами. Команда воздействует на флаги OF, SF, ZF, PF и CF, при этом флаги CF и OF всегда сбрасываются в 0.

Правила побитового сложения:

Первый операнд-бит 0101

Второй операнд-бит 0011

Бит результата 0111

Пример 1:

mov AX,000Fh
mov BX,00F0h
or AX,BX; AX=00FFh, BX=00F0h

Пример 2:

mov AX,000Fh
mov BX,00F7h
or AX,BX; AX=00FFh, BX=00F7h

Пример 3:

mov AX,000Fh
or AX,8001h; AX=800Fh

Пример 4:

; В полях данных
mask db 80h
;B программном сегменте
mov CH,17h
or CH,mask; CH=97h

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

Пример:

;В полях данных
mem dd 80000000h
; В программном сегменте
or mem,0C0h; mem=800000C0h

OUT Вывод в порт

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

Пример 1:

mov AL,20h; Команда конца прерывания (EOI)
out 20h,AL; Вывод команды EOI в порт
;20h контроллера прерываний

Пример 2:

mov DX,3CEh; Адрес порта
mov AL,5; Данное
out DX,AL; Вывод байта из AL в порт 3CEh

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

Пример:

mov ЕАХ,1А008РРЗh; Пересылаемое данное
mov DX,345h; Адрес порта
out DX,EAX; Вывод в порт двойного слова
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.