INT 0x10 13h号中断的问题

主世界 主世界 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
为什么这个显示不出来,求教!!!


; 常量声明
%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

...全文
评论 1
收藏 已收藏
分享
返回顶部
主世界
汇编语言 21,500 成员 41,619 内容