knuto 0 Report post Posted December 26, 2005 (edited) Eg veit godt at det ikkje går ann å lage ein bootloader utan ASM, men går det ann å bruke C++ med ASM-koden internt? Og korleis skulle ein kompilert det då? Eit eksempel: // Ingen inkludering av standard bibliotek sidan dei ofte er avhennige av kjerne void loadBoot() { asm { ; Bootloading }//asm }//end loadBoot void consolePrint(char &text) { asm { mov si, &text mov ah, 4 int 21h }//end asm }//end consolePrint int main() { loadBoot(); consolePrint("Welcome to floppy :)"); return 0; }//end main Er dette mogleg? Edited December 26, 2005 by knuto Quote Share this post Link to post
dayslepr 0 Report post Posted December 26, 2005 nei .......................... Quote Share this post Link to post
genstian 9 Report post Posted December 29, 2005 er mulig, men du må lage egen kjerne da. Quote Share this post Link to post
Jaffe 275 Report post Posted January 2, 2006 (edited) Den print-rutina funker hvertfall ikke. Kan ikke kalle interrupt 21h uten at den er satt opp... EDIT: en bootloader kan sikkert like enkelt skrives i assembly. Snekra sammen en: org 7C00h jmp start tekst db "Hei, dette er en bootloader (som ikke gjør noe)",0 start: mov si, tekst print: mov al, [si] mov ah, 0Eh cmp al, 0 je slutt inc si jmp print slutt: jmp slutt Edited January 2, 2006 by Johan123321 Quote Share this post Link to post
knuto 0 Report post Posted January 3, 2006 Den print-rutina funker hvertfall ikke. Kan ikke kalle interrupt 21h uten at den er satt opp...5371369[/snapback] Er klar over det. Men det ville derimot fungert i MS-DOS, viss eg ikkje tek feil... Quote Share this post Link to post
Jaffe 275 Report post Posted January 3, 2006 (edited) Den print-rutina funker hvertfall ikke. Kan ikke kalle interrupt 21h uten at den er satt opp...5371369[/snapback] Er klar over det. Men det ville derimot fungert i MS-DOS, viss eg ikkje tek feil... 5376881[/snapback] Interrupt 21,4 er ikke for å vise tekst. Det er 21,9 som er det, og den fungerer ved at adressen til første byte i strengen er i DX, og ikke SI Slik du viser det der, ligner mer på mitt OS, merkelig nok! Der er adressen til første byte i SI, og 21,4 brukes til å vise strengen! EDIT: med "21,4" mener jeg 21 som interrupten og 4 som funksjonen. Edited January 3, 2006 by Johan123321 Quote Share this post Link to post
knuto 0 Report post Posted January 3, 2006 [...] Interrupt 21,4 er ikke for å vise tekst. Det er 21,9 som er det, [...]5376982[/snapback] Ja. Sjølvsagt. Kvar i all verda kom den fireren frå? Er det 4 som er til for å avslutte eit program? Quote Share this post Link to post
Jaffe 275 Report post Posted January 3, 2006 [...] Interrupt 21,4 er ikke for å vise tekst. Det er 21,9 som er det, [...]5376982[/snapback] Ja. Sjølvsagt. Kvar i all verda kom den fireren frå? Er det 4 som er til for å avslutte eit program? 5377141[/snapback] 4C, er for å avslutte program. 4 er "Auxiliary Output" - altså output til en COM-port og lignende. Quote Share this post Link to post