Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Команда DIV AB






Команда “деление” делит 8-битовое целое без знака из аккумулятора А на 8-битовое целое без знака в регистре В. Аккумулятору присваивается целая часть частного (старшие разряды), а регистру В — остаток. Флаги переноса (С) и переполнения (OV) сбрасываются. Если (А)< (В), то флаг дополнительного переноса (АС) не сбрасывается. Флаг переноса сбрасывается в любом случае.

Ассемблер DIV AB
Код  
Время 4 цикла
Пример Пусть аккумулятор содержит число 251 (0FBH или 11111011В), а регистр В — число 18 (12H или 00010010В), После выполнения команды DIV AB в аккумуляторе будет число 13 (0DH или 00001101В), а в регистре В — число 17 (11H или 00010001В), т. к. 251=(13*18)+17. Флаги С и OV будут сброшены.
     

Примечание: Если В содержит 00, то после команды DIV содержимое аккумулятора А и регистра В будут не определены. Флаг переноса сбрасывается а флаг переполнения устанавливается в “1”.

Команда DJNZ < байт>, < смещение>

Команда “декремент и переход, если равно нулю” выполняет вычитание “1” из указанной ячейки и осуществляет ветвление по вычисляемому адресу, если результат не равен нулю. Начальное значение 00H перейдет в 0FFH. Адрес перехода (ветвления) вычисляется сложением значения смещения (со знаком), указанного в последнем байте команды, с содержимым счетчика команд, увеличенным на длину команды DJNZ. На флаги эта команда не влияет и допускает следующие режимы адресации:

1) регистровый

2) прямой

 

1) Ассемблер: DJNZ Rn, < метка>; где n=0-7

Код: 11011rrr re18

Время: 2 цикла

Пример:; (R2)=08h, (P1)=FFH (11111111B)

LAB4: CPL P1.7

DJNZ R2, LAB4; (R2)={07-00}

; эта последовательность команд переключает Р1.7

; восемь раз и приводит к появлению четырех импульсов

; на выводе БИС, соответствующем биту Р1.7

2) Ассемблер: DJNZ < direct>, < метка>

Код: 11010101 direct addres re18

Время: 2 цикла

Пример:; (ОЗУ[40])=01H, (OЗУ[50])=80H,

; (ОЗУ[60])=25H

DJNZ 40H, LAB1; (ОЗУ[40]): =00H

DJNZ 50H, LAB2; (ОЗУ[50]): =7FH

DJNZ 60H, LAB3; (ОЗУ[60]): =25H

...

LAB1: CLR A

...

LAB2: DEC R1; осуществился переход на

; метку LAB2

Примечание: Если команда DJNZ используется для изменения выхода порта, значение, используемое как операнд, считывается из “защелки” порта, а не с выводов БИС.

Команда INC < байт>

Команда “инкремент” выполняет прибавление “1” к указанной переменной и не влияет на флаги. Начальное значение 0FFH перейдет в 00H. Эта команда допускает 4 режима адресации:

1) к аккумулятору

2) регистровый

3) прямой

4) косвенно-регистровый

 

1) Ассемблер: INC A
Код:  
Время: 1 цикл
Пример: ; (A)=1FH, (AC)=0 INC A; (A)=20H, (AC)=0
2) Ассемблер: INC Rn
Код: 00001rrr, где rrr=000-111
Время: 1 цикл
Пример: ; (R4)=FFH, (C)=0, (AC)=0 INC R4; (R4)=00H, (C)=0, (AC)=0
3) Ассемблер: INC < direct>
Код: 00000101 [direct address]
Время: 1 цикл
Пример: ; (ОЗУ[43])=22H INC 43H; (ОЗУ[43])=23H
4) Ассемблер: INC @Ri; где i=0, 1
Код: 0000011i, где i=0, 1
Время: 1 цикл
Пример: ; (R1)=41H, (ОЗУ[41])=4FH, (AC)=0 INC @R1; (R1)=41H, (ОЗУ[41])=50H, (AC)=0

Примечание. При использовании команды INC для изменения содержимого порта, величина, используемая как операнд, считывается из “защелки” порта, а не с выводов БИС.

 


Поделиться с друзьями:

mylektsii.su - Мои Лекции - 2015-2024 год. (0.008 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал