当前位置 : 主页 > 编程语言 > 其它开发 >

保护模式或64位模式下的编程模型

来源:互联网 收集:自由互联 发布时间:2022-05-30
保护模式或64位模式下的编程模型1、CPU内的寄存器: ​由实模式的16位寄存器,扩展成32位的寄存器以及64位的寄存器(段寄存器仍然为16位)。 ​EAX、EBX、ECX、EDX(32位);RAX、RBX、RCX、RD
保护模式或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+。

网友评论