Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

КТП / 5,6 Ветвления,циклы2

.doc
Скачиваний:
20
Добавлен:
11.04.2015
Размер:
57.86 Кб
Скачать

Организация ветвлений и циклов

Ветвления в программе на ассемблере можно организовывать с помощью команд условного перехода, типа JX M или JNX M, т.е. условный переход на метку М (по адресу М), если (Х)=1 или (Х)=0 (см. систему команд, команды передачи управления), а также безусловного перехода JMP M.

if X then Y

Нет

Да

1)

JNX M

X=0 X=1

M: …

2)

JX M1

X=1 X=0

JMP M2

M1:

M2: …

if X then Y1 else Y2

Нет

Да

1)

JNX M1

X=0 X=1

JMP M2

M1:

M2: …

2)

JX M1

X=1 X=0

JMP M2

M1:

M2: …

Рассмотрим две логические структуры из языка высокого уровня Паскаль, типа if X then Y и if X then Y1 else Y2 (Х – логическое условие; Y,Y1,Y2- выполняемые действия) и организуем подобные структуры на ассемблере (таблица ).

Таблица - Организация ветвлений на Паскале и ассемблере

Ветвления в программе на ассемблере можно организовывать с помощью команд условного перехода, типа JX M или JNX M, т.е. условный переход на метку М (по адресу М), если (Х)=1 или (Х)=0 (см. систему команд, команды передачи управления), а также безусловного перехода JMP M.

Рассмотрим две логические структуры из языка высокого уровня Паскаль, типа if X then Y и if X then Y1 else Y2 (Х – логическое условие; Y,Y1,Y2- выполняемые действия) и организуем подобные структуры на ассемблере (таблица ).

Таблица - Организация циклов на Паскале и ассемблере

for I:=Imax downto Imin do S

Нет

Да

MOV Rn, #Nцик

M:

(Rn)≠0

DJNZ Rn, M

(Rn)=0

Нет

Да

while X do S

Нет

Да

1)

M1: JNX M2

X=0 X=1

JMP M1

M2: …

2)

M0: JX M1

X=1 X=0

JMP M2

M1:

JMP M0

M2: …

repeat S until X

Нет

Да

1)

M1:

X=0

JNX M1

X=1

2)

M1:

X=1 JX M2

X=0

JMP M1

M2: …