当前位置: 代码迷 >> 汇编语言 >> 显存[0xb800]是不能执行的吗?该怎么解决
  详细解决方案

显存[0xb800]是不能执行的吗?该怎么解决

热度:4047   发布时间:2013-02-26 00:00:00.0
显存[0xb800]是不能执行的吗?
写了段代码,放入0XB800段,然后跳入执行bochs显示
http://hi.csdn.net/attachment/201004/2/2850505_1270183501u65l.png
,是不是显存是不可执行的内存区域啊

------解决方案--------------------------------------------------------
bochs 虚拟机里?这个应该是虚拟机给出的保护吧。这个显存,应该也是可以放入代码数据来执行的。不过,如果该区域有效,说明它当前正被显示系统用着,其中的内容就可能随时被显示内容覆盖而至无效错乱。所以,只有可能,还是别这么设计吧。
------解决方案--------------------------------------------------------
既然是显存了那它就不是内存了。
虽然都是插在机器上的板子,可是插的地方不一样。
虽然都是线性地址,可不是在同一个硬件上。
------解决方案--------------------------------------------------------
是可以执行的。在bochs中出现这个问题是因为虚拟机的指令预取部分限制读取某些内存区域,见源代码在cpu.cc中。

------解决方案--------------------------------------------------------
CPU预取指令不能访问那个地址 非内存 显卡映射地址 ISA显卡或许可以 PCI 的不行
不过LZ的开发环境不错 很有意思