Forum: Kompilering

Forum huvudsida -> Programmering -> Kompilering

Sidor: 1

Till botten

jockepockee 21:45 - 24:e Mars 2007 | Post #1
Medlem
Inlägg: 192


Skicka PM
HUr Komplerar man till formatet .bin i Dev-C++? de ska inte vara Win32 Console eller liknande. bara en helt ren binär fil

-------------------------





Independence 22:41 - 24:e Mars 2007 | Post #2
Administratör
Inlägg: 1800


Skicka PM
Win32 console är ren binär.
Vad är det du vill uppnå?
Filändelser så som .bin säger inget om datan i filen, det är bara en hjälp för windowsprogram som inte förstår bättre att gissa vad det är för filtyp.

-------------------------

Vi är riddarna som säger fiskbulle!





main 00:46 - 25:e Mars 2007 | Post #3
Medlem
Inlägg: 40


Skicka PM
Du menar nog en .COM-fil. Jag tror inte det går i Dev-Cpp. Du får använda EXE2BIN verktyget, skriva i assembler, eller utforska inställningarna hos Dev-Cpp.

-------------------------
- Real programmers code in binary



ozamosi 00:53 - 25:e Mars 2007 | Post #4
Administratör
Inlägg: 1129


Skicka PM
com-fil? ...varför? I de får det ju typ plats ett hello world innan de blir för stora...

-------------------------
Ljusblå



Slash 01:21 - 25:e Mars 2007 | Post #5
Medlem
Inlägg: 141


Skicka PM
Ja det finns ju föga anledning att använda .com-filer nu för tiden. com-filer användes i MS-DOS för att göra små program som var snabba att starta. Ett .com-program måste, som ozamosi nämnde, rymmas på ett visst utrymme. Närmare bestämt 64kb, som var segmentstorleken i MS-DOS. De innehåller inte heller något filhuvud (.exe-filer i windows har ju PE-huvudet t.ex.) vilket gjorde programmen mindre och snabbare att starta under MS-DOS.


-------------------------
Ingen sigantur!

Senast redigerad 01:24 - 25:e Mars 2007


sdac 22:59 - 25:e Mars 2007 | Post #6
Medlem
Inlägg: 235


Skicka PM
Verkar inte som om trådskaparen pratar om com-filer, utan om att få ren kod utan segments och headers för exekverbara format. GCC, som används av Dev-cpp, kan outputa ren assembly, assemblerare kan konvertera vidare. RTFM?




Slash 00:04 - 26:e Mars 2007 | Post #7
Medlem
Inlägg: 141


Skicka PM
Aha, om du vill ha assembleroutput från gcc så är det bara att specifiera -S-flaggan, om jag inte minns fel.

-------------------------
Ingen sigantur!



main 00:40 - 26:e Mars 2007 | Post #8
Medlem
Inlägg: 40


Skicka PM
http://en.wikipedia.org/wiki/COM_file

-------------------------
- Real programmers code in binary



jockepockee 18:23 - 26:e Mars 2007 | Post #9
Medlem
Inlägg: 192


Skicka PM
ok vi kan säja så här, (om de är någon som vet hur man gör) om man vill att en bootloader ska starta upp programmet när man startat datorn måste programmet vara kompilerat på ett speciellt sätt eller kodat på ett speciellt sätt eller både och?

-------------------------



Senast redigerad 18:24 - 26:e Mars 2007


sdac 21:21 - 26:e Mars 2007 | Post #10
Medlem
Inlägg: 235


Skicka PM
    Citat av jockepockee:
ok vi kan säja så här, (om de är någon som vet hur man gör) om man vill att en bootloader ska starta upp programmet när man startat datorn måste programmet vara kompilerat på ett speciellt sätt eller kodat på ett speciellt sätt eller både och?


Vad är det du ska ladda in i RAM? Du kan inte ladda in vad som helst hur som helst och förvänta dig att det ska funka...


Senast redigerad 21:22 - 26:e Mars 2007


main 01:13 - 27:e Mars 2007 | Post #11
Medlem
Inlägg: 40


Skicka PM
Du måste först behärska assemblerprogrammering. Gör du det?

-------------------------
- Real programmers code in binary



main 01:21 - 27:e Mars 2007 | Post #12
Medlem
Inlägg: 40


Skicka PM
Det finns några huvudregler du måste följa om du ska skriva bootstraps:

1. BIOS förväntar sig kod på adress 07C00h
2. Du måste kompilera den som "ren binär"
3. Filstorleken måste vara 512 bytes
4. Filen måste sluta med AA55h (du deklarerar ett dw)
5. Du måste själv sätta segment (org)
6. Du måste själv hoppa dit du ska, typ: jmp 07C0h:entry

-------------------------
- Real programmers code in binary



jockepockee 15:47 - 28:e Mars 2007 | Post #13
Medlem
Inlägg: 192


Skicka PM
jo jag vet, jag har en bootloader som ska starta ett program som heter "kernel.bin" och de jag undrar är att om det programmet kan vara skriven i helt normal c++ med cout och cin mm eller på ett speciellt sätt + om man måste kompilera den på något annat vis än vanligt
i så fall hur?

EDIT kollade ett exempel som gjorde de jag ville och där använde dom sig av ett länkningsprogram som heter jloc, hur fungerar det?

-------------------------



Senast redigerad 15:55 - 28:e Mars 2007


Smygis 17:31 - 28:e Mars 2007 | Post #14
Medlem
Inlägg: 90


Skicka PM
    Citat av jockepockee:
jo jag vet, jag har en bootloader som ska starta ett program som heter "kernel.bin" och de jag undrar är att om det programmet kan vara skriven i helt normal c++ med cout och cin mm eller på ett speciellt sätt + om man måste kompilera den på något annat vis än vanligt
i så fall hur?

EDIT kollade ett exempel som gjorde de jag ville och där använde dom sig av ett länkningsprogram som heter jloc, hur fungerar det?


Har du ens den blekaste aningen om hur programmering mot hårdvara fungerar?

-------------------------
Ingen signatur! <- OMG! Jag har inte någon signatur! Ge mig en signatur FFS!



jockepockee 19:19 - 28:e Mars 2007 | Post #15
Medlem
Inlägg: 192


Skicka PM
vadå hårdvara, måste man göra drivrutiner för att de ska funka eller?

-------------------------





jockepockee 19:20 - 28:e Mars 2007 | Post #16
Medlem
Inlägg: 192


Skicka PM
srry, dubbelpostSmiley

-------------------------



Senast redigerad 19:48 - 28:e Mars 2007


ozamosi 20:33 - 28:e Mars 2007 | Post #17
Administratör
Inlägg: 1129


Skicka PM
När man gör en drivrutin programmerar man mot hårdvara.

Edit: du skrev inte som jag läste. Ignorera.

-------------------------
Ljusblå

Senast redigerad 20:37 - 28:e Mars 2007


FunkyChicken 20:41 - 28:e Mars 2007 | Post #18
Nyhetsredaktör
Inlägg: 800


Skicka PM
Ja, du måste ha drivrutiner för att kunna använda din hårdvara. Om du inte har några måste du skriva dem själv.

Det finns en anledning till att man inte vanligtvis försöker använda sin dator utan operativsystem...




sdac 20:48 - 28:e Mars 2007 | Post #19
Medlem
Inlägg: 235


Skicka PM
    Citat av jockepockee:
vadå hårdvara, måste man göra drivrutiner för att de ska funka eller?


Du kan inte bara kompilera ditt program med Dev-C++ som du verkar arbeta i och sedan tro att det ska funka. Du kan använda GNU objcopy för att skapa en ren binärfil att exekvera, sedan antar jag att du måste initiera VGA text mode själv, och skapa en egen printf (eller cout) som använder sig utav VGA-standarden för att skriva text. Monokrom VGA-text ligger från 0x80000 och sträcker sig 32KB, det finns även färgtext vid 0xB8000 där jämna bytes är bokstäver och udda färgattribut.

Du borde dock inte koda det själv om du bara är ute efter att köra ett litet program, sök på Sourceforge.net, finns säkert någon "FreeVGA" eller liknande.




jockepockee 18:02 - 29:e Mars 2007 | Post #20
Medlem
Inlägg: 192


Skicka PM
ok, är de där objcopy en kompilator eller nåt program som konverterar till .bin filer?

är dedt som jloc eller helt annorluna? (jloc converterar objektfiler till binär filermen jag vet inte hur de funkar)

-------------------------





Smygis 18:42 - 29:e Mars 2007 | Post #21
Medlem
Inlägg: 90


Skicka PM
    Citat av jockepockee:
ok, är de där objcopy en kompilator eller nåt program som konverterar till .bin filer?

är dedt som jloc eller helt annorluna? (jloc converterar objektfiler till binär filermen jag vet inte hur de funkar)


Ja tror att du gör bäst i att lägga ditt projekt på hyllan ett tag.

Och medans det ligger på hyllan så tar du och lär dig lite om hur allt hänger ihop.

-------------------------
Ingen signatur! <- OMG! Jag har inte någon signatur! Ge mig en signatur FFS!



Independence 18:50 - 29:e Mars 2007 | Post #22
Administratör
Inlägg: 1800


Skicka PM
Det är väl bra med ett projekt under tiden, så han har något konkret som motiverar honom att lära sig om detSmiley

-------------------------

Vi är riddarna som säger fiskbulle!





Independence 21:48 - 29:e Mars 2007 | Post #23
Administratör
Inlägg: 1800


Skicka PM
Det är väl bra med ett projekt under tiden, så han har något konkret som motiverar honom att lära sig om detSmiley

-------------------------

Vi är riddarna som säger fiskbulle!





ozamosi 22:01 - 29:e Mars 2007 | Post #24
Administratör
Inlägg: 1129


Skicka PM
En dubbelpost med tre timmar emellan?Smiley

-------------------------
Ljusblå



Independence 22:34 - 29:e Mars 2007 | Post #25
Administratör
Inlägg: 1800


Skicka PM
Ah, det var nog jag som råkade klicka back efter några timmar och klickade "ok" på "skicka om POST-data"-frågan utan att riktigt veta vad det var för någotSmiley

-------------------------

Vi är riddarna som säger fiskbulle!





Sidor: 1

Forum huvudsida -> Programmering -> Kompilering
Atom feed

Du får inte posta i den här tråden | Till toppen