Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ГОС_ответы.doc
Скачиваний:
41
Добавлен:
27.10.2018
Размер:
21.59 Mб
Скачать

Vich_1 dd 2 dup (0)

Vich_2 dd 2 dup (0)

rez     dd   2 dup (0)

...

;ввести значения в поля vich_1 и vich_2:

;младший байт по младшему адресу

...

    mov   eax,vich_1

    sub   eax,vich_2      ;вычесть младшие половинки чисел

    mov   rez,eax ;младшая часть результата

    mov   eax,vich_1+4

    sbb   eax,vich_2+4    ;вычесть старшие половинки чисел

   mov   rez+4,eax       ;старшая часть результата

SBB (SuBtract with Borrow) Вычитание с заемом

Назначение: целочисленное вычитание с учетом результата предыдущего вычитания командами sbb и sub (по состоянию флага переноса cf).

sbb операнд_1,операнд_2 

Алгоритм работы:

  • выполнить сложение операнд_2=операнд_2+(cf);

  • выполнить вычитание операнд_1=операнд_1-операнд_2;

Состояние флагов после выполнения команды:

11

07

06

04

02

00

OF

SF

ZF

AF

PF

CF

r

r

r

r

r

r

Команда sbb используется для выполнения вычитания старших частей значений многобайтных операндов с учетом возможного предыдущего заема при вычитании младших частей значений этих операндов.

;выполнить вычитание 64-битных значений: vich_1-vich_2

vich_1  dd      2 dup (0)

vich_2  dd      2 dup (0)

rez     dd      2 dup (0)

...

;ввести значения в поля vich_1 и vich_2:

;младший байт по младшему адресу

...

    mov   eax,vich_1

    sub   eax,vich_2      ;вычесть младшие половинки чисел

    mov   rez,eax ;младшая часть результата

    mov   eax,vich_1+4

    sbb   eax,vich_2+4    ;вычесть старшие половинки чисел

    mov   rez+4,eax       ;старшая часть результата

INC (INCrement operand by 1) Увеличить операнд на 1

  Схема команды: 

inc операнд 

Назначение: увеличение значения операнда в памяти или регистре на 1.

inc операнд 

Состояние флагов после выполнения команды:

11

07

06

04

02

OF

SF

ZF

AF

PF

r

r

r

r

r

Команда используется для увеличения значения байта, слова, двойного слова в памяти или регистре на единицу. При этом команда не воздействует на флаг cf.

Inc ax ;увеличить значение в ax на 1

DEC (DECrement operand by 1) Уменьшение операнда на единицу

Назначение: уменьшение значения операнда в памяти или регистре на 1.

dec операнд 

Состояние флагов после выполнения команды:

11

07

06

04

02

OF

SF

ZF

AF

PF

r

r

r

r

r

Команда dec используется для уменьшения значения байта, слова, двойного слова в памяти или регистре на единицу. При этом заметьте то, что команда не воздействует на флаг cf.

    mov   al,9

...

    dec  al    ;al=8