实现至简单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; }