Простые
арифметические операторы.
Арифметические
команды любого микропроцессора привлекают к себе наибольшее внимание. Каждый заинтересован
в выполнении арифметических вычислений, и именно эти команды проделывают такую
работу. Хотя их немного, они выполняют большинство преобразований данных, а
микропроцессоре. В реальных же условиях арифметические команды занимают лишь
малую часть всех исполняемых команд.
Сложение.
Команда
ADD (Addition - сложение (гл. to add - сложить)) осуществляет сложение первого
и второго операндов. Исходное значение первого операнда (приемника) теряется,
замещаясь результатом сложения. Второй операнд не изменяется. В качестве
первого операнда команды ADD можно указывать регистр (кроме сегментного) или
ячейку памяти, в качестве второго - регистр (кроме сегментного), ячейку памяти
или непосредственное значение, однако не допускается определять оба операнда одновременно
как ячейки памяти. Операнды могут быть байтами или словами и представлять числа
со знаком или без знака. Команду ADD можно использовать для сложения как
обычных целых чисел, так и двоично-десятичных (с использованием регистра АХ для
хранения результата). Команда воздействует на флаги OF, SF, ZF, AF, PF и CF.
Примеры:
mov
al,10 - --> загружаем в регистр AL число 10
add
al,15 - --> al = 25; al - приемник, 15 - источник
mov
ax,25000 - --> загружаем в регистр AX число 25000
add
ax,10000 - --> ax = 35000; ax - приемник, 10000 - источник
mov
cx, 200 - --> загружаем в регистр CX число 200
mov
bx,760 - --> а в регистр BX - 760
add
cx,bx - --> cx = 960, bx = 760 (bx не меняется); cx - приемник, bx -
источник
Вычитание.
Команда
SUB (Subtraction - вычитание) вычитает второй операнд (источник) из первого
(приемника) и помещает результат на место первого операнда. Исходное значение
первого операнда (уменьшаемое) теряется. Таким образом, если команду вычитания
записать в общем виде
SUB
операнд1, операнд2
то
ее действие можно условно изобразить следующим образом:
операнд1
- операнд2 - > операнд1
В
качестве первого операнда можно указывать регистр (кроме сегментного) или
ячейку памяти, в качестве второго - регистр (кроме сегментного), ячейку памяти
или непосредственное значение, однако не допускается определять оба операнда
одновременно как ячейки памяти. Операнды могут быть байтами или словами и
представлять числа со знаком или без знака. Команда воздействует на флаги OF,
SF, ZF, AF, PF и CF.
Примеры:
mov
al,10
sub
al,7 - --> al = 3; al - приемник, 7 - источник
mov
ax,25000
sub
ax,10000 - --> ax = 15000; ax - приемник, 10000 - источник
mov
cx,100
mov
bx,15
sub
cx,bx - --> cx = 85, bx = 15 (bx не меняется); cx - приемник, bx - источник
Инкремент
(увеличение на 1).
Команда
INC (Increment - инкремент) прибавляет 1 к операнду, в качестве которого можно
указывать регистр (кроме сегментного) или ячейку памяти размером как в байт,
так и в слово.
Не
допускается использовать в качестве операнда непосредственное значение. Операнд
интерпретируется как число без знака. Команда воздействует на флаги OF, SF, ZF,
AF и PF. Команда не воздействует на флаг CF; если требуется воздействие на этот
флаг, необходимо использовать команду Add Op,l.
Команда
INC (Increment - инкремент) увеличивает на единицу регистр или значение
операнда в памяти.
Она
эквивалентна команде ADD источник, 1 только выполняется гораздо быстрее.
Примеры:
mov
al,15
inc
al - --> теперь AL = 16 (эквивалентна add al,1)
mov
dh,39h
inc
dh - --> DH = 3Ah (эквивалентна add dh,1)
mov
cl,4Fh
inc
cl - --> CL = 50h (эквивалентна add cl,1)
Декремент
(уменьшение на 1).
Команда
DEC (Decrement - декремент) вычитает 1 из операнда, в качестве которого можно
указывать регистр (кроме сегментного) или ячейку памяти размером как в байт,
так и в слово. Не допускается использовать в качестве операнда непосредственное
значение. Операнд интерпретируется как число без знака. Команда воздействует на
флаги OF, SF, ZF, AF и PF.
Она
эквивалентна команде SUB источник, 1 только выполняется гораздо быстрее.
Примеры:
mov
al,15
dec
al - --> теперь AL = 14 (эквивалентна sub al,1)
mov
dh,39h
dec
dh - --> DH = 38h (эквивалентна sub dh,1)
mov
cl,4Fh
dec
cl - --> CL = 4Dh (эквивалентна sub cl,1)
Оставьте свой комментарий
Авторизуйтесь, чтобы задавать вопросы.