54 4. Język asemblerowy mikroprocesorów 8086/8088
kowych informacji czy skoki do (z) podprogramu będą realizowane jedynie wewnątrz segmentu, czy też między segmentami. Składnia dyrektywy jest następująca
nazwa PROC typ
; treść podprogramu
RET ; rozkaz powrotu z podprogramu • ••
nazwa ENDP
przy czym typ może być NEAR dla skoków wewnątrz segmentu lub FAR dla skoków między segmentami.
Podprogramy określane dyrektywami PROC/ENDP mogą znajdować się wewnątrz innych podprogramów (zob. p. 7.1); muszą jednak w całości znajdować się wewnątrz segmentu. Wewnątrz podprogramu może też być zdefiniowany inny segment. i
Przykład PROGRAM GŁÓWNY |
SEGMENT |
PODPROGRAM 1 ETYKIETAl |
• •• PROC NEAR • •• |
PODPROGRAM 1 |
• •• RET 1 ENDP |
PODPROGRAM 2 ETYKIETA 2 ETYKIETA 3 |
• • • PROC NEAR • •• • •• • •• |
PODPROGRAM 3 |
• •• PROC NEAR |
ETYKIETA 4 PROGRAM |
• • • SEGMENT |
PROGRAM |
• •• ENDS |
PODPROGRAM 3 |
• • • RET 1 ENDP ••• |
ETYKIETA 5 RET PODPROGRAM2 |
••• ENDP • •• |
PROGRAM GŁÓWNY |
••• ENDS » |
powered by
4.3. Dyrektywy i pseudoinstmkcje
4j2. Definiowanie nazw symbolicznych
W tej grupie wyróżnimy 3 dyrektywy: EQU, PURGE oraz = (znak równości).
Dyrektywa EQU_______
Dyrektywa EQU pozwala przypisać nazwie symbolicznej określoną wartość podaną jako argument w postaci wyrażenia numerycznego, specyfikacji adresu, rejestru, nazwy symbolicznej (z wyłączeniem nazw zewnętrznych) bądź wyrażeń typu rekord (zob. p. 4.3.4). Wartość przypisana nazwie nie może być w czasie asemblacji zmieniana, tzn. określona nazwa może tylko raz wystąpić przed dyrektywą EQU.
Składnia ma postać
nazwa EQU wartość
Przykłady
DWA EQU 2
LICZNIK EQU CX
A EQU 6 AND (ILORAZ + 6/SIZE TABLICA)
B EQU C
ZNACZNIK EQU STR RECORD R:5, S:6, T:7 *
Dyrektywa PURGE
Dyrektywa PURGE pozwala usunąć w czasie asemblacji nazwę z tablicy nazw symbolicznych asemblera. Nazwa może być wykorzystana w programie w inny sposób bądź ponownie zdefiniowana dyrektywą EQU. Składnia dyrektywy jest następująca
PURGE nazwa ł [, nazwa_2, nazwa_3,...] Przykład
WSKAŹNIK EQU SUMA_1 OR SUMA 2
• • •
PURGE WSKAŹNIK
WSKAŹNIK EQU DL ♦
Dyrektywa = (znak równości) ____
Dyrektywa = podobnie jak EQU służy do przypisywania nazwom wartości. Różnica polega na tym, że nazwa może być w programie wielokrotnie redefiniowana. Składnia jest następująca
nazwa = wartość
LICZNIK = 50 ; równoważne: LICZNIK EQU 50
♦
LICZNIK = LICZNIK -1