Програмування на мові Асемблер
Ці команди збільшують на 1 значення 4-х регістрів загального призначення (16-бітові)
Можна на 1 збльшити 8-бітовий регістр:
inc dh ; dhdh+1
КОМАНДИ ВІДНІМАННЯ
По своїй формі віднімання в Ас.схоже з додаванням
Команда sum віднімає значення байтів або слів.
Команда sbb діє аналогічно, проте враховує можливу
помилку при попередньому відніманні багатобайтових
значень.
1) sub ax , bx axax-bx
2) Можна віднімати два регістри також можна віднімати безпосередні значення:
sub cx,5 ;cxcx-5
sub dx,[score] ; dxdx-[score]
sub [answer],3 ;[answer][answer]-3
sub ax,1 ; axax-1
3) Останню команду можна замінити командою dec,
яка віднімає 1 з регістра або значення в пам’яті
На 1 можна зменшити також значення представлені байтом або словом.
dec ax ;axax-1
dec dl ;dldl-1
dec si ;sisi-1
ДИВНІ ВІДНІМАННЯ
Чому команди Neg (змінює знак двійкового значення) і Cmp (порівнює дві величини) стоять разом з командами віднімання ?
1) В випадку з neg CPU 8086 віднімає відповідні значення з 0.Це значення може бути записане в регістрі або пам’яті. При відніманні значень з 0 одержується значення в додатковому коді , або інакше двійкове доповнення цього значення, що
еквівалентне заміні всіх 0 на 1, а 1на 0 додаємо 1 Простіше скористатися командою neg: