verwende ich den Bochs Simulator einen Bootsektor zu laufen, die wie folgt in NASM codiert:einfache Boot-Sektor-Codierung: Füllen des 512 Byte mit 0
org 07c00h ;told the compiler to load the code to 0x7c00h
mov ax, cs
mov ds, ax
mov es, ax
call DispStr ;call the string process
jmp $ ;infinite loop
DispStr:
mov ax, BootMessage
mov bp, ax ;ES:BP = string address
mov cx, 16 ;CX = length of the string
mov ax, 01301h ;AH = 13, AL = 01H
mov bx, 000ch ;(BH = 0)
mov dl, 0
int 10h ;10h interrupt
ret
BootMessage: db "Hello, OS world!" ;message printed
times 510-($-$$) db 0 ;fill the left of the 510 byte with 0
dw 0xaa55
Wenn times 510-($-$$) db 0
wenn verboten, gibt es eine alternative Möglichkeit zu fülle den linken Bereich von 510 Byte mit 0?
Ich habe Loop-Befehl versucht, kann aber nicht richtig arbeiten.
noch%rep 510-($-$$)
db 0
%endrep
Wenn Ihr TA ich es Ihnen nicht erfüllt werden lassen durch die NASM Handbuch für andere Möglichkeiten zu graben:
_ "Wenn mal 510 - ($ - $$) db 0 wenn verboten" _ Warum wäre es verboten? – Michael
@Michael Aber der Assistent unserer OS-Klasse hat uns gebeten, einen optionalen Weg zu finden, um den Rohling zu füllen ... – Stone
Huh. Klingt für mich wie eine Zeitverschwendung. Ist dies eine OS-Klasse oder eine NASM-Anweisungsklasse? – Michael