Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция_9н.docx
Скачиваний:
2
Добавлен:
03.09.2019
Размер:
58.74 Кб
Скачать

Пример 1: c использованием команды (jc, jnc)

Задание: В регистре R1 находится число X1, в регистре R2 – число X2. Если , то необходимо выполнить действие , результат поместить в регистр R4. Если , то выполнить действие , результат операции поместить в регистр R5.

Блок-схема:

Программа

Команда JC

MOV A,R1; AR1.

CJNE A,02H,M1; X1X2M1.

M1: JC M2;

CLP C;

SUBB A,R2 A(A)-(R2);

A(X1)-(X2).

MOV R5, A; R5(A).

SJMP M3; M3 – метка конца программы.

M2: ADD A,R2; A(A)+(R2);

A(X1+X2).

MOV R4, A R5(A).

M3: END.

Команда JNC

MOV A,R1; AR1.

CJNE A,02H,M1; X1X2M1.

M1: JNC M2;

ADD A,R2; A(A)+(R2);

A(X1+X2).

MOV R4, A R5(A).

SJMP M3; M3 – метка конца программы.

M2: SUBB A,R2 A(A)-(R2);

A(X1)-(X2 MOV R5, A; R5(A).

M3: END.

Пример 2: c использованием команд условного перехода)

Задание: В ЯП области DSEG с адресом 21H находится число X, в ЯП области DSEG с адресом 22H находится число X2. Если , то результат поместить в ЯП области DSEG с адресом 23Н; если , результат операции (X1)AND(X2) поместить в ЯП области DSEG по адресу 24Н.

Блок-схема:

Программа

MOV A,21H; AR1.

CJNE A,22H,M1; X1X2M1.

INC A; AX1+1.

MOV 23H, A; (23H)(A).

SJMP M2; M2 – метка конца программы.

M1: ANL A,22H; A(A)AND(22H);

A(X1)AND(X2).

MOV 24H, A (24H)(A).

M2: END.

Команда DJNZ

Эта команда «декремент и переход, если не равно нулю», выполняет вычитание «1» из указанной ЯП и осуществляет ветвление по rel, если результат не равен нулю.

Действия, выполняемые этой командой:

а) минус «1» из указанного регистра или ЯП;

б) переход по rel, если результат не равен нулю.

Имеется два варианта команды:

1. DJNZ Rп, rel; Rп Rп-1, если Rп0, то переход по rel, если Rп=1, то переход к следующей команде.

2. DJNZ dir, rel; (dir)(dir)-1, если (dir) 0, то переход по rel, если dir=1, то переход к следующей команде. (dir – адрес (прямой) ЯП.)

Эти команды используются для организации циклов.

MOV Rп,#data; data-количество циклов)

M1: ----

----

DJNZ Rп, M1

----

----

1- (Rп-1)0

2 - (Rп-1)=0