哔哔声 Bootloader(Intel x86)
Beeping Bootloader (Intel x86)
我终于了解了汇编和裸机编程的基础知识。或者至少这是我的想法。这是我写的(我自己第一次:))
[BITS 16]
[ORG 0X7C00]
Yaz: MOV SI, Msa
MOV AL, [SI]
INC SI
INT 0x10
OR AL, AL
JZ Yaz
JMP Halt
Halt: hlt
Msa db "Test Successful", 0
TIMES 510 - ($ - $$) DB 0
DW 0xAA55
我将其刻录到 USB 中(我很清楚在真实硬件中测试它们并不是一个好主意),然后重新启动。 BIOS 执行了它的测试,并引导到我的引导加载程序(或者更确切地说 "program" 因为它实际上并没有引导某事)。它什么也没打印出来,我的电脑开始发出哔哔声。
我已经禁用了引导扇区病毒保护,快速启动,我真的尝试了一切,但每次我启动我的东西时它只会在我脸上发出哔哔声,直到我按 CTRL+ALT+DELETE 退出它。
我做错了什么?提前致谢。
查看评论后,工作代码不会让我的电脑发出哔哔声,而是打印出我正在寻找的字符串:
org 7c00h
bits 16
main:
xor ax, ax
mov ds, ax
mov es, ax
mov ss, ax
mov sp, 7c00h
cld
xor bx, bx
mov si, MESAJ
call yaz
cli
durdur:
hlt
jmp durdur
yaz:
push ax
mov ah, 0Eh
yenikarakter:
lodsb
test al, al
je bitir
int 10h
jmp yenikarakter
bitir:
pop ax
ret
MESAJ:
db "Test basarili!", 10, 13, 0
times 510-($-$$) db 00h
dw 0xAA55
我终于了解了汇编和裸机编程的基础知识。或者至少这是我的想法。这是我写的(我自己第一次:))
[BITS 16]
[ORG 0X7C00]
Yaz: MOV SI, Msa
MOV AL, [SI]
INC SI
INT 0x10
OR AL, AL
JZ Yaz
JMP Halt
Halt: hlt
Msa db "Test Successful", 0
TIMES 510 - ($ - $$) DB 0
DW 0xAA55
我将其刻录到 USB 中(我很清楚在真实硬件中测试它们并不是一个好主意),然后重新启动。 BIOS 执行了它的测试,并引导到我的引导加载程序(或者更确切地说 "program" 因为它实际上并没有引导某事)。它什么也没打印出来,我的电脑开始发出哔哔声。
我已经禁用了引导扇区病毒保护,快速启动,我真的尝试了一切,但每次我启动我的东西时它只会在我脸上发出哔哔声,直到我按 CTRL+ALT+DELETE 退出它。
我做错了什么?提前致谢。
查看评论后,工作代码不会让我的电脑发出哔哔声,而是打印出我正在寻找的字符串:
org 7c00h
bits 16
main:
xor ax, ax
mov ds, ax
mov es, ax
mov ss, ax
mov sp, 7c00h
cld
xor bx, bx
mov si, MESAJ
call yaz
cli
durdur:
hlt
jmp durdur
yaz:
push ax
mov ah, 0Eh
yenikarakter:
lodsb
test al, al
je bitir
int 10h
jmp yenikarakter
bitir:
pop ax
ret
MESAJ:
db "Test basarili!", 10, 13, 0
times 510-($-$$) db 00h
dw 0xAA55