為什么這個顯示不出來,求教!!!
; 常量宣告
%define BIOS_BOOT_SEG 0x07c0
; MBR被BIOS加載的位置
%define REAL_BOOT_SEG 0x9000
;MBR實際運行的地址
%define STRACK_SEG 0xf000
; 堆疊基址
org BIOS_BOOT_SEG
; 宣告加載位置,偏移
jmp short entry
nop
;三位元組的短調轉指令
entry:
; MBR記憶體復制
mov ax,BIOS_BOOT_SEG
mov ds,ax
sub si,si ;ds:si=0x07c0:0x0000源地址
mov ax,REAL_BOOT_SEG
mov es,ax
sub di,di ;es:di=0x9000:0x0000目標地址
mov cx,512 ;512B
rep movsb
jmp REAL_BOOT_SEG:(real_start-entry)
real_start:
;初始化暫存器
mov ax,cs
mov ds,ax
mov es,ax
mov ss,ax
mov dx,STRACK_SEG
mov sp,dx ;堆疊指標
;清屏
mov ah,0x03 ;功能號0x03
xor bh,bh
int 0x10 ;讀游標位置
mov ax,0x0600
mov bx,0x0700
mov cx,0
mov dx,0x184f ;(80,50)
int 0x10 ;卷屏
mov ah,0x02 ;功能號0x02
mov bh,0
mov dx,0
int 0x10 ;置游標位置(0,0)
;顯示字串
mov ah,0x13
mov al,0x01
mov cx,26
mov bx,0x0007
mov bp,bootmsg
int 0x10
bootmsg:
db 13,10
dd "Candle OS MBR booting..."
; 中間還有磁區表
times 0x1be-($-$$) db 0
; 填充剩余空間到0x1be

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/284078.html
標籤:匯編語言
上一篇:請各位大佬看一下
下一篇:關于抓取下載圖片問題
