Переход, если паритет не четный
Поможем в ✍️ написании учебной работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

IF РF= 0, IP:= [met9].

met9-(близкая метка)

--

--

--

--

--

--

--

0

--

Add ax , bx; Сложить АХ и ВХ.

J np met9; Перейти, если РF

                                                                 

 

Продолжение таблицы 3.6

 

Команды управления циклом

Мнемокод

Описание команд

Флаги, пояснения, примеры

OF

DF

IF

TF

SF

ZF

AF

PF

CF

LOOP met

Повторять цикл

пока СХ ≠ 0. CX:=CX-1

If CX ≠ 0,

then Go met.

--

--

--

--

--

--

--

--

--

Mov cx ,10; Число повторений в СХ.

Mov ax ,45; Число в АХ.

L : Add ax , bx; Сложить с ВХ.

Loop L; Повторить сложение 10 раз.

LOOPE met

LOOPZ met

 

Повторять цикл пока CX ≠ 0 и ZF = 1:

 - пока равно, или

 

- пока ноль.

CX:=CX-1

If CX ≠ 0 and ZF=1 then Go to met.

--

--

--

--

--

--

--

--

--

Mov cx ,10; Число повторений в СХ.

Mov ax ,45; Число в АХ.

L : Cmp ax ,[ bx ]; Сравнить с содержи-

             мым ячейки по адресу [bx]

Inc bx ; Увеличить адрес на 1.

Loope L; Повторить сравнение 10 раз.

Dec bx ; Уменьшить адрес на 1.

Mov dx , bx ; Адрес ячейки в DX.

LOOPNE met

LOOPNZ met

 

Повторять цикл пока CX ≠ 0 и ZF= 0:

- пока не равно или,

 

- пока не ноль

CX:= CX - 1

If CX ≠ 0 and ZF= 0 then Go to met.

--

--

--

--

--

--

--

--

--

Mov cx ,10; Число повторений в СХ.

Mov ax ,45; Число в АХ.

L : Cmp ax ,[ bx ]; Сравнить с содержи-

             мым ячейки по адресу [bx]

Inc bx ; Увеличить адрес на 1.

Loopne L; Повторить сравнение.

Dec bx ; Уменьшить адрес на 1.

Mov dx , bx ; Адрес ячейки в DX.

Команды условной установки байта

SETAE пр.

SETN В пр.

SETN С пр.

Установить, если: выше или равно;

не ниже;

нет переноса.

IF CF= 0, пр.:= 1.

--

--

--

--

--

--

--

--

0

 М ov cx , 54 H; Операнд для сравнения

 Cmp cx , 43 H; Сравнение, CF = 0.

 SETA Е AL; AL устанавливается в 1.

SETB пр.

SETС пр.

Установить, если: ниже,

Перенос.

IF CF= 1, пр.:= 1.

--

--

--

--

--

--

--

--

1

 М ov cx , 54 H; Операнд для сравнения

 Cmp cx , 75 H; Сравнение, CF = 1.

 SET С AL; AL устанавливается в 1.

                                                           

 

 

Продолжение таблицы 3.6

Мнемокод

Описание команд

Флаги, пояснения, примеры

OF

DF

IF

TF

SF

ZF

AF

PF

CF

SETBE пр. SETNA пр.

Установить, если ниже или равно,

 не выше.

IF CF= 1 или ZF= 1,

--

--

--

--

--

1

--

--

1

 М ov cx , 54 H; Операнд для сравнения

 Cmp cx , 43 H; Сравнение, CF = 1.

 SET BE AL; AL устанавливается в 1.

SETE пр.

SETZ пр.

Установить, если равно,

ноль.

IF ZF= 1, пр.:= 1.

--

--

--

--

--

1

--

--

--

 М ov cx , 54 H; Операнд для сравнения

Cmp cx , 54 H; Сравнение,  ZF = 1.

SET E AL; AL устанавливается в 1.

SETNE пр.

SETNZ пр.

Установить, если

Не равно,

 не нуль.

IF ZF= 0, пр.:= 1.

--

--

--

--

--

0

--

--

--

 М ov cx , 54 H; Операнд для сравнения      

 Cmp cx , 86 H; Сравнение,  ZF = 0  

 SETNZ AL; AL устанавливается в 1

SETP пр

SETPE пр.

Установить, если четно,

паритет чётный.

IF PF= 1, пр.:= 1.

 

--

--

--

--

--

--

--

1

--

 М ov cx , 55 H; Операнд в СХ.

ADD cx , 86 H; Добавить к СХ 86Н.

SETP CL; AL устанавливается в 1.

SETNP пр.

SETPO пр.

Установить, если нечетно,

паритет нечетный.

IF PF= 0, пр.:= 1

--

--

--

--

--

--

--

0

--

 М ov cx , 54 H; Операнд в СХ.

ADD cx , 86 H; Добавить к СХ 86Н.

SETNP AL; AL устанавливается в 1.

 

SETA пр.

SETNBE пр

 Установить, если

 выше,

не ниже и не равно.

IF CF= 0, ZF= 0,

пр.:= 1

--

--

--

--

--

0

--

--

0

 М ov cx , 54 H; Операнд для сравнения.

 Cmp cx , 43 H; Сравнение,  CF и ZF =0.

 SETA AL; AL устанавливается в 1.

SETGE пр.

SETNL пр.

Установить, если

Больше или равно,

 не меньше.

IF SF= OF, пр.:= 1

*

--

--

--

*

--

--

--

--

 М ov cx , 54 H; Операнд для сравнения.

 Cmp cx , 32 H; Сравнение,  SF = OF.

 SETGE DL; DL устанавливается в 1.

SETL пр.

SETNGE пр.

Установить, если меньше,

Не больше

IF SF ≠ OF, пр.:= 1

 

*

--

--

--

*

--

--

--

--

 М ov cx , 54 H; Операнд для сравнения.

 Cmp cx , 62 H; Сравнение,  SF ≠ OF.

 SETL AL; AL устанавливается в 1.

                                                                 

 

Продолжение таблицы 3.6

Мнемокод

Описание команд

Флаги, пояснения, примеры

OF

DF

IF

TF

SF

ZF

AF

PF

CF

SETLE пр .

SETNG пр .

Установить, если меньше или равно,

 не больше.

IF ZF=1 или SF ≠ OF

Пр.:= 1

*

--

--

--

*

1

--

--

--

 М ov cx , 62 H; Операнд для сравнения.

 Cmp cx , 62 H; Сравнение,  SF ≠ OF,

                    ZF =1.

 SETLE AL; AL устанавливается в 1.

SETS пр.

Установить, если отрицательно.

IF SF= 1, пр.:= 1

--

--

--

--

1

--

--

--

--

 М ov cx , 54 H; Операнд в СХ.

Mov ax , 55 H; Операнд в АХ.

SUB cx, ax; 54H - 55H = FFFFF,  SF= 1.

 SETS DL; DL устанавливается в 1.

SETNS пр.

Установить, если положительно.

IF SF= 0, пр.:= 1

--

--

--

--

0

--

--

--

--

 М ov cx , 78 H; Операнд в СХ.

Mov ax , 55 H; Операнд в АХ.

SUB cx, ax ; 78H - 55H = 23H,  SF = 0

 SETNS BL; BL устанавливается в 1.

SETO пр.

Установить, если переполнение.

IF OF= 1, пр.:= 1

1

--

--

--

--

--

--

--

--

 М ov cx , 308 H; Операнд в СХ.

Mov ax , 55 H; Операнд в АХ.

Mul cx, ax ; 308 × 55 = 101A8, OF = 1.

 SETO BL; BL устанавливается в 1.

SETNO пр.

Установить, если

Не переполнение.

IF OF= 0, пр.:= 1

0

--

--

--

--

--

--

--

--

М ov cx , 38 H; Операнд в СХ.

Mov ax , 55 H; Операнд в АХ.

Mul cx, ax; 38 × 55 = 1298Н, OF = 0.

 SETNO BL; BL устанавливается в 1.

 

Операции над регистрами флагов

LANF

Загрузить флаги в AH.

 AH:=SF, ZF, x, AF, x, PF, x, CF.

--

--

--

--

*

*

*

*

*

LANF; Загружает флаги в АН.

AND ah ,11 H; Маскирует биты AF и CF.

JNZ M 3; Переход по “ AF = CF =1”.

SANF

Сохранить АН в регистре флагов.

SF, ZF, х, AF, х,  PF, х, CF:= АН. 

--

--

--

--

*

*

*

*

*

LANF; Загружает флаги в АН.

OR ah ,4; Установим PF =1.

SANF; Восстановим флаги.

                                                                                                 

Продолжение таблицы 3.6

Мнемокод

Описание команд

Флаги, пояснения, примеры

OF

DF

IF

TF

SF

ZF

AF

PF

CF

PUSHF

    

PUSHFD

Копировать флаги в стэк.

SP: = SP-2,

SS:SP:= EF  (Flags)

SS:[(E)SP]:= EF

(E)SP:= SP-4

SS:[(E)SP]:= EF   

*

*

*

*

*

*

*

*

*

PUSHF; Сохранить флаги в стэке.

OR SS :[ SP ], 800 H; Установить OF =1.

POPF; Восстановить флаги.

POPF

POPFD

Восстановить флаги из стэка.

EF Flags:= SS[(E)SP]

(E)SP:= SP-2

EF Flags:= SS[(E)SP]

(E)SP:= SP-4

*

*

*

*

*

*

*

*

*

PUSHF; Сохранить флаги в стэке.

OR SS :[ SP ], 800 H; Установить OF =1.

POPF; Восстановить флаги.

STC

Установить флаг переноса.

CF := 1

--

--

--

--

--

--

--

--

1

STC; Флаг переноса CF устанавливается      

     в 1.

CLC

Сбросить флаг переноса

CF := 0

--

--

--

--

--

--

--

--

0

CLC; Флаг переноса CF сбрасывается

      в 0.

CMC

Инвертировать флаг переноса

CF:=

 

--

--

--

--

--

--

--

--

*

CMC; Если CF =1, то он устанавли-

        вается в 0, если CF =0, то в 1.

STD

Установить флаг направления

DF := 1

--

1

--

--

--

--

--

--

--

Mov cx ,100; Устанавливаем счетчик.

STD; Устанавливаем флаг DF  в 1.

Rep Mov Tab1,Tab2; Пересылаем 100

               элементов из Tab2 в Tab.    

CLD

Сбросить флаг направления

DF := 0

--

0

--

--

--

--

--

--

--

Mov cx ,100; Устанавливаем счетчик,

CLD; Сброс флага направленияв 0,

Rep Mov Tab1,Tab2;Пересылаем 100

               элементов из Tab2 в Tab1.    

STI

Установить флаг разрешения преры-вания IF := 1

--

--

1

--

--

--

--

--

--

STI ; Устанавливает IF в 1.

                                               

Окончание таблицы 3.6

Мнемокод

Описание команд

Флаги, пояснения, примеры

OF

DF

IF

TF

SF

ZF

AF

PF

CF

CLI

Сбросить флаг разрешения преры-вания IF := 0

--

--

0

--

--

--

--

--

--

CLI; Сбрасывает IF в 0.

Программные прерывания

INT 21H

  Функция DOS 01h. Ввод символа с клавиатуры с эхом на дисплее.

Вход : AH = 01H .

Выход: AL:= символ

--

--

1

--

--

--

--

--

--

Mov ah ,01 h; Код функции DOS в АН

Int 21 h ; Копирование в стеке содержи-   

        мого регистров IP, CS, EFLAGS 

        и вызов программы обработки

        прерывания с функцией 01Н.

INT 21 H

Функция DOS 02 h .

Вывод символа на экран.

Вход : AH = 02H

      DL = ASCII – 

      код символа

--

--

1

--

--

--

--

--

--

Mov DL , 41 H; ASCII– код буквы А в DL

Mov AH ,02 H; Код функции DOS в АН

Int 21 h; Копирование в стеке содержи-   

        мого регистров IP, CS, EFLAGS 

        и вызов программы обработки

        прерывания с функцией 02Н.

INT 21Н

Функция DOS 4С h .

Завершение программы:

Вход: AH = 4СH

1

--

1

--

--

--

--

--

--

Mov AH ,4 CH ;Код функции DOS в АН.

INT 21H ; Вызов DOS.

INT 21H

Функция DOS 09 h .

Вывод строки символов на экран.

Вход : AH : = 09H

      DX : = адрес выводимой строки символов. В конце строки должен быть знак $.

--

*

1

--

--

--

--

--

--

Lea DX , stroka; Адрес строки в DX

Mov AH ,09 H; Код функции DOS в АН

Int 21 h; Копирование в стеке содержи-   

      мого регистров IP, CS, EFLAGS 

      и вызов программы обработки

      прерывания с функцией 09Н.

IRET

Возврат из подпрограммы

IP:= [SS:SP]

CS:= [SS:SP+ 2]

EF Flags:= [SS:SP+ 2]

*

*

*

*

*

*

*

*

*

Дата: 2018-11-18, просмотров: 528.