INT 0X10 13H中断的问题-字符串显示不出来!

为什么这个显示不出来,求教!!!


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

wc,不应该org 0x7c00