44 4. Język asemblerowy mikroprocesorów #086/8088
Wiersz programu kończy się zasadniczo znakiem nowego wiersza lub (i) znakiem powrotu kursora. Jeżeli wiersz jest zbyt krótki do zapisania całej wymaganej treści, to można go kontynuować w następnym, umieszczając w pierwszej kolumnie znak &.
Składnia wiersza z instrukcję właściwą lub wywołaniem makroinstrukcji
[etykieta:] [przedrostek] [instrukcja] [argument(y)] [;komentarz]
Nawiasy kwadratowe oznaczają, że dane pole wiersza nic musi wystąpić dla każdej instrukcji. Poszczególne pola oznaczają [etykieta:]
Nazwa symboliczna zakończona dwukropkiem będąca symbolicznym adresem wykorzystywanym w rozkazach skoków. Wiersz może mieć wyłącznie wypełnione pole etykiety - jej adres dotyczy wtedy instrukcji w następnym wierszu.
[przedrostek] ;’*£â–
Rozszerzenie rozkazu (np. REP, LOCK) stosowane w niektórych bardziej złożonych konstrukcjach programu.
[instrukcja]
Pole instrukcji zawierające rozkaz procesora 8086/8088 lub wywołanie wcześniej zdefiniowanej makroinstrukcji, zamieniane na ciąg rozkazów. Pole instrukcji może zostać puste - wtedy jednak musi wystąpić etykieta lub (i) komentarz.
[argument(y)]
Rozkaz może być bezargumentowy, może mieć jeden lub dwa argumenty. Wywołanie makroinstrukcji może z kolei mieć listę argumentów. Argumenty muszą być oddzielone od siebie przecinkami.
[;komentarz]
Komentarz rozpoczyna się średnikiem i nie jest analizowany przez asembler. Komentarz służy wyłącznie do poprawienia czytelności programu i sporządzenia jego pełnej dokumentacji.
Wiersz programu z dyrektywÄ… lub (pseudo) instrukcjÄ…
[nazwa] dyrektywa/instrukcja [argument(y)] [;komentarz]
Poszczególne pola oznaczają [nazwa]
Niektóre dyrektywy wymagają nazwy. Dla innych pole nazwy jest puste. Nazwa dyrektywy nie może być zakończona dwukropkiem, ani używana w programie tak^jak etykieta.
dyrektywa/instrukcja
Język M ASM dopuszcza około 50 różnych dyrektyw sterujących pracą asemblera oraz instrukcji generujących dane.
[argument(y)]
Dyrektywy są bezargumentowe bądź mogą mieć jeden lub więcej argumentów. Brak argumentów w wierszu programu z dyrektywą wymagającą argumentów powoduje przyjęcie argumentów standardowych. W zależności od dyrektywy, argumenty są oddzielane przecinkiem lub spacją.
[;komentarz]
Komentarz rozpoczyna się średnikiem; nie jest analizowany przez asembler i służy wyłącznic poprawianiu czytelności programu i sporządzania jego pełnej dokumentacji.
powered by
4.3. Dyrektywy i pseudoinslmkcje
Przykłady powtórzenie: |
mov ax, cx |
; zapamiętanie licznika |
porównanie: |
repne scas lancuc |
; czy łańcuch zgodny z wzorcem ? |
poczÄ…tek: zmiennabajt |
db 55h |
; definicja zmiennej bajtowej |
dw Oaaah |
; definicja słowa | |
program |
segment para |
; poczÄ…tek segmentu z programem |
end |
; koniec programu |
43.1. Tworzenie segmentów logicznych
Następujące dyrektywy są związane z tworzeniem segmentów logicznych oraz sterowaniem wskaźnika rozkazów (pozycji) asemblera; SEGMENT, ENDS, GROUP, ORG, EVEN, ASSUME, LABEL, PROC, ENDP.
Dyrektywy SEt»MENT/ENDS
Każda instrukcja programu lub zmienna musi być umieszczona wewnątrz wydzielonego w programie logicznego bloku programu nazwanego segmentem, zdefiniowanego następująco
nazwa SEGMENT [typ] [połączenie] [’nazwa klasy’] ;począlek ; Wszystkie instrukcje i dane, które znajdują ; się po dyrektywie SEGMENT należą do ; segmentu nazwa tak długo, aż wystąpi ; dyrektywa ENDS, która zamyka segment:
nazwa ENDS ; koniec segmentu
Obie dyrektywy muszą być poprzedzone tą samą nazwą. W przypadku prostych 1 krótkich programów, mieszczących się wraz z danymi w jednym segmencie, powyższe dyrektywy stają się uciążliwe i niepotrzebnie złożone. MASM 5.00 dopuszcza uproszczoną postać dyrektyw definiowania segmentów. Na przykład segment stosu określony w konwencjonalny sposób
STOS SEGMENT PARA STACK ’slos’
DW 256 DUP (?)
STOS ENDS
można w MASM 5.00 zdefiniować jedną dyrektywą: .STACK 256.
Trzy opcjonalne argumenty dyrektywy SEGMENT: typ, połączenie 1 nazvva_klasy określają atrybuty segmentu x
KWI - określa, gdzie rozpocznie się nowy (tzn. aktualnie definiowany) segment. Możliwe są cztery różne typy.