实现至简单print函数.
编译环境:borland c++ 3.1运行效果:
原理:视频缓冲区从0xB8000000开始,每个缓冲区占两个字节.第一个字节单元存储是ascii码,第二个则存储颜色值.
程序代码:
#define BLACK 0 //黑色
#define BLUE 1 //蓝色
#define GREEN 2 //绿色
#define CYAN 3 //青色
#define Red 4 //红色
#define MAGENTA 5 //洋红色
#define BROWN 6 //褐色
#define LIGHTGRAY 7 //高亮灰色
#define DARKGRAY 8 //灰色
#define LIGHTBLUE 9 //高亮蓝色
#define LIGHTGREEN 10 //高亮绿色
#define LIGHTCYAN 11 //高亮青色
#define LIGHTRED 12 //高亮红色
#define LIGHTMAGENTA 13 //高亮洋红色
#define YELLOW 14 //黄色
#define WHITE 15 //白色
#define BLINK 16
void print(char* String,int Color)
{
char far* screen_address=(char far*)0xB8000000;
while(*String)
{
*screen_address=*String;
screen_address++;
*screen_address=Color;
String++;
screen_address++
}
}
int main(void)
{
print("hello world",GREEN);
return 0;
}









