assembler86 1

assembler86 1



182 6. Makrojęzyk asemblera MASM

Powyższe wywołania wygenerują następujące rozwinięcie

MOV AL,BAJT_2 MOV BAJT1,AL PUSH SLOWO_2 POP SŁOWO 1 CALL BLAD

PUSH WORD PTR PODWOJNE_2 POP WORD PTR PODWÓJNEJ PUSH WORD PTR PODWOJNE 2 + 2

POP WORD PTR PODWOJNE1 + 2    4

• Makroinstrukcja pozwalająca wywołać dowolny podprogram w danym lub innym segmencie z możliwością przekazywania parametrów przez stos.

PODPROGRAM MACRO NAZWA, TYP, PARAMETR

PUSH AX

IRP Z, < PARAMETR >    ;parametr przekazany

MOV AX,Z    ;przez stos

PUSH AX ENDM

CALL TYP PTR NAZWA    ;właściwy podprogram

POP AX

ENDM

Wywołanie może mieć przykładowo postać

PODPROGRAM OBLICZ, NEAR, < < OFFSET ZMIENNA > ,TYPE ZMIENNA > >

i wygenerować rozwinięcie

PUSH AX

MOV AX, OFFSET ZMIENNA PUSH AX

MOV AX, TYPE ZMIENNA PUSH AX

CALL NEAR PTR OBLICZ POP AX

powered by

Mi sio!


7. Wybrane techniki programowania

7.1. Podprogramy. Praca z segmentami stosu

Jedną z podstawowych cech współczesnych dobrze skonstruowanych programów, niezależnie od języka w jakim są one napisane, jest ich modułowość. Cały program podzielony na moduły, dla których wielkość listingu nie powinna przekraczać 1-3 strony, staje się bardziej czytelny, a przede wszystkim łatwiejszy do uruchomienia, testowania i modyfikowania. Poszczególne moduły mogą być przygotowywane przez różnych programistów i wykorzystywane w różnych programach w zależności od potrzeb. Podstawowym narzędziem są podprogramy. W skrajnym przypadku program główny może składać się wyłącznie z wywołań podprogramów. Podział pamięci mikroprocesorów 8086/8088 na segmenty fizyczne, a programów napisanych w języku asemblerowym mikroprocesorów 8086/8088 na segmenty logiczne to dodatkowe mechanizmy ułatwiające, a czasem wręcz narzucające modułową budowę programów.

Program główny

fys. 7.1. Technika korzystania z podprogramów



Wyszukiwarka

Podobne podstrony:
assembler?86? 7 174 6. Makrojęzyk asemblera MASM Przykład • Wywołanie makroinstrukcji IRPC X, 1234
assembler?86? 0 180 6. Makrojęzyk asemblera MASM DBA ENDM ; wersja bez % BAJTY MACRO A BAJTY M
assembler?86? 1 42 4. Język asemblerowy mikroprocesorów 8086/80X8 (ODH). Asembler przetwarza łańcu
assembler?86? 1 62 4. Język asemblerowy> mikroprocesorów 808618088 oraz    AA
assembler?86? 6 172 6. Makrojęzyk asemblera MA SM dyrektywy pomocnicze PURGE, EXITM, LOCAL specjal
assembler?86? 8 176 6. Makrojęzyk asemblera MA SM MOV SI,OFFSET ZRODLO MOV DI,OFFSET PRZEZNACZENIE
assembler?86? 0 40 4. Język asemblerowy mikroprocesorów 8086/8088 W książce omówimy wersję MASM 4.
assembler?86? 1 202 8. Uruchamianie programów asemblerowych boliczne zebrane w tabeli zostają w pr
assembler?86? 1 222 & Uruchamianie programów asemblerowych L [adres [drive sektor sektor]] Pol
assembler?86? 1 242 9. Wykorzystanie procedur systemowych w programach użytkowych Wywołanie rezydu
pds063 (2) tif Podstawy konstruowania programów w języku Asembler 63 asembler MASM praktycznie różni
10 83 / msinjKcje skok ow 1 wywołań poaprogramow ___ CALL adr CALL
ANSI C 1 DODATEK B BIBLIOTEKA STANDARDOWA cznej tablicy. Wywołanie tmpnam(s) wstawia tę nazwę do a
assembler?86? 1 22 2. Mikroprocesory 8086/8088 jest niezależny od innych segmentów i jest programo
assembler?86? 2 44 4. Język asemblerowy mikroprocesorów #086/8088 Wiersz programu kończy się zasad
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

więcej podobnych podstron