Assembly 16-bit operativ system

Tags:    programmering

<< < 123 > >>
Hej allesammen!
Jeg har besluttet mig for at lave mit eget lille fritids 16-bit operativ system, der har en Assembly boot loader og en kernel som er udviklet i C.
Men jeg har to problemer: Jeg har lige skrevet koden til min C kernel, men jeg kommer lige i tanke om at jeg har slettet gcc.exe og ld.exe. Og jeg har virkelig svært ved at finde det nogen steder på Google. Så hvis nogen lige kunne give mig et link som giver adgang til disse to filer, ville det bare være super.
Mit andet problem er at jeg får en fejl når jeg assembler nedenstående program med NASM:
Fold kodeboks ind/udKode 

Dette var koden, og dette er fejlen:
Fold kodeboks ind/udKode 

Hvis der er nogen som kan hjælpe mig med disse to problemer, vil jeg være meget taknemmelig.
-På forhånd tak, for hjælpen :).



21 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 6 karma
Sorter efter stemmer Sorter efter dato
Såvidt jeg husker skal ORG skrives med store bogstaver. Gcc kan du finde på http://mingw.org

Mange tak for linket til gcc.exe og ld.exe... men jeg har stadig fejlen i min Assembly kode..


Som sagt skal det stå med stort

Fold kodeboks ind/udKode 




Såvidt jeg husker skal ORG skrives med store bogstaver. Gcc kan du finde på http://mingw.org



Indlæg senest redigeret d. 26.02.2010 23:33 af Bruger #3275
Såvidt jeg husker skal ORG skrives med store bogstaver. Gcc kan du finde på http://mingw.org

Mange tak for linket til gcc.exe og ld.exe... men jeg har stadig fejlen i min Assembly kode..



Såvidt jeg husker skal ORG skrives med store bogstaver. Gcc kan du finde på http://mingw.org

Mange tak for linket til gcc.exe og ld.exe... men jeg har stadig fejlen i min Assembly kode..


Som sagt skal det stå med stort

Fold kodeboks ind/udKode 

Det har jeg prøvet.. fejlen med at den ikke kan finde "kommandoen" 'org' opstår først når jeg prøver at call'e 'os' metoden i min C fil..
Hvis jeg ikke call'er, eller definerer funktionen/label'et 'bootKernel' virker det fint, når jeg har
Fold kodeboks ind/udKode 

i toppen af min fil..



Indlæg senest redigeret d. 27.02.2010 09:48 af Bruger #15718
hey Benjamin,
prøv lige at poste din 'os' metode :)



hey Benjamin,
prøv lige at poste din 'os' metode :)

Her er den:
Fold kodeboks ind/udKode 

Dette er min clear metode:
Fold kodeboks ind/udKode 

Og her er min print metode:
Fold kodeboks ind/udKode 

Jeg ved godt, at det her er meget basis, men det er fordi at det er første gang jeg implementerer C i Assembly, så jeg startede med noget meget simpelt :).



org kan godt skrives med småt. Hvordan bygger du ?
Har du en Makefil ?

Prøv at læse disse to artikler:
http://linuxgazette.net/77/krishnakumar.html
http://linuxgazette.net/issue79/krishnakumar.html



org kan godt skrives med småt. Hvordan bygger du ?
Har du en Makefil ?

Prøv at læse disse to artikler:
http://linuxgazette.net/77/krishnakumar.html
http://linuxgazette.net/issue79/krishnakumar.html

Først assembler jeg min bootloader.asm med NASM.exe sådan her:
Fold kodeboks ind/udKode 

Det giver mig en O fil.
Så compiler jeg kernel.c med gcc sådan her:
Fold kodeboks ind/udKode 

Så har jeg to O filer.
Så bruger jeg ld.exe til at linke disse to O filer sammen til èn BIN fil, som jeg så åbner med MagicISO og laver den om til en ISO fil, og kører så denne ISO fil med Microsoft Virtual PC..



Du kan ikke bruge aout formatet. Første byte i filen skal være en instruktion. Prøv at disassemble den færdige fil og se, om den kan eksekveres fra første byte.
Fold kodeboks ind/udKode 


Derudover har du nok problemer med at tilgå hukommelsen som du gør i din C kode, for når maskinen booter er hukommelsen segmenteret. Du skal lave et skift til 32 bit flat memory model (http://en.wikipedia.org/wiki/Flat_memory_model). Man tag et kig på de to artikler, jer refererede til.



<< < 123 > >>
t