assembler€86ˆ 3

assembler€86ˆ 3



66 4. Język asemblerowy mikroprocesorów 8086/8088

66 4. Język asemblerowy mikroprocesorów 8086/8088

; (zob. dyrektywa %OUT - p. 4.3.7)

; można kontrolować przebieg ascmblacji ; na ekranie monitora


Przykłady

IFE (TYPE TABLICA) -1 DEC DI

ELSE

ADD DI,TYPE TABLICA ENDIF IF1

%OUT 1 przebieg ELSE

%OUT 2 przebieg ENDIF

; jeÅ›li atrybut TYPE dla TABLICY ; jest równy 1, to rozkaz ten ; bÄ™dzie tÅ‚umaczony,

; w przeciwnym przypadku ; ten rozkaz będzie tłumaczony

43.6. Makroinstrukcje

Makroinstrukcje pozwalajÄ… na wykonywanie pewnych operacji na tekÅ›cie programu źródÅ‚owego w czasie jego tÅ‚umaczenia przez asembler. W szczególnoÅ›ci umożliwiajÄ… zdefiniowanie nowej instrukcji, której stosowanie w programie źródÅ‚owym bÄ™dzie powodowaÅ‚o generowanie ciÄ…gu rozkazów maszynowych, dyrektyw, komentarzy itp. (wiersza programu). JÄ™zyk MASM dopuszcza nastÄ™pujÄ…ce rodzaje makroinstrukcji

-    nie wymagajÄ…ce definiowania: REPT/ENDM, IRP/ENDM, IRPC/ENDM;

-    wymagajÄ…ce zdefiniowania: MACRO/ENDM.

Z makroinstrukcjami sÄ… zwiÄ…zane ponadto

-    dyrektywy pomocnicze: PURGE, EXITM, LOCAL;

-    specjalne operatory: &;;!%.

Szczegółowe wyjaśnienie słów kluczowych oraz operatorów znajdzie Czytelnik w rozdz. 6, poświęconym makrojęzykowi MASM.

43.7. Postać listingu

W trakcie tÅ‚umaczenia programu źródÅ‚owego jest tworzona jego dokumentacja zwana listingiem (raportem asemblacji). Listing oprócz treÅ›ci programu źródÅ‚owego zawiera wiele informacji dodatkowych, m.in. kody maszynowe instrukcji, rozwiniÄ™cia makroinstrukcji, przydzielone adresy, informacje o bÅ‚Ä™dach (p. 8.1). Poniższe dyrektywy umożliwiajÄ… uzyskanie odpowiedniej, wymaganej postaci listingu.

Dyrektywa PAGE

Dyrektywa PAGE pozwala zadeklarować format strony listingu. Standardowo format strony listingu jest następujący

-    66 wierszy na stronie, 80 znaków w wierszu,

-    po ostatnim wierszu na stronie jest generowany znak nowej strony FF (ang. form fptJk

4.3. Dyrektywy i pseudoinstrukcje

. pierwszy wiersz każdej strony zawiera: nazwę, numer wersji asemb dzinę,

kolejny wiersz zawiera numer rozdziału i strony listingu (ostatni automatycznie jest zwiększany o jeden przy nowej stronie). Składnia dyrektywy jest następująca

PAGE [wyrażenie_l] [, wyrażenie_2]

przy czym:

wrażenieokreśla liczbę wierszy na stronie i przyjmuje wartość z przedziału [10,255],

wyrażenie określa liczbę znaków w wierszu i przyjmuje wartość z przedziału

[60,132].    .    . , -    .

Użycie dyrektywy PAGE bez żadnych argumentów powoduje zakończenie

strony, wygenerowanie znaku nowej strony i rozpoczęcie numeracji stron od 1. Dyrektywa o składni PAGE + powoduje zwiększenie o 1 numeru rozdziału.

Dyrektywa TITLE____________

Dyrektywa TITLE pozwala określić tytuł, jaki będzie drukowany w pierwszym wierszu na każdej stronie listingu. Składnia dyrektywy jest następująca

TITLE tekst

Dyrektywa może wystąpić w programie tylko jeden raz. Jeżeli nie ma w programie dyrektywy NAME, to pierwszych sześć znaków tekstu określa nazwę modułu.

Dyrektywa SUBTTL    __

Dyrektywa SUBTTL określa podtytuł drukowany na każdej stronie listingu w wierszu pod tytułem (zob. TITLE). W programie można wielokrotnie użyć dyrektywy SUBTTL. Składnia dyrektywy jest następująca

SUBTTL tekst

przy czym tekst jest ograniczany do 60 znaków.

DyrektywÄ… COMMENT    _

Dyrektywa COMMENT pozwala wprowadzić blok komentarza bez używania znaku Å›rednika. Pierwszy znak (niepusty) wystÄ™pujÄ…cy po dyrektywie okreÅ›la ogranicznik tekstu. WystÄ™pujÄ…cy po nim tekst nie jest analizowany przez asembler, aż do Spotkania ponownie zadeklarowanego ogranicznika.

Przykład

COMMENT * Teraz może być umieszczony

dowolny tekst, traktowany jako komentarz *

•••

MOV AX,BX    ; dalszy komentarz po Å›redniku    +


Wyszukiwarka

Podobne podstrony:
assembler?86? 3 46 4. Język asemblerowy mikroprocesorów 8086/8088 PARA - początek segmentu będzie
assembler?86? 0 40 4. Język asemblerowy mikroprocesorów 8086/8088 W książce omówimy wersję MASM 4.
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? 2 64 4. Język asemblerowy mikroprocesorów 8086/8088 64 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? 3 26 2. Mikroprocesory 8086/8088 Przykład (rys. 2.12) ZMIENNA2 ZMIENNA 1 ADD AX, ZMI
assembler?86? 1 42 4. Język asemblerowy mikroprocesorów 8086/80X8 (ODH). Asembler przetwarza łańcu
assembler?86? 2 44 4. Język asemblerowy mikroprocesorów #086/8088 Wiersz programu kończy się zasad
assembler?86? 3 86 5. Rozkazy mikroprocesorów 8086/8088 LES - załadowanie adresu logicznego do wsk
assembler?86? 3 106 5. Rozkazy1 mikroprocesorów 8086/8088 SBB (ang. subtract byle or word with bor

więcej podobnych podstron