мой привет миру
; сборка :
; gcc -c -ffreestanding -o kernel.o bootsector.S
; ld -o kernel.bin --oformat binary -Ttext 0x0000 kernel.o
; cat kernel.bin > /dev/fd0
.code 16
.text
jmp kernel_entry
kernel_entry:
cli
movw $0x7c0, %ax
movw %ax, %ds
movw $0x1000,%sp
sti
movw $hello_msg, %si
print_string:
movb (%si),%al
cmpb $0x00, %al
je kernel_exit
movb $0x0e, %ah
xorw %bx, %bx
int $0x10
incw %si
jmp print_string
kernel_exit:
hlt
jmp kernel_exit
hello_msg:
.asciz "Hello World!!!"
boot_signature:
.word 0xaa55
Hello, World! (Не Колибри)
1. А зачем jmp kernel_entry ?
2. ds загрузили а про ss забыли ?
2. ds загрузили а про ss забыли ?
пардон я немного намудрил с регистрами но всё работает
насчёт пункта 1 - это загоняет комп в бесконечный цикл. Это необязательно???
это приветствие работает как отдельная ОСь
так что приму к сведению все поправки.
насчёт пункта 1 - это загоняет комп в бесконечный цикл. Это необязательно???
это приветствие работает как отдельная ОСь
так что приму к сведению все поправки.
В бесконечный цикл загоняет а вот в чём сакральный смысл ?
Code: Select all
kernel_exit:
hlt
jmp kernel_exit
Code: Select all
jmp kernel_entry
kernel_entry:
а если
kernel_exit:
hlt
тупо выключить проц
а?
kernel_exit:
hlt
тупо выключить проц
а?
Globalizer
Какое отношение данный Hello World имеет к Колибри?
Какое отношение данный Hello World имеет к Колибри?
Этому примеру до ОСи очень далеко, скорее это самый первый шаг в изучении ОСдева.Globalizer wrote:это приветствие работает как отдельная ОСь
А если немного почитать?Globalizer wrote:а если
kernel_exit:
hlt
тупо выключить проц
а?
к колибри это не имеет никакого отношения.
Выделил сообщения в отдельную тему, хотя стоило бы грохнуть. Форум имеет отношение к Колибри и всем что вертится вокруг нее. Для начинающих кулхацкеров осеписателей есть другие ресурсы, где им будут безмерно рады.
Who is online
Users browsing this forum: Ahrefs [Bot] and 9 guests