1.
Асемблер: DEC A
Код: 0 0 0 1 0 1 0 0
Час: 1 цикл
Алгоритм: (A) : =(A)-1
Приклад: ;(A)=11H, (C)=1, (AC)=1
DEC A ;(A)=10H, (C)=1, (AC)=1
2.
Асемблер: DEC Rn ; де n=0-7
Код: 0 0 0 1 1 rrr де rrr=000-111
Час: 1 цикл
Алгоритм: (Rn) :=(Rn)-1
Приклад: ;(R1)=7FH,
;(ОЗУ[7F])=40H, (ОЗУ[7F])=00H
DEC @R1
DEC R1
DEC @R1 ;(R1)=7EH,
;(ОЗУ[7F])=3FH, (ОЗУ[7F])=FFH
3.
Асемблер: DEC <data address>
Код: 0 0 0 1 0 1 0 1 data address
Час: 1 цикл
Алгоритм: (data) : = (data)-1
Приклад: ;(SCON)=A0H, (C)=1, (AC)=1
DEC SCON ;(SCON)=9FH, (C)=1, (AC)=1
4.
Асемблер: DEC @Ri ; де i=0,1
Код: 0 0 0 1 0 1 1 i
Час: 1 цикл
Алгоритм: ((Ri) :=((Ri)-1)
Приклад: ;(R1)=7FH,
;(ОЗУ[7F])=40H, (ОЗУ[7F])=00H
DEC @R1
DEC R1
DEC @R1 ;(R1)=7EH,
;(ОЗУ[7F])=3FH, (ОЗУ[7F])=FFH
Команда INC <байт>
Команда виконує додання "1" до вказаної змінної і впливає на прапори.
Початкове значення 0FFH перейде в 00Н. Ця команда припускає чотири
режими адресації:
1. до акумулятору
2. регістровий
3. прямий
4. косвено-регістровий
1.
Асемблер: INC A
Код: 0 0 0 0 0 1 0 0
Час: 1 цикл
Алгоритм: (A) : =(A)+1
Приклад: ;(A)=1FH, (AC)=0
INC A ;(A)=20H, (AC)=0
2.
Асемблер: INC Rn ; де n=0-7
Код: 0 0 0 0 1 rrr де rrr=000-111
Час: 1 цикл
Алгоритм: (Rn) :=(Rn)+1
Приклад: ;(R4)=FFH, (C)=0, (AC)=0
INC R4 ;(R4)=00H, (C)=0, (AC)=0
3.
Асемблер: INC <data address>
Код: 0 0 0 0 0 1 0 1 data address
Час: 1 цикл
Алгоритм: (data) : = (data)+1
Приклад: ;(ОЗУ[43])=22H
INC 43H ;(ОЗУ[43])=23H
4.
Асемблер: INC @Ri ; де i=0,1
Код: 0 0 0 0 0 1 1 i , де i=0,1
Час: 1 цикл
Алгоритм: ((Ri) :=((Ri))+1
Приклад: ;(R1)=41H, (ОЗУ[41])=4fH, (AC)=0
INC @R1 ;(R1)=41H, (ОЗУ[41])=50H, (AC)=0
Команда INC DPTR
Команда виконує інкремент (додання "1") до вмісту 16-бітового покажчика
даних (DPTR). Додання "1" здійснюється до 16 бітів, причому переповнення
молодшого байта покажчика даних (DPL) з FFH в 00Н приводить до
інкременту старшого байта покажчика даних (DPH). На прапори ця команда
не впли.
Асемблер: INC DPTR
Код: 1 0 1 0 0 0 1 1
Час: 2 циклу
Алгоритм: (DPTR):=(DPTR)+1
Приклад: ;(DPH)=12H, (DPL)=FEH
INC DPTR
INC DPTR
INC DPTR ;(DPH)=13H, (DPL)=01H
Команда MUL AB
Команда умножає 8-бітові цілі числа без знака із акумулятора і регістру В.
Старший байт 16-бітового результату поміщується до регістру В, а
молодший - в акумулятор А. Якщо результат більше, ніж 0FFH (255), то
встановлюється прапор переповнення (OV), в протилежному випадку він
скидається. Прапор переносу завжди зкидається.
Асемблер: MUL AB
Код: 1 0 1 0 0 1 0 0
Час: 4 циклу
Алгоритм: (A)[7-0]=(A)*(B),
(B)[15-8]=(A)*(B)
Приклад: ;(A)=50H (50H=80 DEC), (C)=1,
;(B)=0A0H (A0H=160 DEC), (OV)=0
MUL AB ;(A)=00H, (B)=32H, (C)=0, (OV)=1
;(A)=2HH, (OV)=1, (B)=06H, (C)=1
MUL AB ;(A)=0D8H, (B)=00H, (OV)=0, (C)=0
Команда DIV AB
Команда ділить 8-бітове ціле число без знака з акумулятора А, на 8-бітове
ціле без знака в регістрі В. Акумулятор отримує цілу частину результату
(старші розряди), а регістр В - остаток. Прапори переносу (С) і переповнення
(OV) скидаються. Якщо (А)<(В), то прапор додаткового переносу (АС) не
скидається. Прапор переносу скидається убудь-якому випадку.
1.
Асемблер: DIV AB
Код: 1 0 0 0 0 1 0 0
Час: 4 циклу
Алгоритм: (A):=((A)/(B))[15-8],
(B):=((A)/(B))[7-0]
Приклад: Акумулятор містить число 251 (0FBH або
11111011B), а регістр В - число 18 (12H або 00010010В).
Після виконання команди
DIV AB
в акумуляторі буде число 13 (0DH або 00001101В), а в
регістрі В - число 17 (11Н або 00010001В), т.я.
251=(13*18)+17. Прапори С и OV будуть скинуті.
Команда SUBB A, <байт источника>
Команда __________"вычитание с заемом" вычитает указанную переменную вместе с
флагом переноса из содержимого аккумулятора, засылая результат в
аккумулятор. Эта команда устанавливает флаг переноса (заема), если при
вычитании для бита 7 необходим заем, в противном случае флаг переноса
сбрасывается. Если флаг переноса установлен перед выполнением этой
команды, то это указывает на то, что заем необходим при вычитании с
увеличенной точностью на предыдущем шаге, поэтому флаг переноса
вычитается из содержимого аккумулятора вместе с операндом источника.
(АС) устанавливается, если заем необходим для бита 3 и сбрасывается в
противном случае. Флаг переполнения (OV) устанавливается, если заем
необходим для бита 6, но его нет для бита 7, или есть для бита 7, но нет для
бита 6.
При вычитании целых чисел со знаком (OV) указывает на отрицательное
числоЮ которое получается при вычитании отрицательной величины из
положительной, или положительное число, которое получается при
вычитании положительного числа из отрицательного.
Операнд источника допускает четыре режима адресации:
1. регистровый;
2. прямой;
3. косвенно-регистровый;
4. непосредственный (к константе).
1.
Ассемблер: SUBB A, Rn; где n=0-7
Код: 1 0 0 1 1 rrr где r=000-111
Время: 1 цикл
Алгоритм: (A) : = (A)-(C)-(Rn);
(C):=X, (AC):=X, (OV):=X, где X=(0 или 1)
Пример: ;(A)=C9H, (R2)=54H, (C)=1
SUBB A,R2 ;(A)=74H, (R2)=54H, (C)=0
;(AC)=0, (OV)=1
2.
Ассемблер: SUBB A, <direct>
Код: 1 0 0 1 0 1 0 1 direct address
Время: 1 цикл
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.