作者wowtiger (小虎)
看板ASM
标题Re: [问题] about eax
时间Sat Dec 15 23:35:39 2007
这是intel的指令手册上面写的
Table 3-3. Effective Operand- and Address-Size Attributes
D Flag in Code Segment
Descriptor 0 0 0 0 1 1 1 1
Operand-Size Prefix 66H N N Y Y N N Y Y
Address-Size Prefix 67H N Y N Y N Y N Y
Effective Operand Size 16 16 32 32 32 32 16 16
Effective Address Size 16 32 16 32 32 16 32 16
NOTES:
Y: Yes - this instruction prefix is present.
N: No - this instruction prefix is not present.
也就是说在CPU里面有个D flag (default size)来控制
一般启动时是Real Mode 所以 D flag = 0
之後转成Protect Mode时 D flag 就设成 1
而"听说"在Protect Mode利用特殊方式回到Real Mode时
可以让 D flag 维持 1
也就变成所谓的 Big Real Mode (32bit Real Mode)
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 122.125.195.189
1F:推 loveflames:要是没记错,这是看cr0最低位吧 12/15 23:54
2F:→ wowtiger:CR0最低位是Protection Enable 也就是进去PM的开关 12/16 00:27
3F:→ wowtiger:基本上 应该没有可以直接D flag修改的 12/16 00:29
4F:推 loveflames:D flag不是位在特定暂存器里? 12/16 00:53
5F:推 loveflames:原来是GDT.... 12/16 01:09
6F:→ loveflames:我最讨厌的东西其中之一 12/16 01:09
7F:→ loveflames:「自己动手写作业系统」这书太久没看全忘光了 12/16 01:14