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