第3章 IA-32微处理器指令系统简介

合集下载

Intel IA-32处理器结构与原理

Intel IA-32处理器结构与原理
22
• 智能功效管理(Intelligent Power Capability) 超细粒度功耗控制能够只对处于工作状态的 部件提供电源,而关闭非工作部件的电源供 应,从而有效降低功耗。 分离总线技术能够使总线宽度动态适应数据 宽度的需要,对无效的信息位使其进入低电 压状态,从而进一步降低功耗。 功效管理平台技术通过调整散热风扇运作模 式,从外部降低处理器温度。
第2章 Intel IA-32处理器结构与原理
张明武
scauzhang@
华南农业大学信息(软件)学院
1
2.1 Pentium处理器
2.1.1 Pentium处理器的特性 • 80x86系列微处理器兼容 • 有64位数据总线、 32位地址总线,寻址空间4GB。 • RISC型超标量结构 - 两个5级整数指令流水线,一个8级浮点流水线。 • 具有超级流水线技术的高性能浮点运算器。 • 数据-代码分离式高速缓存,符合MESI协议。 • 增强的错误检测和报告功能。 • 利用片上分支目标缓冲器提高分支指令预测准确性。 • 常用的指令不采用微程序设计,而改用硬件实现。 • 支持64位外部数据总线突发传输方式 • 通过APIC总线支持多处理器系统
执行引擎 Local Local APIC APIC L2 Cache
总线接口
14
系统总线
系统总线
AMD的双核
Intel的Pentium D双核
15
4. Intel的EM64T技术
• 完全兼容现在的IA-32结构 • 具有传统IA-32模式和IA-32e模式,IA-32e模式 包括64位模式和兼容模式(允许现有程序无需 修改就运行在传统IA-32模式和兼容模式下) • 64位模式下具有以下特性: 64位平板线性地址 增加8个新的通用寄存器 增加8个新的流SIMD扩展(SSE, SSE2和 SSE3) 64位宽的通用寄存器和指令指针寄存器

IA-32卷3:经典系统编程指南[1、2、3、5章节]

IA-32卷3:经典系统编程指南[1、2、3、5章节]

IA-32 Intel®架构软件开发人员手册 卷3:系统编程指南(中文版-部分)前言现在开放源代码逐渐成为趋势的环境下,获取高水平的源代码的途径越来越容易,尤其是涉及操作系统的源代码,受到越来越多的有志于研究底层的开发人员的青睐。

然而操作系统(内核)源代码具有规模大、专业性强、涉及的知识面广的特点,大部分首次接触内核源代码的人感觉不少部分尤其是与硬件平台相关部分(任务切换、内存管理等方面)难以理解,而这些难以理解的部分却又往往是操作系统的核心部分。

对于造成操作系统代码难以理解的原因有多个方面,主有对操作系统若干理论、概念理解不深,这可以通过阅读操作系统相关书籍来弥补。

目前比较经典的操作系统书籍有多种,各有各的特色,有纯理论的,也有理论与实践相结合的。

“工欲善其事,必先利其器”在开始探究操作系统源代码之前,仔细深入的研究这些基本概念、基本理论是十分必要的。

然而这些还是不够的,除了理解操作系统概念理论之外,对于操作系统运行的硬件的了解也是非常必要的。

而目前缺乏x86平台权威资料,流行的教材都讲的比较基础,而与操作系统设计与开发方面相关的信息,讲得普遍比较少甚至少有涉及,而intel官方出的三卷手册就目前来讲是最全面、最权威的x86平台资料了,由于是官方版本是英文版,所以在很大程度上限制了它的流行,即使平时查阅相关资料时,也大都只是参考它的部分章节而对其全貌仍未了解。

这三卷各有特色,其中卷3主要是指针对与操作系统设计方面并鉴于目前情况,产生了首先将手册之卷3翻译为中文的念头,但是由于它篇幅很大(PDF版本有780页之巨)仅个人力量很难完成,所以借助于网络平台,召集大家共同分担完成,在此也非常感谢赵博士为大家提供了那么好的交流平台。

目前已经分配的翻译任务如下:第1章关于本手册第2章 系统架构概况 我(lijshu)基本已经译完,就是目前这个文件:-) 第3章 保护模式下的内存管理由sportsman 负责翻译第4章 保护机制 由sportsman 负责翻译第5章 中断和异常处理由wykr3879 负责翻译第6章 任务管理 由wykr3879 负责翻译第7章 多处理器管理由Timeless 负责翻译第8章高级可编程中断控制器由beyond 负责翻译第9章处理器管理与初使化由极速时空 负责翻译第10章 内存高速缓冲存储器控制 由engumen负责翻译其余的部分还没有落实,希望有兴趣、有精力的参加进来,让我们共同完成这个项目!由于翻译是一件非常不容易的工作,尤其是达到“信、达、雅”的地步更就难了,译稿只能尽最大能力保持准确把握原文的意思,但是由于每个人能力及对原文的理解不同,因此对于译稿肯定有很多有待商榷的地方,甚至是错误的地方,因此请大家指出来,便于进一步修改、完善译稿,以供大家飨用。

《计算机硬件技术基础(第三版)》第3章 32位微处理器

《计算机硬件技术基础(第三版)》第3章 32位微处理器
计算机硬件技术基础
(1)总线接口部件 总线接口部件与片内Cache外部总线接口实行的是逻辑接口连接。当访问 Cache出现没命中、或需更改系统存储器内容、或需向Cache写入某些信 息时,就要通过总线接口从外部存储器系统中取出一批数据。 (2)预取缓冲部件 预取缓冲部件 取指令是指从高速缓冲存储器Cache内或从内存储器中取出指令代码, 以备译码之用的操作。 (3)指令译码部件 指令译码部件 译码操作, 一是检查一条指令的格式, 二是确定它是哪种类型操作的指令,并给出这条指令所需的操作数。 (4)控制部件 控制部件 Pentium微处理器控制部件的作用是,负责解释来自指令译码部件的 指令字和控制ROM的微代码。控制部件的输出控制着整数流水线部件和 浮点部件。 (5)执行部件 执行部件 是微处理器用于执行指令所规定的具体操作的CPU的核心硬件部分。 这些非常具体的操作是指诸如数值运算、逻辑操作以及分支转移处理等。
为了支持在Pentium内采用的分支转移预测新技术,芯片内装备有两个 预取缓冲存储器,一个是以线性方式来预取代码,另一个则是根据分支转 移目标缓冲器(BTB)预取代码。这样就可以保证在执行之前将所需用的 指令从存储器预取出来。 由于Pentium采用了这项技术,可以在无延迟的情况下正确地预测各 种转移。另外,V流水线中的条件转移指令可以与一条比较类指令成对执 行,当然也可以与U流水线中的置标志指令配合执行。但Pentium作到了 与现有软件是完全兼容,所以不必修改现有软件。
计算机硬件技术基础
3.1 .
CISC和RISC 和
1 复杂指令系统计算机 复杂指令系统计算机—CISC 每一种微处理器的CPU都有属于它自己的指令系统。 CPU正是通过执行一系列的特定的指令来实现应用程序 的某种功能。像Intel x86系列,为了增加新的功能, 就必须增加新的指令;另一方面,为了保持向上兼容, 又必须保留原有的指令。每条指令又有若干个不同的操 作字段,用来说明要操作的数据类型,以及存放的位置。 这就意味着一个较大的指令系统和复杂的寻址技术。以 这样的微处理器为平台的计算机系统就是“复杂指令系 统计算机”(CISC)。 CISC也有许多优点,如指令经编译后生成的指令程 序较小执行起来较快,节省硬件资源。像存取指令的次 数少,占用较少的存储器等。

03第三章IA-32指令系统

03第三章IA-32指令系统
26
3.逻辑运算与移位指令
❖ (1)逻辑运算指令 (P116) ❖ (2)移位与循环移位指令 (P119)
表3-3 逻辑运算指令格式
27
4.字符串处理(P128)
❖ 8086/8088指令系统为文本处理提供了一组强有 力的指令(字符串处理指令),对一系列含有 字母数字代码的字节(也称字符串)进行处理, 例如传送、比较、查找、插入、删除等,字符 串指令为这些处理提供了很大方便。字符串指 令的寻址方式只用隐含寻址,源串固定使用SI, 目的串固定使用DI。
一条指令可能包含多种寻址方式。 16
2. 转移地址的寻址方式 ❖ (1)段内直接寻址 ❖ (2)段内间接方式 ❖ (3)段间直接寻址 ❖ (4)段间间接方式
17
(1)段内直接寻址
❖ 段内直接寻址方式也称为相对寻址方式,转移的目标 地址是当前IP内容和一个8位或16位的位移量之和, 这个位移量是指令代码的一部分,所以叫相对寻址。 如图3-8所示
21
3.2 8086的指令系统

1.数据传送类(P94);

2.算术运算类;

3.逻辑运算与移位指令;

4.字符串处理;

5.控制转移指令;

6.处理器控制指令。
22
1.数据传送类
❖ (1)通用数据传送指令
❖ 这种指令共5条。
❖ (2)条件传送指令(P96) ❖ (3)交换指令(P97) ❖ (4)堆栈操作指令(P99) ❖ (5)输入输出指令(P102) ❖ (6)扩展指令(P102) ❖ (7)目标地指传送指令
微机接口技术
第三章 指令系统

3.1 8086的寻址方式

3.2 8086的指令系统

2 IA-32结构微处理器

2 IA-32结构微处理器

但在8086中,由于BIU和EU是分开的, 所以,取指和执行可以重叠进行。它的执 行顺序如图2-3所示。
于是就大大减少了等待对取指所需的 时间,提高了CPU的利用率。一方面可以 提高整个程序的执行速度,另一方面又降 低了与之相配的存储器的存取速度的要求。 这种重叠的操作技术,过去只在大型机中 才使用称为流水线,在IA-32系列微处理器 中得到了广泛的使用与提高。
1.通用寄存器
八个32位通用寄存器AX、BX、CX、 DX、SI、DI、BP和SP用于处理以下项: 逻辑和算术操作的操作数; 用于地址计算的操作数; 内存指针。
虽然所有这些寄存器都可用于存放操 作数、结果和指针,但在引用SP寄存器时 要特别小心。SP寄存器保持堆栈指针,通 常不要用于其它目的。
4. 浮点支持
工程应用、图形处理、科学计算等要 求浮点支持(实数运算)。因此,自80486 芯片开始,在IA-32微处理器中集成了x87 (及其增强)浮点单元。
5. MMX技术
为支持多媒体技术的应用,如音乐合 成、语音合成。语音识别、音频和视频压 缩(编码)和解压缩(译码)、2D 和 3D 图形(包括 3D 结构映像)和流视频等等。 IA-32处理器中增加MMX技术及相应的指令
第2章
IA-32结构微处理器 与8086
2.1
IA-32微处理器是8086的延伸
2.2
8086的功能结构
2.3
8086微处理器的执行环境
2.1 IA-32 微处理器是8086的延伸
如上章所述,IA-32结构微处理器的 增长基本上按摩尔定律发展,已经经历许 多代。但从使用者(包括程序员)的角度 来看,它是以8086处理器为基础,是一个 兼容的微处理器系列,是8086在功能上和 性能上的延伸。

微机原理第3章-指令系统

微机原理第3章-指令系统

▲按给出偏移地址方式的不同,分为以下5种: 寄存器间接寻址 寄存器相对寻址 基址加变址寄存器 相对基址加变址寄存器 MOV AL, [ BX ] MOV AL, [ BX + 10H ] MOV AL, [ BX + SI ] MOV AL, [ BX + SI + 10H ]
(1)寄存器间接寻址
寄存器寻址方式的操作数是寄存器的值,指令中直接 使用寄存器名,包括8位或16位通用寄存器和段寄存器。可 使用的16位寄存器:AX、BX、CX、DX、SI、DI、SP、 BP;其中:AX、BX、CX、DX可分成两8位使用。
例: MOV AX,CX
;(AX)
(CX)
INC CX
;(CX)
(CX)+1
3.直接寻址(Direct Addressing)
0002
AH
AL
默认段寄存器的关系: ① 使用BX、SI、DI,默认段寄存器为DS
(BX)
PA = ( DS )×10H + (SI) (DI)
② 使用BP,默认段寄存器为SS PA = ( SS )×10H + ( BP )
使用BX、SI、DI的寄存器寻址,默认段寄存器为DS
寄存器组 AH AL BH BL CH CL DH DL SI DI BP SP AX BX CX DX DS ES SS CS IP 地 址 加 法 器
运 算 器
控制总线CB


PSW标志 寄存器
执行部件控制电路
CPU
总线
内存
例: MOV AX , [ BX + SI ]
若 ( DS ) = 4000H
( BX ) = 2000H ( SI ) = 100H 则内存操作数的物理地址为:

第三章 Win32汇编语言汇编语言程序设计基础指令系统PPT课件

第三章 Win32汇编语言汇编语言程序设计基础指令系统PPT课件

16
LEA 与 OFFSET
buffer db 100 dup(0)
;把字节变量buffer的EA传送给EBX
lea ebx, buffer

mov ebx, offset buffer √
buffer db 100 dup(0) lea ebx, [buffer+50] √ mov ebx, offset [buffer+50] ;X
2020/11/17
10
MOVZX / MOVSX
将源操作数的内容拷贝到目 的操作数中
MOVZX(move with zero-extend) 将该值零扩展至16位或32位
MOVSX(move with sign-extend) 将该值符号扩展至16位或32 位
目的操作数必须是寄存器
例:MOVSX EAX,CL MOVSX EDX,[EDI]
IA-32CPU指令系统包括:
① 通用指令 ② 浮点运算指令 ③ SIMD指令 ④ MMX指令(多媒体扩展指令集 ) ⑤ SSE/SSE2/SSE3指令(单指令多数据流扩展 ) ⑥ 系统指令 ⑦ 64位模式的指令
2020/11/17
3
通用指令集合
① 数据传送类指令 ② 算术运算类指令 ③ 位操作类指令 ④ 串操作类指令 ⑤ 控制转移类指令 ⑥ 处理机控制类指令 ⑦ 其他类
注意:不是获取存储器单元的内容
2020/11/17
15Βιβλιοθήκη 有效地址传送指令LEA将存储器操作数的有效地址传送至指定的 寄存器中。
在实模式下,使用16位寄存器 在保护模式下,使用32位寄存器
该指令通常用来对指针或变址寄存器EBX、 EDI或ESI等置初值之用。

IA-32处理器的功能结构

IA-32处理器的功能结构
的数据 堆栈段(Stack Segment)主存中堆栈所在的区
域。程序使用的堆栈一定在堆栈段。 代码段寄存器CS,堆栈段寄存器SS,数据段寄存器
DS,附加段寄存器ES 。FS和GS都属于数据段性质 的段寄存器 段寄存器属于专门的寄存器,不能与通用寄存器一 样使用,只能用于保存与段基地址有关的信息
总线接口单元
指令队列、指令指针、段寄存器、地址加法器和总线 控制逻辑
管理与系统总线的接口,负责对存储器和外设访问
执行单元
ALU、通用寄存器、标志寄存器和控制电路 负责指令译码、数据运算和指令执行
指令执行的两个主要阶段:取指和执行
取指:从主存取出指令代码进入指令队列 执行:译码指令、并发出有关控制信号实现指令功能
处理器按照无符号整数求得结果 设置进位标志CF 设置溢出标志OF
程序员决定 操作数是无符号数,关心进位 操作数是有符号数,注意溢出
IA-32处理器的功能结构
溢出标志的判断方法
处理器硬件判断规则
最高位和次高位同时有进位或同时无进位, 无溢出;最高位和次高位进位状态不同,有 溢出
人工判断的简单规则
数据存储格式举例
例2-4 在0x1000开始的存储单元依次存放的
字节是0x12,0x34,0x56,0x78,如图2-7所
示。分别以字节、字和双字访问存储单元,
其结果如何?
0x1004
...
0x1003
0x78
0x1002
0x56
0x1001
0x34
0x1000
0x12
图2-7各单元存储情况
IA-32处理器的功能结构
执行CLI指令设置IF=0 执行STI指令设置IF=1
IA-32处理器的功能结构
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
① 只允许使用BX、BP、SI、DI 存放有效地址。则 MOV AX,[CX] 是一 条错误的指令。 ② 源操作数和目的操作数的长度必须一致,下面的例子中源操作数的有 效地址虽然都放在BX,但其代表的存储单元大小是不一样的。 例如: MOV DL, [ BX ] ;[BX]指示一个字节单元
MOV DX, [ BX ] ;[BX]指示一个字单元 ③ 间接寻址时,若有效地址存放在BX中,则默认的段寄存器为DS,由 于BX称为基址寄存器,所以这种寻址方式也叫数据段基址寻址。例如:
[标号:]操作符 目的操作数,源操作数[;注释] ① 目的操作数和源操作数应具有相同的类型,即必须同时为字节类型或 同时为字类型。 ② 目的操作数不能是立即数。 ③ 操作结束后,一般情况其运算结果送入目的地址中,而源操作数不发 生改变。 ④ 目的操作数和源操作数不能同时为存储器操作数。
“十二五”职业教育国家规划教材
1、复杂指令系统计算机(CISC,Complex Instruction Set Computer) 早期的CPU全部是CISC架构,它的设计目的是要用最少的机器语言指 令来完成所需的计算任务。大量的复杂指令、可变的指令长度、多种 的寻址方式是CISC的特点,也是CISC的缺点
“十二五”职业教育国家规划教材
“十二五”职业教育国家规划教材
微机原理 (第五版)
3.1.3 寻址方式
MOV AX,[BX] 设DS=6000H,BX=3000H,则本指令在执行时,将63000H和 63001H两单元的内容送AX。 ④ 间接寻址时,若有效地址存放在BP中,则默认的段寄存器为SS,因为 BP称为基址寄存器,所以这种寻址方式通常称为堆栈段基址寻址。例如: MOV BX,[BP] 设SS=7000H,BP=1000H,则该指令在执行时,将71000H和71001H 两单元的内容送BX。 ⑤ SI和DI寄存器分别称为源变址寄存器和目的变址寄存器,所以用这两 个寄存器来进行间接寻址也叫变址寻址。
微机原理 (第五版)
3.1.2 指令格式
(2)单操作数指令格式为: [标号:]操作符 目的操作数
相应的操作规定为: ① 操作对象为目的地址中的操作数,操作结束后,其运算结果送入目的 地址中。 ② 操作数不能是立即数。
“十二五”职业教育国家规划教材
微机原理 (第五版)
3.1.3 寻址方式
寻址方式指的是在指令中寻找指令的操作数或操作数地址的方式。在
“十二五”职业教育国家规划教材
微机原理 (第五版)
第3章 IA-32微处理器指令系统简介 (目录)
▪ 3.4.2 汇编语言的语句类型 ▪ 3.4.3 汇编语言的语句结构 ▪ 3.4.4 汇编语言源程序的基本结构 ▪ 实战演练一 汇编程序设计基础 ▪ 实验1 汇编工具的使用 ▪ 实验2 循环程序设计 ▪ 实验3 分支程序设计
1、与数据有关的寻址方式
(1)立即寻址
操作数直接在指令中提供的寻址方式为立即寻址方式,指令中提供的 操作数也称作立即数。比如:MOV AL,80H ;
(2)寄存器寻址
操作数放在微处理器内部的寄存器中,在指令中直接指出寄存器的
名字。例如:
INC CX
;将CX的内容加1
“十二五”职业教育国家规划教材
微机原理 (第五版)
AH
AL
30
50
21060H
50
21061H
30
结果为:(AX)=3050H 图3.1直接寻址示例
“十二五”职业教育国家规划教材
微机原理 (第五版)
3.1.3 寻址方式
(4)寄存器间接寻址 有效地址由指令中的基址寄存器(BX或BP)或变址寄存器(SI或DI) 中给
出。 例如: MOV AX, [BX] ;PA = 10Hⅹ(DS) + (BX) 需要注意的是:
微机原理 (第五版)
3.1.1 指令系统分类
2、精简指令系统计算机(RISC,Reduced Instruction Set Computer) RISC体系结构的基本思路是:针对CISC指令系统指令种类太多、指
令格式不规范、寻址方式太多的缺点,通过减少指令种类、规范指令格 式和简化寻址方式,提高处理器内部的并行处理能力和VLSI器件的使用 效率,从而大幅度地提高处理器的性能。
“十二五”职业教育国家规划教材
微机原理 (第五版)
第3章 IA-32微处理器指令系统简介
3.1 指令系统概述 CPU依靠指令来计算和控制系统,每款CPU在设计时就规定了一系列 与其硬件电路相配合的指令系统。指令的强弱也是CPU的重要指标, 指令集是提高微处理器效率的最有效工具之一。
3.1.1 指令系统分类 从现阶段的主流体系结构讲,指令集可分为复杂指令集和精简指令集两 部分。
“十二五”职业教育国家规划教材
微 机 原 理 (第五版)
孙杰 解统颜 米昶 编著
大连理工大学出版社
第3章 IA-32微处理器指令系统简介 (目录)
▪ 3.1 指令系统概述 ▪ 3.1.1 指令系统分类 ▪ 3.1.2 指令格式 ▪ 3.1.3 寻址方式 ▪ 3.2 IA-32指令系统简介 ▪ 3.2.1 基本通用指令 ▪ 3.2.2 x87FPU指令 ▪ 3.3 微处理器的指令系统的发展 ▪ 3.3.1 IA-32架构 ▪ 3.3.2 x86-64架构 ▪ 3.4 汇编语言程序的基本结构 ▪ 3.4.1 汇编语言的语句成分
3.1.3 寻址方式
(3)直接寻址
数据在存储器中,有效地址由指令直接给出。例如:
MOV AX,[1060H] ;其功能是将DS段的1060H和1061H两单 元的内容取到AX中。假设(DS)=2000H,那么存储单元的物理地址为 21060H,如图3.1所示,将该存储单元中的数据送到寄存器AX中。
8086~80286CPU中,与数据有关的寻址方式主要有:立即寻址、寄存器 寻址、直接寻址、寄存器间接寻址、基址变址寻址、寄存器相对寻址、 相对基址变址寻址等几种。在80386及更高级的微处理器中还包括带比例 因子的变址寻址和带比例因子的基址变址寻址方式。与程序转移地址有 关的寻址方式包括:直接寻址和间接寻址。
RISC指令集有许多特征,其中最重要的有: ▪ 指令种类少,指令格式规范 ▪ 寻址方式简化 ▪ 大量利用寄存器间操作 ▪ 简化处理器结构 ▪ 便于使用VLSI技术 ▪ 加强了处理器并行能力
“十二五”职业教育国家规划教材
微机原理 (第五版)
3.1.2 指令格式
对于早期的Intel 8086和80286来说,微处理器上运行的是16位指令系 统,2位指令 系统。 (1)双操作数指令格式为:
相关文档
最新文档