簡體   English   中英

BIOS 在視頻模式下持續發出嗶嗶聲 13h

[英]BIOS continously beeping with video mode 13h

我用 16 位 NASM 程序集為引導扇區(512 字節)編寫了一個小程序。 它使用 BIOS 視頻模式 13h 在屏幕上繪制一條白色的小條紋。 這是代碼:

bits 16
org  0x7C00

VIDEO_INT: equ 0x10
VGA_BASE: equ 0xA000

mov ax, 13        
int VIDEO_INT             
push VGA_BASE
pop es
xor di,di
mov ax, 255
mov [es:di], ax
mov [es:di+1], ax
mov [es:di+2], ax
start:


;--------------------------------------

; make file 512 bytes, just enough to fit in boot sector
times 510-($-$$) db 0
dw 0xaa55 ; boot sector magic number

然而,當編譯程序並在真實硬件上進行測試時,它在屏幕上產生了漂亮的白色條紋,但 BIOS 出於某種原因產生了連續的 PC 揚聲器蜂鳴聲。 誰能解釋為什么會這樣,我做錯了什么,我應該做什么?

發生這種情況的原因是 CPU [處理器] 不知道何時停止執行代碼,因此它只會執行內存中的下一個代碼。 要阻止這種情況,您只需在程序末尾放置一個簡單的循環 [example: jmp $ ],這樣 CPU 就會不斷地一遍又一遍地循環,不再執行任何其他操作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM