最近在 “Intel® 64 and IA-32 Architectures Software Developer’s Manual Combined Volumes: 1, 2A, 2B, 2C, 2D, 3A, 3B, 3C, 3D and 4”看到下面这一段话:
以是说,在 64Bi[......]
最近在 “Intel® 64 and IA-32 Architectures Software Developer’s Manual Combined Volumes: 1, 2A, 2B, 2C, 2D, 3A, 3B, 3C, 3D and 4”看到下面这一段话:
以是说,在 64Bi[......]
细心的读者会发现前面的GDT 试验中,设置的选择子和实际查看到的选择子有着1bit的差别。比如:
实际读取到的是:
设置的是 9A 读取到的是 9B,二者相差1Bit。
对于这个问题开始研究。
首先确定差别的位置:
是 Type 中有差别。结合【参考1】资料[......]
最近发现开机之后桌面有一个弹出窗口,郁闷的是上面没有关闭按钮,也无法通过 ALT+F4关闭。
为了确认这个窗口的归属,使用 SPY++
再进一步查看属性就得知他是多玩坦克世界盒子的广告窗口。关掉坦克世界盒子这个窗口也会随之消失。
[......]
最近偶然看到BaseLib 提供了AsmReadMm0() 和AsmWriteMm0()函数,于是进行了下面的实验。
首先,用AsmReadMm0 读取当前 MM0 寄存器的值,然后随机生成一个再写入 MM0 中。
之后在 NT32Pkg 的模拟器中运行结果如下:
可以看到[......]
在实模式下,内存寻址是通过 “段寄存器:偏移” 来进行的。保护模式出现之后,因为内存地址长度的增加,这样的方式无法完成(不够长)。为了解决这样的使用索引来处理成为顺理成章的事情。
同时为了考虑兼容性,最终引入了Global Descriptor Table 来进行扩展。关于内存的地址信息存[......]
之前介绍过 UDK201903,这一段的实验也都是基于这个版本的。最近发现有更新的 UDK201905。在https://github.com/tianocore/edk2/releases/tag/edk2-stable201905
可以看到。增加了如下特性:
最近在实验屏幕PSR功能的时候碰到一个诡异的问题。具体现象就是:鼠标可以打开桌面上的一个目录,然后就出现鼠标可以移动但是不能点击任何内容的情况。这个时候键盘仍然是可以使用的。
起初我怀疑是系统装了很多乱七八糟的软件导致的问题。然后将这个硬盘换到其他的机器上就没有这样的现象了。接下来就怀疑BIO[......]
最近在编写代码的时候遇到一个非常奇怪的问题,经过化简,出现问题的代码如下:
INF 如下:
错误提示为:
百思不得其解,不知道这么简单的一句话为什么会导致这样奇怪的问题。有兴趣的朋友可以先花费三分钟思考一下。
忽然想起来最近学到的一个 VS 编译指令 /P 【[......]
最近 Krishna 做了一个能够读取分析 UEFI Shell 下屏幕历史信息的工具。比如,你想得到某一个 Application 的输出结果,可以先让他运行一次,然后用这个工具抓取之前的输出结果。
在 https://puravidaapps.com/qr.php 给出了一个实现的例子。这个例子的特点是不依赖网络,直接再手机本地生成:
AIA文件下载
我使用的是2018离线版的 App Inventor ,美中不足的是中文和英文术语对照起来挺折腾。
[......]