您的位置:首页 > 理论基础

计算机组成第二周:指令系统体系结构

2015-04-03 16:33 721 查看

1 x86体系结构

体系结构厂商微处理器型号字长年代
IA-16Intel8086, 8088, 80186, 80188, 8028616位1978年起
IA-32Intel80386, 80486, Pentium, Pentium Pro/II/III/4, Core, Atom32位1985年起
AMDAm386, Am486, Am5x86, K5, K6, Athlon
OthersCyrix 5x86, VIA C3/C7, Transmeta Crusoe/Efficeon
x86-64AMDOpteron, Athlon 64, Phenom, Phenom II64位2003年起
IntelPentium 4 Prescott, Core 2, Core i3/i5/i7
OthersVIA Nano

1.1 寄存器模型

寄存器类型Intel 8086Intel 80386x86-64
通用寄存器AX, BX, CX, DX, SP, BP, SI, DIEAX, EBX, ECX, EDX, ESP, EBP, ESI, EDIRAX, RBX, RCX, RDX, RSP, RBP, RSI, RDI, R8~R15
指令指针寄存器IPEIPRIP
标志寄存器FLAGSEFLAGSRFLAGS
段寄存器CS, DS, ES, SSCS, DS, ES, SS, FS, GSCS, DS, ES, SS, FS, GS

1.2 Intel 8086

内部的通用寄存器为16位,既能处理16位数据,也能处理8位数据

对外有16根数据线和20根地址线,可寻址内存空间为1MByte(2202^{20})

物理地址的形成采用段加偏移的方式

有4个数据寄存器,存放通用数据,此外还有其他功能:

- AX(Accumulator):存放乘除等指令的操作数

- BX(Base):存放存储单元的偏移地址

- CX(Count):存放计数值

- DX(Data):乘法运算产生的部分积,除法运算的部分被除数

其他4个通用寄存器:

- SP:堆栈指针寄存器,用来指向当前的栈

- BP:基址指针寄存器,指向系统栈最上面一个栈帧的底部

- SI:源变址寄存器,用于存放存储单元在段内的偏移量,串指令中的源操作数指针

- DI:目的变址寄存器,用于存放存储单元在段内的偏移量,串指令中的目的操作数指针

(SI通常指向源数组,DI通常指向目的数组,他们通常被用来成块地移动数据,比如移动数组或结构体,通常和DS和ES一起使用)

标志寄存器:



指令指针寄存器:

- 相当于PC,当CPU取出指令后会自动增加

- 转移指令、过程调用/返回指令等会改变IP的内容

段寄存器,与其他寄存器联合生成存储器地址:

- CS(Code Segment):代码段寄存器

- DS(Data Segment):数据段寄存器

- ES(Extra Segment):附加段寄存器

- SS(Stack Segment):堆栈段寄存器

物理地址=段基值*16+偏移量



1.3 Intel 80386

80x86系列中的第一款32位微处理器

支持32位的算术和逻辑运算,提供32位的通用寄存器

改进了“保护模式“,段范围可达4GB

增加了“虚拟8086模式“,可同时模拟多个8086微处理器

2 x86指令简介

2.1 程序示例



2.2 指令分类

2.2.1 传送类指令



2.2.2 运算类指令





2.2.3 转移类指令





2.2.4 控制类指令



2.2.5 串操作指令



MOVSB指令:在存储器中将指定位置的一个字节单元传送到另一个指定的位置

REP前缀:当CX≠\neq0时,重复执行串操作指令

源串地址为DS:SI,目的串地址为ES:DI

串的长度在CX寄存器中

自动修改SI和DI,指向下一个串元素

若使用重复前缀,则CX←\leftarrowCX-1



3 MIPS体系结构

MIPS的设计者,RISC的先驱:约翰⋅\cdot亨尼西(John Hennessy)

英文全称:Microprocessor without Interlocked Piped Stages

主要关注点:减少指令的类型,降低指令的复杂度

基本原则:A simpler CPU is a faster CPU

3.1 MIPS公司

年份事件
1984MIPS计算机系统公司成立
1988SGI公司在其计算机产品中采用MIPS处理器
1989MIPS第一次上市
1992SGI收购MIPS,更名为MIPS技术公司
1998MIPS再次上市
2012Imagination Technologies收购MIPS
应用领域:数字电视,机顶盒,蓝光播放器,游戏机,网络设备等

3.2 MIPS指令的主要特点

固定的指令长度(32bit,即1 word)

简化了从存储器取指令

简单的寻址模式

简化了从存储器取操作数

指令数量少,指令功能简单(一条指令只完成一个操作)

简化指令的执行过程

只有Load和Store指令可以访问存储器

例如,不支持x86指令的这种操作:ADD AX, [3000H]

需要优秀的编译器支持

指令示例:

- add a, b, c

- lw $8, 12($19)

- add, $8, $18, $8

- sw $8, 40($19)

3.3 MIPS的通用寄存器



3.4 MIPS指令的基本格式



opcode:用于指定指令的类型,对于所有R型指令,该域的值均为0

rs:通常用于指定第一个源操作数所在的寄存器编号

rt:通常用于指定第二个源操作数所在的寄存器编号

rd:通常用于指定目的操作数(保存运算结果)的寄存器编号

shamt:用于指定移位指令进行移位操作的位数,对于非移位指令,该域设为0

与opcode域组合,精确地指定指令的类型
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: