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
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, 1234assembler?86? 0 180 6. Makrojęzyk asemblera MASM DBA ENDM ; wersja bez % BAJTY MACRO A BAJTY Massembler?86? 1 42 4. Język asemblerowy mikroprocesorów 8086/80X8 (ODH). Asembler przetwarza łańcuassembler?86? 1 62 4. Język asemblerowy> mikroprocesorów 808618088 oraz AAassembler?86? 6 172 6. Makrojęzyk asemblera MA SM dyrektywy pomocnicze PURGE, EXITM, LOCAL specjalassembler?86? 8 176 6. Makrojęzyk asemblera MA SM MOV SI,OFFSET ZRODLO MOV DI,OFFSET PRZEZNACZENIEassembler?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 prassembler?86? 1 222 & Uruchamianie programów asemblerowych L [adres [drive sektor sektor]] Polassembler?86? 1 242 9. Wykorzystanie procedur systemowych w programach użytkowych Wywołanie rezydupds063 (2) tif Podstawy konstruowania programów w języku Asembler 63 asembler MASM praktycznie różni10 83 / msinjKcje skok ow 1 wywołań poaprogramow ___ CALL adr CALLANSI C 1 DODATEK B BIBLIOTEKA STANDARDOWA cznej tablicy. Wywołanie tmpnam(s) wstawia tę nazwę do aassembler?86? 1 22 2. Mikroprocesory 8086/8088 jest niezależny od innych segmentów i jest programoassembler?86? 2 44 4. Język asemblerowy mikroprocesorów #086/8088 Wiersz programu kończy się zasadassembler?86? 3 46 4. Język asemblerowy mikroprocesorów 8086/8088 PARA - początek segmentu będzieassembler?86? 4 48 4. Język asemblerowy mikroprocesorów 8086/8088 tępne segmenty będą łączone jakassembler?86? 5 50 4. Język asemblerowy mikroprocesorów 8086/8088 ; w kolejnym przykładzie zmiennewięcej podobnych podstron