作者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