#include <stdio.h>
#include <conio.h>
void main()
{
char far *v = (char far*)0xb8000000;
clrscr();
*v = 'w';
v += 2;
*v = 'e';
getch();
}
Run Code Online (Sandbox Code Playgroud)
输出是: we
我没有得到如何在没有任何printf
或其他印刷语句的情况下打印输出.
xan*_*tos 23
这是一个x86 实模式 IBM PC程序,它假定CGA/EGA/VGA兼容图形适配器采用彩色文本模式映射到默认存储位置(B800:0000); 它基本上来自MS-DOS(20世纪80年代/ 90年代)的时代.无论如何,这是一所非常古老的学校!
char far *v=(char far*)0xb8000000;
Run Code Online (Sandbox Code Playgroud)
视频缓冲区的内存地址(实模式)(0xb0000000
如果你有一个旧的Hercules则使用)
clrscr();
Run Code Online (Sandbox Code Playgroud)
清除屏幕
*v='w';
Run Code Online (Sandbox Code Playgroud)
在行0
,列中写入0
字符w
v+=2;
Run Code Online (Sandbox Code Playgroud)
跳过2 bytes
(在字符模式中的缓冲液是交织:1 byte
用于字符和1 byte
的颜色.1 bit
用于闪烁,3 bits
用于背景0-7和4 bits
对所述前景0-15,装在这种方式:foreground + 16 * background + 128 if you want flashing
)
*v='e';
Run Code Online (Sandbox Code Playgroud)
在行0
,列中写入1
字符e
getch();
Run Code Online (Sandbox Code Playgroud)
等待钥匙
现在有一个关于CGA文本模式格式的链接,对于那些需要知道"老一代"如何做到这一点的人,在"Windows"出现之前(甚至在所有"Linux"出现之前:-)).啊...和那些仍然不知道REAL-MODE是什么的链接(这次是wiki).
归档时间: |
|
查看次数: |
1016 次 |
最近记录: |