Kristoffer Eriksson
<5357>
· Text 6960 · w8 · kommentar
1987-06-12 22:27
Ärende: Angåend AVASS
Det är instruktioner som relokeraren utför vid uppstart av .BAC-pro-
grammen. Programmen placeras ju på lägsta oanvända adress, och då
ser relokeringsrutinen (som körs i en dosbuffert) till att alla
adressreferenser i programmet anpassas till den använda adressen.
Det gör den genom att behandla en "råtext" och producera det kör-
bara programmet på rätt plats. Då behandlas en byte i taget, och
det hela styrs av särskilda koder om assemblatorn har placerat där,
ibland på yttrycklig order av källkoden som programmeraren har
skrivit. Nu finns det en del extra koder att leka med, så man kan
åstadkomma en del festliga saker som att starta en del av programmet
innan resten behandlas klart, och därvid räkna om t ex måladressen.
POP PC står då för en kod som poppar programläkespekaren från den
stack relokeringsrutinen använder, så att resten a programmet placeras
på en ny adress.
POP BASE poppar en ny basadress, som används till att justera alla
adressreferenser i programmet. I råtexten ligger alla adresser som
relativt avstånd från programstart. Relokeraren adderar basadressen.
Och så finns det en del andra samma stil.
REL-programmen fungerar på samma sätt, fast de använder andra koder
och en annan relokeringsrutin (med mindre möjligheter till verkligt
trolleri), och AVASS använder samma beteckningar på relokerings-
instruktionerna där också. Vad DIAB kallas dem har jag ingen aning
om.