80386 模拟器源码分析
v86
分析一下 v86 第一版的代码
$ git clone https://github.com/copy/v86.git
$ git log --reverse
$ git checkout 8180d49f24833fc6cc05a90253a1f57f9045a4f5
i386 程序编译
参考 交叉编译
i386 registers
| 31 | ... | 15 | ... | 07 | ... | 00 | (bit position) |
| Main registers (8/16/32 bits) | |||||||
| EAX | AX | AL | Accumulator register | ||||
| ECX | CX | CL | Count register | ||||
| EDX | DX | DL | Data register | ||||
| EBX | BX | BL | Base register | ||||
| Index registers (16/32 bits) | |||||||
| ESP | SP | Stack Pointer | |||||
| EBP | BP | Base Pointer | |||||
| ESI | SI | Source Index | |||||
| EDI | DI | Destination Index | |||||
| Program counter (16/32 bits) | |||||||
| EIP | IP | Instruction Pointer | |||||
| Segment selectors (16 bits) | |||||||
| CS | Code Segment | ||||||
| DS | Data Segment | ||||||
| ES | Extra Segment | ||||||
| FS | F Segment | ||||||
| GS | G Segment | ||||||
| SS | Stack Segment | ||||||