assembler€86ˆ 2

assembler€86ˆ 2



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

Mi siol

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


4_3. Dyrektywy i pseudoinstrukcje

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.


Wyszukiwarka

Podobne podstrony:
assembler?86? 2 64 4. Język asemblerowy mikroprocesorów 8086/8088 64 4. Język asemblerowy mikropro
assembler?86? 0 40 4. Język asemblerowy mikroprocesorów 8086/8088 W książce omówimy wersję MASM 4.
assembler?86? 3 46 4. Język asemblerowy mikroprocesorów 8086/8088 PARA - początek segmentu będzie
assembler?86? 4 48 4. Język asemblerowy mikroprocesorów 8086/8088 tępne segmenty będą łączone jak
assembler?86? 5 50 4. Język asemblerowy mikroprocesorów 8086/8088 ; w kolejnym przykładzie zmienne
assembler?86? 6 52 4. JÄ™zyk asemblerowy mikroprocesorów 8086/8088 MOV AX, DANE 2    
assembler?86? 7 54 4. Język asemblerowy mikroprocesorów 8086/8088 kowych informacji czy skoki do (
assembler?86? 8 56 4. Język asemblerowy mikroprocesorów 8086/8088 433. Połączenia międzymodułowe O
assembler?86? 3 66 4. Język asemblerowy mikroprocesorów 8086/8088 66 4. Język asemblerowy mikropro
assembler?86? 4 68 4. Język asemblerowy mikroprocesorów 8086/8088 Dyrektywy .LALL, .SALL, .XALL Dy
assembler?86? 5 70 4. Język asemblerowy mikroprocesorów 8086/8088 .186
assembler?86? 6 72 4. Język asemblerowy mikroprocesorów 8086/8088 72 4. Język asemblerowy mikropro
assembler?86? 7 74 4. Język asemblerowy mikroprocesorów 8086/8088 Przykład ZMIENNA A DW 5*5 ; =
assembler?86? 8 76    4. JÄ™zyk asemblerowy mikroprocesorów 8086/8088 LE (ang. lower
assembler?86? 9 78 4. Język asemblerowy mikroprocesorów 8086/8088 PROGRAM SEGMENT • • • A DALEKO E
assembler?86? 1 42 4. Język asemblerowy mikroprocesorów 8086/80X8 (ODH). Asembler przetwarza łańcu
assembler?86? 9 58 4. Język asemblerowy mikroprocesorów 808618088 Dyrektywy: DB, DW, DD, DQ, DT Li
assembler?86? 1 62 4. JÄ™zyk asemblerowy> mikroprocesorów 808618088 oraz    AA
assembler?86? 0 60 4. JÄ™zyk asemblerowy nuKroprocesorów 8086/8088 ; OOh    16-23 DA

więcej podobnych podstron