利用BIOS中断编写最简单操作系统,hello world操作系统引导程序

1、设定显示模式
调用号:0
参数:AL
	AL=00	40X25黑白方式
	AL=01	40X25彩色方式
	AL=02	80X25黑白方式
	AL=03	80X25彩色方式
2、置光标位置
调用号:2
参数:
	BH=页号
	DH=行
	DL=列
3、在光标位置显示字符
调用号:9
参数:
	BH=显示页
	AL=字符
	BL=属性
	CX=字符重复次数
4、显示字符串
调用号:13
参数:
	ES:EP=串地址
	CX=串长度
	DH,DL=起始行列
	BH=页号
	AH=13
	AL=显示方式
	如果AL=0,表示目标字符串仅仅包含字符,属性在BL中,不移动光标
	如果AL=1,表示目标字符串仅仅包含字符,属性在BL中,移动光标
	如果AL=2,表示目标字符串包含字符和属性,不移动光标
	如果AL=3,表示目标字符串包含字符和属性,移动光标
	BL=属性(当且仅当AL的bit1==0)
	bit7:背景是否闪烁。0不闪烁,1闪烁
	bit6~bit4背景色:000黑色,111白色
	bit3为1前景色加亮,为0不加亮
	bit2~bit0前景色

相关代码说明:

CODES   SEGMENT  
        ORG 07C00H							;BIOS将代码加载到内存0x7C00处
start:  
        MOV AX, CODES  						;初始化数据段
        MOV ES, AX							;把数据段地址传给ES
        MOV AX, OFFSET msg  
        MOV BP, AX							;把字符串地址传给ES:BP       
  
        MOV CX, OFFSET strend                
        MOV DX, OFFSET msg  
        SUB CX, DX							;计算字符串的长度         
        MOV len, CX							;把字符串的长度赋给len  
  
next:   INC color  
        AND color, 0FH  
        MOV AX, 1301H						;调用13号功能,AH=13,AL=1
        									;目标字符串仅仅包含字符,属性在BL中,移动光标        
        MOV BH, 00H    						;页数在第零页
        MOV BL, color						;BL从00~0f循环显示,产生闪烁的效果	
        MOV CX, len							;串长度  
        MOV DX, 0815H						;字符串起始8行15列     
        INT 10H           
        JMP next							;循环,防止把内存当作指令执行  
over:   RET       
  
        color   DB 0FH  
        len     DW 0000H   
        msg     DB "My OS 2016!!"  
        strend  DB '$'  
        ORG 07C00H+200H-2H 					;200H就是512个字节            
        DW 0AA55H             
CODES   ENDS      
        END start  
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值