Я делаю пользовательскую операционную систему.У меня есть два файла nasm:
boot.asm:
[BITS 16] ;tell the assembler that its a 16 bit code
[ORG 0x7C00] ;Origin, tell the assembler that where the code will
;be in memory after it is been loaded
INT 0x13
JMP $ ;infinite loop
TIMES 510 - ($ - $$) db 0 ;fill the rest of sector with 0
DW 0xAA55 ; add boot signature
start.asm:
[BITS 16]
MOV AL, 72
CALL PrintCharacter
MOV AL, 101
CALL PrintCharacter
MOV AL, 108
CALL PrintCharacter
MOV AL, 108
CALL PrintCharacter
MOV AL, 111
CALL PrintCharacter
MOV AL, 44
CALL PrintCharacter
MOV AL, 32
CALL PrintCharacter
MOV AL, 87
CALL PrintCharacter
MOV AL, 111
CALL PrintCharacter
MOV AL, 114
CALL PrintCharacter
MOV AL, 108
CALL PrintCharacter
MOV AL, 100
CALL PrintCharacter
MOV AL, 33
CALL PrintCharacter
PrintCharacter:
MOV AH, 0x0E
MOV BH, 0x00
MOV BL, 0x07
INT 0x10
RET
TIMES 512 - ($ - $$) db 0
Я собираю их в файлы .bin с помощью следующих команд:
nasm boot.asm -f bin -o boot.bin
nasm start.asm -f bin -o start.bin
Затем добавьте их в образ дискеты с помощью следующих команд:
dd if=boot.bin bs=512 of=MyOS.img count=1
dd if=start.bin bs=512 of=MyOS.img count=2
Когда я загружаюсь с образа дискеты в VirtualBox, он показывает 2 восклицательных знака вместо одного и не делаетдаже загрузиться в QEmu (Q.app).Я новичок в разработке операционных систем, и было бы неплохо, если бы кто-то мог сказать мне, что я сделал не так, и дать несколько советов о том, как лучше настроить мою ОС.