hallo
ich versuche grad (einfach aus interesse) einen eigenen bootsektor zu schreiben und meinen rechner direkt damit zu booten..jetzt hab ich folgendes beispiel gefunden:
Zitat:
; start hellocyberspace.asm
; 2.ASM
; Print "Hello Cyberspace!" on the screen and hang
; Tell the compiler that this is offset 0.
; It isn't offset 0, but it will be after the jump.
[ORG 0]
jmp 07C0h:start ; Goto segment 07C0
; Declare the string that will be printed
msg
db 'Hello Cyberspace!'
start:
; Update the segment registers
mov ax, cs
mov ds, ax
mov es, ax
mov si, msg ; Print msg
print:
lodsb ; AL=memory contents at DS:SI
cmp al, 0 ; If AL=0 then hang
je hang
mov ah, 0Eh ; Print AL
mov bx, 7
int 10h
jmp print ; Print next character
hang: ; Hang!
jmp hang
times 510-($-$$)
db 0
dw 0AA55h
; end hellocyberspace.asm
das ganze kompiliert mit "nasm hellocyberspace.asm -o hellocyberspace.bin"
so, wenn ich jetzt mit meinem disk-editor den inhalt dieser bin-datei auf den bootsektor meines usb-sticks schreibe und meinen rechner starte, bekomme ich beim booten folgendes:
"Searching for Boot Record from USB RMD-HDD..OK"
...und sonst nix weiter...die Meldung "Hello Cyberspace!" wird nicht angezeigt. Woran kann das liegen; klappt es bei euch?
Danke,
Martin
Um Rekursion zu verstehen, muss man zunächst Rekursion verstehen.