Реферат: Программная модель процессоров семейства X86
…
|
pop bx
pop ax
push ax
pop bx ; аналогичнокоманде mov bx,ax
push a - размещение в стеке регистров общего назначения в следующей последовательности: ax, cx, dx, bx, sp, bp, si, di
push ad - размещение в стеке регистров общего назначения в следующей последовательности: eax, ecx, edx, ebx, esp, ebp, esi, edi
pushf - размещение в вершине стека (ss:sp) содержимого регистра флагов flags
pushfd - размещение в стеке содержимого регистра флагов eflags.
p opa - извлечение из стека регистров общего назначения di, si, bp, sp, bx, dx, cx, ax
p opad - извлечение из стека регистров общего назначения edi, esi, ebp, esp, ebx, edx, ecx, eax
p opf - извлечение из стека слова и восстановление его в регистр флагов flags
p opfd - извлечение из стека двойного слова и восстановление его в регистр флагов eflags
Организация вычислений
Логические команды
Любая логическая команда меняет значение следующих флагов of, sf,zf,pf,cf (переполнение, знак, нуля, паритет, перенос)
and операнд_1,операнд_2 — операция логического умножения (И - конъюнкция).
оп1:=оп1 ٧оп2
and ah, 0a1h; ah:=ah٧0ah
and bx, cx; bx:=bx٧cx
and dx, x1; dx:=dx٧x1
or операнд_1,операнд_2 — операция логического сложения (ИЛИ - дизъюнкцию)
or al, x1; оп1:=оп1 & оп2
or eax,edx
or dx, x1
xor операнд_1,операнд_2 — операция логического исключающего сложения (исключающего ИЛИ ИЛИ-НЕ)
test операнд_1,операнд_2 — операция “проверить” (способом логического умножения).
Команда выполняет поразрядно логическую операцию И над битами операндов операнд_1 и операнд_2. Состояние операндов остается прежним, изменяются только флаги zf, sf, и pf, что дает возможность анализировать состояние отдельных битов операнда без изменения их состояния.
not операнд — операция логического отрицания. Команда выполняет поразрядное инвертирование (замену значения на обратное) каждого бита операнда. Результат записывается на место операнда.
Пример программы логического сложения двух однобайтных чисел.
model small .stack 100h .data x1 db 0c2hx2 db 022hy db ?.code start: mov ax,@data mov ds,ax mov al, x1or al, x2mov y, al mov ax,4c00h int 21 h