有关资料:
1.BIOS 中断 10H 的 11H 入口参数: AH
= 11H
功能号 | 入口参数 | 出口参数 |
AL=00H或10H 装用户规定的字模 |
ES:BP=指定的字符点阵 | |
CX=装入的字符数目 | ||
DX=从哪个字符开始装入 | ||
BL=要装入的模式 | ||
BH=每个字符点阵的数据字节数 |
汇编编程示例:
;定义字符点阵,下面是一个电话的符号,因为用一个字符的位置显示一个电话是不够的,所以下面是两个字符点阵的数据,要注意前16字节是电话的左半边,后16字节是电话的右半边,你把下面的数据化成二进制一看便知,不过就这32字节可花了我半小时在纸上画框框,打叉叉...
;比如以下的数据是这样得到的
; ........ 0000 0000 00h ; ..xxxxxx 0011 1111 3fh ; .x...... 0100 0000 40h ; .x.xxxxx 0101 1111 5fh ; .x.x..x. 0101 0010 52h ; .xxx.x.. 0111 0100 74h ; ....x.xx 0000 1011 0bh ; ...x.x.. 0001 0100 14h ; ..x.x..x 0010 1001 29h ; .x..x.x. 0100 1010 4ah ; .x..x..x 0100 1001 49h ; .x...x.. 0100 0100 44h ; .x....xx 0100 0011 43h ; ..xxxxxx 0011 1111 3fh ; ........ 0000 0000 00h ; ........ 0000 0000 00h CHAR DB 00H,3FH,40H,5FH,52H,74H,0BH,14H ;left part of phone DB 29H,4AH,49H,44H,43H,3FH,00H,00H DB 00H,0F8H,04H,0F4H,094H,5CH,0A0H,50H ;right part of phone DB 28H,0A4H,24H,44H,84H,0F8H,00H,00H STR DB 'This is a phone:',0CEH,0CFH,'$' ... MOV AX,1100H ;功能号 MOV BX,1000H ;BH=10H,每字符点阵为16字节 MOV CX,2 ;共要装入2字节 MOV DX,00CEH ;从00CEH开始(00CEH,00CFH) MOV ES,DATA_SEGMENT MOV BP,OFFSET CHAR ;ES:BP为字符点阵数据地址 INT 10H MOV AH,9 ;把字符 ce,cf显示出来看看,是什么! MOV DX,OFFSET STR INT 21H