КТП / 5,6 Ветвления,циклы2
.docОрганизация ветвлений и циклов
Ветвления в программе на ассемблере можно организовывать с помощью команд условного перехода, типа JX M или JNX M, т.е. условный переход на метку М (по адресу М), если (Х)=1 или (Х)=0 (см. систему команд, команды передачи управления), а также безусловного перехода JMP M.
|
if X then Y
|
1) J X=0 X=1
M: … |
2) J X=1 X=0
M2: … |
|
i
Да |
1) J X=0 X=1
J
M2: … |
2) J X=1 X=0
J
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цик
(Rn)≠0 (Rn)=0 Нет Да |
|
|
w
|
1) X=0 X=1
M2: …
|
2) X=1 X=0
JMP M0 M2: …
|
|
r
|
1) M X=0 X=1 …
|
2) M
X X=0
M2: …
|


Нет
Да


NX
M

X
M1
JMP
M2
M1:
f
X then Y1 else Y2
Нет










NX
M1

MP
M2
M1:

X
M1

MP
M2
M1:



Нет
Да






M:
DJNZ
Rn, M
hile
X do S
Нет




Да


M1: JNX M2
JMP M1


M0: JX M1
JMP
M2
M1:
epeat
S until X
Нет
Да

1:
JNX M1

1:
=1
JX M2
JMP M1