Ahoj, má tu niekto skúsenosti s assemblerom a linkerom ? Skúšam napísať program pre procesor intel 8080. Mám tri .asm files. Prvý obsahuje startup kód, s direktívou
.area CRTSO (ABS) a
.org 0H0000. Druhý obsahuje run time library s direktívou
.area C8080LIB (REL,CON) a posledný je samotný program s direktívou
.area MAIN (REL,CON). ABS je absolútne adresovanie, REL je relacatable, CON je concatenable. Assembler prejde bez chyby. Linker je volaný ako
aslink -l -o -s main main.rel c8080lib.rel crtso.rel prejde bez chyby.
http://shop-pdp.kent.edu/ashtml/asls01.htm#Invoking Vo výslednom HEX file, vidím že adresa 0000 ja dvakrát, raz obsahuje inštrukcie z hlavného programu a druhý výskyt riadku s adresou 0000 obsahuje startup kód. Správne by mala byť adresa 0000 iba raz a na nej startup kód. Inštrukcie z hlavného programu by maly byť pripojené za ňou na vyšších adresách.
http://shop-pdp.kent.edu/ashtml/asxs02.htm#area V dokumentácii je
"Absolute sections are always overlayed with other sections of this program area." čo je pre mňa úplne nepochopiteľné, asi vôbec nerozumiem tomu ako by mala fungovať direktíva
.org a
.area (ABS)
Vie niekto poradiť ako dostať do výsledného HEX tie tri asm jeden pekne za druhým, bez toho aby boli prekryté ?