"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.

 

Powrót do spisu treści kursu


Copyright by Grzegorz Złotowicz
Form and Graphics: Michał Stanek

Pytanie komentarz do Autora