随笔-65  评论-68  文章-4  trackbacks-0

;很多书都在说显示页,就是没有人说到底显示页的概念具体是什么的。
;80x86字符显示页有8个。有对应的BIOS中断来切换页的,页与页之间没有直接关系的。
;当程序在多个页中写程序时,可以及时地在各个页中切换。向屏幕写字符并且想要立刻看到,一定要写到当前显示的页中。
;阅读下面的程序需要有引导程序的知识

;下面的程序功能是在8个页中写入不同的字符,最后在各个页中切换。

;******************************************
;Copy Right Xiaoshuang Wang
;B.F.U
;2005
; 转载请保留此部分
;******************************************

org 0x7c00

bootStart:
 xor ax,ax
 mov ds,ax
 mov ss,ax
 mov sp,0x7c00
 mov bp,sp
 
 ; Init the DRIVE
 ; Boot drive number is stored in DX(lower part)
 mov [drive],dl

again:

 mov cx,200
 againChar:
 call putString
 loop againChar

 
 mov al,[page]
 inc al
 mov [page],al
 cmp al,0x8
 jne again
 
 mov cx,0x9
 xor al,al
 mov [page],al
 check:
 mov ah,0x05
 int 0x10
 xor ah,ah
 int 0x16
 mov al,[page]
 inc al
 mov [page],al
 loop check
 
db 0xea
dw 0x0000, 0xffff

data db '012345678'

putString:
 mov si,[page]
 mov al,[data+si]
 mov ah,0x0a
 mov bl,0x07
 mov bh,[page]
 int 0x10
retn


;************************
; Here are the data part
;************************
drive db 0
page db 0

times 510-($-$$) db 0
 dw 0xaa55
 

posted on 2005-04-28 22:24 小爽 阅读(803) 评论(0)  编辑  收藏 所属分类: 我的经验我的操作系统

只有注册用户登录后才能发表评论。


网站导航: