有关资料:
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