C怎么操作内存地址?

a55662551 2008-12-23 01:38:01
如果能,应该也能往显示内存写数吧?
哪位高手就写让屏幕成兰色中间一点为白色的程序好么?这样能直观地看到效果,谢谢!
...全文
188 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
Email144 2008-12-23
  • 打赏
  • 举报
回复
高手真多啊,喜欢这里
xiaoyisnail 2008-12-23
  • 打赏
  • 举报
回复
嵌入汇编可以实现
内存地址空间中,B8000H~BFFFFH的32KB空间为80*25彩色字符模式的显示缓冲区,想这个地址空间写就可以了

颜色模式具体要查资料,显示缓冲区分8页,每页4KB
第一页中
偏移000-09F对应显示器上第一行(80个字符)
偏移0A0-13F对应显示器上第二行
...以此类推
Behard 2008-12-23
  • 打赏
  • 举报
回复
那个通过 bios 中断来做的(也叫中断服务程序)
lihanying2008 2008-12-23
  • 打赏
  • 举报
回复
我能想到的方法就是C中嵌入匯編,但是還不如直接用匯編。。。

[Quote=引用楼主 a5566255 的帖子:]
如果能,应该也能往显示内存写数吧?
哪位高手就写让屏幕成兰色中间一点为白色的程序好么?这样能直观地看到效果,谢谢!
[/Quote]
lihanying2008 2008-12-23
  • 打赏
  • 举报
回复
如何用c直接給指定的內存寫數據,這個問題我一直在想
樓主說的應該是往內存中的Frame Buffer里直接填寫顏色代碼
這樣的程序我用匯編寫過,沒什么牛的...
但是用c寫的話...一直頭痛這問題
人尽其材 2008-12-23
  • 打赏
  • 举报
回复
还以为问题很简单呢
mifeixq 2008-12-23
  • 打赏
  • 举报
回复
不要搞tc了 graphics.h就tc上有,研究这个有什么用阿……

lz说的我不会,不是图形方向的…… 如果LZ很感兴趣,可以看看这方面的资料
CPlusPlusFans 2008-12-23
  • 打赏
  • 举报
回复
如果需要直接写显存的话,需要调用中断10,进入出名的13模式,即320*200,256色
内存地址从0xA000 0000 开始,每一个字节代表一个像素,一共64k内存
可以尝试char *video=(char *)0xA0000000;
但前提是要进入13模式才行,你翻一下中断列表吧,C中有调用中断的函数,进入13模式后,可以直接写显存
Darkneece 2008-12-23
  • 打赏
  • 举报
回复
现在在有操作系统的情况下,应用程序已经没有办法直接的操作一个指定的物理地址,显存也一样。只有驱动程序才能。

应用程序只能调用现成的API
lann64 2008-12-23
  • 打赏
  • 举报
回复
要么用嵌入汇编操作,要么调用系统API操作。
DOS下容易,windows下还是用windows API吧。
waizqfor 2008-12-23
  • 打赏
  • 举报
回复
#include <graphics.h>
头文件VC里没有 如何添加 小问一下
wudeshou82666 2008-12-23
  • 打赏
  • 举报
回复

pokeb(0xa000,position%65536,buffer1[n]);
outportb(0x3c8,i)

查查这两个函数怎么用,像你说的这种效果应该需要用BIOS软中断.
a55662551 2008-12-23
  • 打赏
  • 举报
回复
谢谢LS,不过我想知道怎么直接给显卡内存地址写数。。。
我见过一个超牛程序,一共10K左右,放的是一段很清晰的“几十分钟”的“3D”动画还有“配乐”(全是这10K之内的程序弄出来的),它的做法好像就是直接内存操作,它是怎么弄的呢?
majun01 2008-12-23
  • 打赏
  • 举报
回复
/*
* 编译工具:tc 3.0
*/
#include <graphics.h>
#include <stdio.h>

void main()
{
int gdriver,gmode;
detectgraph(&gdriver,&gmode);
if(gdriver<0)
exit(1);
initgraph(&gdriver,&gmode,"D:\\tc3\\bgi");

setbkcolor(BLUE);//蓝色背景
putpixel(getmaxx()/2,getmaxy()/2,WHITE);//白点

getch();
}
长安宁 2008-12-23
  • 打赏
  • 举报
回复
你直接搜 graphics.h里面,应该有设置颜色的函数吧
nullah 2008-12-23
  • 打赏
  • 举报
回复
关注
帮顶~~
lsd1025 2008-12-23
  • 打赏
  • 举报
回复
UP!
我也想学习一下!
snail_new 2008-12-23
  • 打赏
  • 举报
回复
up一下
也想学习学习...

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧