【x86汇编语言:从实模式到保护模式笔记】第十章 32位x86处理器编程架构

本文详细介绍了32位x86处理器的IA-32架构,包括寄存器扩展、基本执行环境如实模式和保护模式,以及线性地址的概念。此外,讨论了现代处理器的流水线技术和高速缓存,32位模式下的指令系统和寻址方式,深入解析了处理器设计的优化策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Intel32位处理器架构,简称IA-32(Intel Architect,32-bi时Intel32位处理器架构,简称IA-32(Intel Architect,32-bi)。
所谓处理器架构,或者处理器编程架构,是指一整套的硬件架构,以及与之相适应的工作状态。
其中的灵魂部分就是一种设计理念,决定了处理器的应用环境和工作模式,也决定了软件开发人员如何在这种模式下解决实际问题。

32位处理器除了扩展数据线和地址线,还增加了高速缓存,流水线,浮点数处理,多处理器(核)管理,多媒体扩展,乱序执行,分支预测,虚拟化,温度和电源管理等。

10.1 IA-32架构的基本执行环境
10.1.1 寄存器的扩展
  • 原有的8个通用寄存器进行扩展(Extend)。
    AX -> EAX
    BX -> EBX
    CX -> ECX
    DX -> EDX
    SI -> ESI
    DI -> EDI
    SP -> ESP
    BP -> EBP
  • 指令寄存器进行扩展
    IP -> EIP
  • 标志寄存器
    FLAGS -> EFLAGS
  • 段寄存器还是16位,但是保存的不再是段地址,而是段选择子
    CS、SS、DS、ES、FS、GS
10.1.2 基本工作模式

在刚加电时,80386,80286处理器都自动处于实模式下,此时它相当于一个非常快速的8086处理器。只有在进行一番设置之后,才能运行在保护模式下。

  • 实模式
  • 保护模式
  • 虚拟8086模式(V86模式)
10.1.3 线性地址

段地址和偏移地址称为逻辑地址,偏移地址叫做有效地址(Effective Address,EA)。
分页功能:将物理内存划分成逻辑上的页。页的大小是固定的,一般为4KB,通过使用页,可以简化内存管理。解决内存空间碎片化的问题。

段部件
页部件
段地址+偏移地址
线性地址
物理地址
10.2 现代处理器的结构和特点
10.2.1 流水线

为了提高处理器的执行效率和执行速率,可以把一条指令的执行过程分解成若干细小的步骤,并分配给相应的单元来完成。各个单元的执行是独立的,并行的。如此一来,各个步骤的执行在时间上就会重叠起来,这种执行指令的方法就是流水线(Pipr-Line)技术。

10.2.2 高速缓存

影响处理器速度的另一个因素是存储器。从处理器内部向外看,它们分别是寄存器,内存和硬盘。

  • 寄存器:SRAM,速度是纳秒(ns)级别。
  • 内存:DRAM,速度是几十个纳秒(ns)级别。
  • 硬盘:ROM,毫秒(ms)级别。
    高速缓存是处理器与内存(DRAM)之间的一个静态缓存存储器,容量较小,但速度可以与处理器匹配。
10.3 32位模式的指令系统
10.3.1 32位处理器的寻址方式

在这里插入图片描述

10.3.2 IA-32指令格式
  • 前缀:前缀是可选的,每个前缀的长度是1字节,每条指令可以有1~4个前缀,或者不适用前缀。
  • 操作码:操作码的长度是1~3字节。同时操作码还可以用来指示操作的字长,即数据宽度为字节还是字。
  • 寻址方式和操作数类型:这部分是可选的,简单的指令不包含这一部分。稍微复杂一点的指令,这一部分只有1字节。最复杂的指令,可能有2个字节。这部分给出了指令的寻址方式,以及寄存器的类型(用的是哪个寄存器)。
  • 立即数和偏移量:如果指令中使用了立即数和偏移量,那么立即数和偏移量就在这一部分给出。
mov cx, [0x2000]
mov ecx, [eax + ebx * 8 + 0x02]
;偏移量0x2000和0x02在这一部分出现

在这里插入图片描述

10.3.3 一般指令的扩展

讲了各个指令在IA-32中的扩展

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值