"Podprocedury
- instrukcje CALL i RET"
Jak wskazuje na to temat instrukcje CALL (wołaj) i RET (return - powrót) służą do tworzenia podprocedur:) - części programu, które będą używane częściej niż raz - tak jak procedury np. w pascalu.
Ponieważ wierzę w moc przykładów - znowu nie będę się zbyt długo rozwodził nad tematem... A więc do rzeczy:
Składnia:
CALL ETYKIETA
ret
CALL- zapamiętuje na stosie adres następnej instrukcji programu a następnie przeskakuje do etykiety "etykieta" tak, jak to robiła instrukcja JMP.
Po napotkaniu instrukcji RET procesor pobiera ze stosu adres zapamiętany tam przez CALL i przeskakuje pod ten właśnie adres czyli "wraca" do programu nadrzędnego.
Schemat użycia instrukcji CALL i RET wygląda więc następująco:
Nazwa_procedury: ; etykieta określająca nazwę procedury
;Kod podprocedury
;...
;...
;...
RET ; Powrót do programu nadrzędnego.
Gdzieś w programie natomiast - należy użyć następującego wywołania:
CALL nazwa_procedury
To tak dla wszystkich lubiących schematy i teorię.
Dla zwolenników twardej i niekiedy brutalnej praktyki - niepraktyczny (jeśli chodzi o użycie) programik demonstracyjny procedur i podprocedur.
Copyright by Grzegorz Złotowicz
Form and Graphics: Michał Stanek