【发布时间】:2013-03-11 20:29:15
【问题描述】:
内存映射硬件
在一些计算架构上,指针可以直接用于 操作内存或内存映射设备。
为指针分配地址是编程时非常有用的工具 微控制器。下面是一个简单的例子,声明一个指针 在此示例中,键入 int 并将其初始化为十六进制地址 常量 0x7FFF:
int *hardware_address = (int *)0x7FFF;
80 年代中期,使用 BIOS 访问 PC 的视频功能 很慢。显示密集型应用程序通常用于 通过转换十六进制常量直接访问 CGA 显存 0xB8000 指向一个指向 80 个无符号 16 位 int 值数组的指针。 每个值由低字节中的 ASCII 码和 高字节。因此,将字母“A”放在第 5 行第 2 列 蓝底白字,写出如下代码:
#define VID ((unsigned short (*)[80])0xB8000)
void foo() {
VID[4][1] = 0x1F00 | 'A';
}
在没有指针的情况下,Java/Python 中是否有可能?
编辑:
这样的访问可能吗:
char* m_ptr=(char*)0x603920;
printf("\nm_ptr: %c",*m_ptr);
?
【问题讨论】:
-
你能解释一下你想用这个做什么吗?
-
只是阅读this