A
Пример 4:
mov AX,0507h; BCD распакованное 57 add AL,05h; BCD 5, AX=050Ch aaa; AX=0602h, BCD 62
Пример 5:
mov AL,57h; BCD упакованное 57 add AL,05h; BCD 5, AL=5Ch daa; AL=62h, BCD 62
Допустимо использование 32-битовых операндов и дополнительных режимов адресации 32-разрядных процессоров.
Пример:
mov EAX,98765432h add EAX,11111111h; EAX=A9876543h
AND Логическое И
Команда and осуществляет логическое (побитовое) умножение первого операнда на второй. Исходное значение первого операнда (приемника) теряется, замещаясь результатом умножения. В качестве первого операнда команды and можно указывать регистр (кроме сегментного) или ячейку памяти, в качестве второго – регистр (кроме сегментного), ячейку памяти или непосредственное значение, однако не допускается определять оба операнда одновременно как ячейки памяти. Операнды могут быть байтами или словами. Команда воздействует на флаги SF, ZF и PF.
Правила побитового умножения:
Первый операнд-бит 0101 Второй операнд-бит 0011 Бит результата 0001
Пример 1:
mov AX,0FFEh and AX,5555h; AX=0554h
Пример 2:
; В полях данных: mem dw 0С003h ;В программном сегменте: mov AX,700Eh and AX,mem; AX=4002h
Допустимо использование 32-битовых операндов и дополнительных режимов адресации 32-разрядных процессоров.
Пример:
mov EDX, 0FA8 8 0 0 4 lh and EDX,0FF00000Fh; EDX = FA000001h
386P+ ARPL Коррекция запрашиваемого уровня привилегий селектора
Команда aprl сравнивает селектор с образцом, содержащим максимально допустимый уровень привилегий (обычно используется селектор CS) и устанавливает проверяемое значение в соответствии с меньшим из двух уровней привилегий. Если изменение уровня не потребовалось, флаг ZF сбрасывается, если потребовалось – устанавливается. В качестве первого операнда команды aprl может использоваться 16-разрядный регистр или слово памяти с проверяемым селектором; в качестве второго операнда – 16-разрядный регистр с селектором-образцом.