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

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( 220
  • 物理地址的形成采用段加偏移的方式

有4个数据寄存器,存放通用数据,此外还有其他功能:
- AX(Accumulator):存放乘除等指令的操作数
- BX(Base):存放存储单元的偏移地址
- CX(Count):存放计数值
- DX(Data):乘法运算产生的部分积,除法运算的部分被除数

其他4个通用寄存器:
- SP:堆栈指针寄存器,用来指向当前的栈
- BP:基址指针寄存器,指向系统栈最上面一个栈帧的底部
- SI:源变址寄存器,用于存放存储单元在段内的偏移量,串指令中的源操作数指针
- DI:目的变址寄存器,用于存放存储单元在段内的偏移量,串指令中的目的操作数指针
(SI通常指向源数组,DI通常指向目的数组,他们通常被用来成块地移动数据,比如移动数组或结构体,通常和DS和ES一起使用)

标志寄存器:
8086的标志位

指令指针寄存器:
- 相当于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 转移类指令

条件转移指令1

条件转移指令2

2.2.4 控制类指令

处理器控制指令

2.2.5 串操作指令

串操作指令

  • MOVSB指令:在存储器中将指定位置的一个字节单元传送到另一个指定的位置
  • REP前缀:当CX 0时,重复执行串操作指令
  • 源串地址为DS:SI,目的串地址为ES:DI
  • 串的长度在CX寄存器中
  • 自动修改SI和DI,指向下一个串元素
  • 若使用重复前缀,则CX CX-1

MOVSB指令示例

3 MIPS体系结构

MIPS的设计者,RISC的先驱:约翰 亨尼西(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的通用寄存器

MIPS的通用寄存器

3.4 MIPS指令的基本格式

MIPS指令的基本格式

  • opcode:用于指定指令的类型,对于所有R型指令,该域的值均为0
  • rs:通常用于指定第一个源操作数所在的寄存器编号
  • rt:通常用于指定第二个源操作数所在的寄存器编号
  • rd:通常用于指定目的操作数(保存运算结果)的寄存器编号
  • shamt:用于指定移位指令进行移位操作的位数,对于非移位指令,该域设为0
  • 与opcode域组合,精确地指定指令的类型
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值