在64位模式下,如何实现保护模式的编程模型?
- 内容介绍
- 文章标签
- 相关推荐
本文共计448个文字,预计阅读时间需要2分钟。
保护模式下的64位编程模型,CPU内部的寄存器包括:EAX、EBX、ECX、EDX(32位)。这些寄存器由实模式下的16位寄存器AX、BX、CX、DX扩展而来,形成了32位的寄存器。此外,还包括64位的RAX、RBX、RCX、RDX。
保护模式或64位模式下的编程模型 1、CPU内的寄存器: 由实模式的16位寄存器,扩展成32位的寄存器以及64位的寄存器(段寄存器仍然为16位)。
EAX、EBX、ECX、EDX(32位);RAX、RBX、RCX、RDX(64位)。
EBX、EBP、ESI、EDI、EFLAGS、ESP、EIP(32位);RBX、RBP、RSI、RDI、RFLAGS、RSP、RIP(32位);
注意:段寄存器CS、DS、ES、SS、FS、GS仍然为16位。
2、内存中的存储单元(地址空间): 保护模式下(32位模式):由实模式的1MB扩展为2^32 = 4GB。地址是32位的!
保护模式下,内存有:1、分段模式;2、平坦模式;
64位模式下,所有的段寄存器都没有用,都全部清0。地址是64位的。
3、I/O端口(I/O地址空间): I/O端口地址都是16位的,能够寻址64K地址空间。
4、CPU的指令集(指令系统:Instruction Set) 指令的寻址方式:顺序寻址、跳跃寻址。
数据的寻址方式:32位保护模式/64模式支持实模式下所有的寻址方式,还扩充了一些:比例因子寻址。
比例因子寻址:基址寄存器 + 变址寄存器 * 比例因子(1,2,4,8之一) + 常量
5、汇编级的程序设计模型,核心就是程序的内存映像(代码段/文本段、全局数据段、栈、堆),即可执行文件的格式(在外存中的映像以及在内存中的映像) windows下的32位保护模式下有PE(portable Executable可移植可执行)可执行文件格式PE32;
windows下的64位模式下有PE32+或者PE+。
本文共计448个文字,预计阅读时间需要2分钟。
保护模式下的64位编程模型,CPU内部的寄存器包括:EAX、EBX、ECX、EDX(32位)。这些寄存器由实模式下的16位寄存器AX、BX、CX、DX扩展而来,形成了32位的寄存器。此外,还包括64位的RAX、RBX、RCX、RDX。
保护模式或64位模式下的编程模型 1、CPU内的寄存器: 由实模式的16位寄存器,扩展成32位的寄存器以及64位的寄存器(段寄存器仍然为16位)。
EAX、EBX、ECX、EDX(32位);RAX、RBX、RCX、RDX(64位)。
EBX、EBP、ESI、EDI、EFLAGS、ESP、EIP(32位);RBX、RBP、RSI、RDI、RFLAGS、RSP、RIP(32位);
注意:段寄存器CS、DS、ES、SS、FS、GS仍然为16位。
2、内存中的存储单元(地址空间): 保护模式下(32位模式):由实模式的1MB扩展为2^32 = 4GB。地址是32位的!
保护模式下,内存有:1、分段模式;2、平坦模式;
64位模式下,所有的段寄存器都没有用,都全部清0。地址是64位的。
3、I/O端口(I/O地址空间): I/O端口地址都是16位的,能够寻址64K地址空间。
4、CPU的指令集(指令系统:Instruction Set) 指令的寻址方式:顺序寻址、跳跃寻址。
数据的寻址方式:32位保护模式/64模式支持实模式下所有的寻址方式,还扩充了一些:比例因子寻址。
比例因子寻址:基址寄存器 + 变址寄存器 * 比例因子(1,2,4,8之一) + 常量
5、汇编级的程序设计模型,核心就是程序的内存映像(代码段/文本段、全局数据段、栈、堆),即可执行文件的格式(在外存中的映像以及在内存中的映像) windows下的32位保护模式下有PE(portable Executable可移植可执行)可执行文件格式PE32;
windows下的64位模式下有PE32+或者PE+。

