Програмування на мові Асемблер, Детальна інформація

Програмування на мові Асемблер
Тип документу: Реферат
Сторінок: 9
Предмет: Комп`ютерні науки
Автор: Олексій
Розмір: 0
Скачувань: 1228
inc cx ; cx(cx+1

inc dx ; dx (dx+1

Ці команди збільшують на 1 значення 4-х регістрів загального призначення (16-бітові)

Можна на 1 збльшити 8-бітовий регістр:

inc dh ; dh(dh+1

КОМАНДИ ВІДНІМАННЯ

По своїй формі віднімання в Ас.схоже з додаванням

Команда sum віднімає значення байтів або слів.

Команда sbb діє аналогічно, проте враховує можливу

помилку при попередньому відніманні багатобайтових

значень.

sub ax , bx ax(ax-bx

Можна віднімати два регістри також можна віднімати безпосередні значення:

sub cx,5 ;cx(cx-5

sub dx,[score] ; dx(dx-[score]

sub [answer],3 ;[answer]([answer]-3

sub ax,1 ; ax(ax-1

Останню команду можна замінити командою dec,

яка віднімає 1 з регістра або значення в пам’яті

На 1 можна зменшити також значення представлені байтом або словом.

dec ax ;ax(ax-1

dec dl ;dl(dl-1

dec si ;si(si-1

ДИВНІ ВІДНІМАННЯ

Чому команди Neg (змінює знак двійкового значення) і Cmp (порівнює дві величини) стоять разом з командами віднімання ?

В випадку з neg CPU 8086 віднімає відповідні значення з 0.Це значення може бути записане в регістрі або пам’яті. При відніманні значень з 0 одержується значення в додатковому коді , або інакше двійкове доповнення цього значення, що

еквівалентне заміні всіх 0 на 1, а 1на 0 додаємо 1 Простіше скористатися командою neg:

neg ax ; одержання двійкового доповнення ах

neg [value] ;одер. Двійкового доповнення [value]

Більшість процесорів цифрових виконують порівняння шляхом віднімання одного значення з другого, а потім порівнюють результат. При цьому встановлюють біти різних прапорів описуючи тим самим результат наприклад, є він 0, від’ємним або додатнім. Cmp виконує віднімання аналогічно ком. Sub, проте зберігає при цьому тільки значення прапорів, які можуть перевірятись іншими командами,

The online video editor trusted by teams to make professional video in minutes