Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпоры по архитектуре ЭВМ.doc
Скачиваний:
46
Добавлен:
02.05.2014
Размер:
238.59 Кб
Скачать

10. Команды двоичной арифметики

add пр, ист - сложение. Рез-т в пр., не изменяя содерж. ист.

adс пр, ист - слож-е с переносом. Аналог. предыд. Вып-т сложение пр, ист и флага CF. Для слож-я чисел повыш. точности.

ех: сложением 2 64-битн. ч-ла.

edx:eax

ebx:ecx

Пусть одно знач-е наход. в паре р-р edx и eax, а др. в паре р-в ebx:ecx

add eax,ecx

adc edx,ebx

Если при слож. младш. двойн. слов произошел перенос из старшего разряда, то он будет учтен командой adc.

xadd пр, ист - обменять между собой и сложить. Вып-т слож-е, а сумму операндов в пр. Ист. всегда р-р, пр. мб р-р или переменная.

sub пр, ист - вычитает. Рез-т в приемник

sbb пр, ист - вычитание с займом. Аналог. пред-й, вычит. из пр. знач-е ист. и доп-но вычитает знач. флага CF. Для вычит. 64бит ч-л.

1) imul ист. - команда умн-я ч-л со знаком. Ист. явл. р-р или перем. умнож. al, ax или eax в завис-ти от разм. опер.

ax, dx:ax

edx:eax

imul bl

2) imul пр, ист - ист. - это число, р-р или перем. умнож на пр. - р-р. Рез-т заносится в пр.

3) imul пр, ист1, ист2 - ист1 умнож. на ист2 только ч-ло, рез-т в пр, только р-ре.

mul ист - умн-е чисел без знака. Сод-е ист-ка, р-р или пер-я, на р-р al, ax или eax

mov ax, 2

mov bx, 3

mul bx

idiv ист - целочисл. деление со знаком р-ра. ae, ax или eax на ист., р-р или пер-ю, а остаток в ah, dx или edx соотв.

div ист. - целочисл. деление без знака

inc пр. - вызывают инкрименты. Увел. пр., р-р или пер-ю на 1. Флаг CI в данной команде не затрагивается. Остальные флаги устан. в соотв. с рез-том.

dec пр. - уменьш. на 1

neg пр. - изменение знака. Выполн. над числом в пр., операцию дополнения до 2х.

cmp пр, ист - сравнение. Сравнить пр. и ист. путем вычитания ист (число, р-р или перем) из пр. (р-р и пер-я)

mov cx, 32

cmp cx, 0

CMPXCH6 пр, ист - сравнить и обменять сравн. знач-е в р-ре al, ax и eax копир. в пр. Флаг СF устан. = в противн. случае содерж. пр. копир. в al, ax или eax и флаг ZF устан. = 0

CMPXCH68B пр. - сравн. и обмен. 8 байт - выполн. сравн-е содерж. edx, eax как 64битн. ч-ла с пр. (8ми байт пер-яв памяти). Если = ecx:ebx как в 4битн. число, помещ. в пр., в противн. случае, пр. копир. в cdx eax.

11. Команды десятичной арифметики языка assembler. Синтаксис. Примеры.

Процессоры поддерживают операции с двумя форматами десятичных чисел:

- неупакованное двоично-десятичное число, т.е. байт принимает значения от 00 до 09h

- упакованное двоичное число (00—99h)

Все обычные арифметические операции над такими числами приводят к неправильным результатам, например если 19h+1, то 1ah, а на самом деле 20h

Коррекция после сложения.

DAA – если эта операция выполняется после ADD и в регистре al находится сумма двух упакованных чисел, то в al записывается упакованное двоично-десятичное число, которое должно стать результатом сложения.

DAS – коррекция после вычитания

AAA – ASCII коррекция после сложения

AAS - ASCII коррекция после вычитания

AAM - -//- после умножения

AAD - -//- после деления

AAA – коррекция суммы двух неупакованных двоично-десятичных чисел.

Example:

mov ax, 5

mov bx, 6

add ax, bx ; ax = 000Bh

aaa; ax = 0101

AAD – выполняет коррекцию неупакованного двоично-десятичного числа в регистре ax так, чтобы последующее деление привело к десятичному результату.

Example:

mov ax, 0205

mov be, 5

aad ; ax = 19h

div be ; ax = 0005