Avatar billede ricelius Nybegynder
18. november 2002 - 06:24 Der er 3 kommentarer og
2 løsninger

Boot sector (assembler)

Jeg vil gerne skrive en bootsector for I386-kompatible processorer. Jeg har forsøgt mig med et simpelt program, der skriver "Hello, world!" på skærmen... Hvad jeg gjorde var at jeg skrev programmet (i assembler) og kompilerede det med Borland Turbo Assembler. Herefter editerede jeg filen i en hexeditor - jeg fjernede alt (dvs. program headers etc.) undtagen de egentlig instruktioner til processoren og paddede efter programmet med 0'er indtil jeg havde præcist 512 bytes... Endelig kopierede jeg programmet til en floppy disks boot sector... Og det virker tilsyneladende ikke...
Er der nogen her, der har nogen erfaring i boot sectors? Hvis det er tilfældet ville jeg sætte stor pris på lidt rådgivning... :)

Her er mit TASM-program:

.386P

CSEG    SEGMENT WORD 'Code' USE16
        ASSUME CS:CSEG, DS:CSEG, ES:Nothing

ORG    0H

        JMP SHORT BootUp  ; JMP to code start
        NOP              ; Padding to make it 3 bytes

        ; Message to user
        MsgHello DB 0DH,0AH,'Hello, world!',00H

PutChars:
        LODSB
        OR      AL,AL
        JZ      SHORT Done
        MOV    AH,0EH
        MOV    BX,0007
        INT    10H
        JMP    SHORT PutChars
Done:
        RETN

BootUp:
        CLI      ; Clear interrupt

        ; Stick the stack at linear 98000H (an arbitrary
        ; location)
        MOV    AX,9000H
        MOV    SS,AX
        MOV    SP,8000H

        ; Display our message
        MOV    SI,OFFSET MsgHello
        CALL    PutChars

        XOR    AX,AX
        INT    16H              ; Wait for keystroke
        INT    19H              ; Sys reboot

        CSEG    ENDS
                END
Avatar billede sekam Nybegynder
18. november 2002 - 06:34 #1
Prøv at kigge på dette eksempel.
http://www.programmersheaven.com/file.asp?FileID=16903
Avatar billede sekam Nybegynder
18. november 2002 - 06:48 #2
Avatar billede soreno Praktikant
18. november 2002 - 10:27 #3
Avatar billede ricelius Nybegynder
18. november 2002 - 14:45 #4
Tak sekam og soreno, jeg tror, I har hjulpet mig på rette vej... :)
Hvis sekam vil give et svar, kan jeg fordele pointene...
Avatar billede sekam Nybegynder
18. november 2002 - 17:21 #5
Np. :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester