Програмування на мові Асемблер
Програмування на мові Асемблер
Тип документу: Реферат
Сторінок: 9
Предмет: Компьютерные науки
Автор: Олексій
Розмір: 0
Скачувань: 1465
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, проте зберігає при цьому тільки значення прапорів, які можуть перевірятись іншими командами,
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, проте зберігає при цьому тільки значення прапорів, які можуть перевірятись іншими командами,