-154- | PC机汇编语言实战精解 | ![]() |
|||||||||||||||||||
表6-2 CTRC寄存器的功能 | |||||||||||||||||||||
寄存器 编 号 |
寄存器名称 | 寄存器 类 型 |
参数单位 | 设定值 40x25 80x25 图形模式 |
|||||||||||||||||
00 | 水平扫描总时间 | 只写 | 字符 | 38 | 71 | 38 | |||||||||||||||
01 | 每行字符数 | 只写 | 字符 | 28 | 50 | 28 | |||||||||||||||
02 | 水平同步位置 | 只写 | 字符 | 2D | 5A | 2D | |||||||||||||||
03 | 水平同步宽度 | 只写 | 字符 | 0A | 0A | 0A | |||||||||||||||
04 | 垂直扫描总时间 | 只写 | 字符行 | 1F | 1F | 7F | |||||||||||||||
05 | 垂直总调节 | 只写 | 扫描线 | 06 | 06 | 06 | |||||||||||||||
06 | 每帧显示行数 | 只写 | 字符行 | 19 | 19 | 64 | |||||||||||||||
07 | 垂直同步位置 | 只写 | 字符行 | 1C | 1C | 70 | |||||||||||||||
08 | 隔行扫描方式 | 只写 | —— | 02 | 02 | 02 | |||||||||||||||
09 | 最大扫描线地址 | 只写 | 扫描线 | 07 | 07 | 01 | |||||||||||||||
10 | 光标起始 | 只写 | 扫描线 | 06 | 06 | 06 | |||||||||||||||
11 | 光标结束 | 只写 | 扫描线 | 00 | 00 | 00 | |||||||||||||||
12 | 起始地址(高位) | 只写 | —— | 00 | 00 | 00 | |||||||||||||||
13 | 起始地址(低位) | 只写 | —— | XX | XX | XX | |||||||||||||||
14 | 光标位置(高位) | 读写 | —— | XX | XX | XX | |||||||||||||||
15 | 光标位置(低位) | 读写 | —— | XX | XX | XX | |||||||||||||||
16 | 光笔位置(高位) | 只读 | —— | XX | XX | XX | |||||||||||||||
17 | 光笔位置(低位) | 只读 | —— | XX | XX | XX | |||||||||||||||
① CRTC10-CRTC11是光标控制寄存器,这两个寄存器用于控制光标的显示特性。寄存器的结构如图6-8所示: CRTC10=X00XXXXX:不闪烁。X01XXXXX:无光标。 X10XXXXX:光标闪烁频率控制为场频的1/16。 X11XXXXX:光标闪烁频率控制为场频的1/32。 |
|||||||||||||||||||||
![]() 图6-8 CRTC10-CRTC11寄存器的结构 |
|||||||||||||||||||||
CRTC10的低5位(Bit0-Bit4)用于控制光标的起始线位置,至于其它3个位CGA卡与EGA/VGA的定义不同。对于CGA卡而言,Bit5-Bit6用于控制光标的闪烁情况,Bit7位未使用;而在EGA卡上Bit5-Bit7位都未使用;VGA卡则使用Bit5位控制光标的有无。大家可以自行查阅这方面的资料,在此不再多说。 CRTC11的低5位用于控制光标的终止线位置,它的其余3个位CGA卡未使用,EGA和VGA卡使用Bit5-Bit6两位控制光标的偏移。下面的示例程序演示了通过这两个寄存器控制光标的形状的方法。 |
|||||||||||||||||||||
C:\ASM\>DEBUG[Enter] -a100[Enter] |
|||||||||||||||||||||
0BE2:0100 0BE2:0102 |
JMP DB |
0115 'Press any key...',0d,0a,24 |
;跳过数据区 |
||||||||||||||||||
Copyright © 2004-2015 Reanimator | www.cookmoon.org |