IA-32指令系统概述

IA-32指令系统概述

  • 1、程序转换概述(回顾章节)
    • 1.1 程序和指令的关系
      • 1.1 指令的概念
    • 1.2 目标代码和ISA
    • 1.3 总结
  • 2、IA-32指令系统概述
    • 2.1 Intel处理器概述
    • 2.2 IA-32的寄存器组织
      • IA-32的标志寄存器
    • 2.3 IA-32的寻址方式
    • 2.4 高级语言程序中寻址举例
    • 2.5 IA-32机器指令格式
    • 总结

1、程序转换概述(回顾章节)

1.1 程序和指令的关系

  • 程序启动前,指令和数据都存放在存储器中,形式上没有差别,都是0/1序列

  • 采用“存储程序”工作方式:
    程序由指令组成。成被启动后,计算机能自动取出一条一条指令执行,在执行过程中无需人的干预。

  • 指令执行过程中,指令和数据被从存储器取出CPU,存放在CPU内的寄存器中,指令在IR中,数据在GPR中。

指令中需给出的信息:
操作性质(操作码)
源操作数1 或/和 源操作数2(立即数、寄存器、存储地址
目的操作数地址(寄存器编号、存储地址
存储地址的描述和操作数的数据结构有关

任何高级语言程序 最终通过执行若干条指令来完成

1.1 指令的概念

指令的类别:微指令机器指令伪(宏)指令之分。
机器指令:处于硬件和软件的交界面。(相当于一个菜谱指定的一个完整做菜过程)
注:本章中提及的指令都是机器指令
微指令:微程序级命令,属于硬件范畴(相当于洗、切、煮炒等做菜“微过程”)
伪指令是由若干机器指令组成的指令序列,属于软件范畴(相当于由多个菜谱合成一个”大菜“的过程)
汇编指令是机器指令的汇编表示形式,即符号表示。
机器指令汇编指令一一对应,它们都与具体机器结构有关,都属于机器级指令

1.2 目标代码和ISA

ISA是一种规约(Sepcification),它规定了如何使用硬件。

1.3 总结

高级语言程序总是转换为机器代码才能在机器上执行
转换过程:预处理、编译、汇编、链接
机器代码是二进制代码,可DUMP为汇编代码表示
ISA规定了一台机器的指令系统涉及到的所有方面,例如:
①所有指令的指令格式、功能
②通用寄存器的个数、位数、编号和功能
③存储地址空间大小、编址方式、大/小端
④指令寻址方式

注:DUMP:转储

2、IA-32指令系统概述

2.1 Intel处理器概述

x86是Intel开发的一类处理器体系结构的泛称
①现在Intel把32位x86架构的名称x86-32改称为IA-32
IA是Intel Architecture的缩写
由AMD首先提出了一个兼容IA-32指令集的64位版本
AMD称其为AMD64,Intel称其为Intel64(不同于IA-64
命名为“x86-64”,有时也简称为x64

2.2 IA-32的寄存器组织

IA-32指令系统概述_第1张图片GPR(General Purpose Register):通用寄存器
EFLAGs:标志寄存器
EIP:

IA-32指令系统概述_第2张图片指令中需给出的信息:
操作性质(操作码)
源操作数1 或/和 源操作数2 (立即数、寄存器编号、存储地址
目的操作数地址 (寄存器编号、存储地址
存储地址的描述与操作数的数据结构有关。

IA-32架构由16位架构发展而来,因此,虽然字长为32位或更大,但一个字为16位,长度后缀为w;32位双字,长度后缀为l。

IA-32的标志寄存器

IA-32指令系统概述_第3张图片6个条件标志
OF、SF、ZF、CF各是什么标志(条件码)?
AF:辅助进位标志(BCD码运算时才有意义)
PF:奇偶标志
3个控制标志
DF(Direction Flag):方向标志(自动变址方向是增还是减)
IF(Interrupt Flag):中断允许标志(仅对外部可屏蔽中断有用)
TF(Trag Flag):陷阱标

2.3 IA-32的寻址方式

IA-32指令系统概述_第4张图片
IA-32指令系统概述_第5张图片IA-32指令系统概述_第6张图片

2.4 高级语言程序中寻址举例

IA-32指令系统概述_第7张图片
IA-32指令系统概述_第8张图片

2.5 IA-32机器指令格式

IA-32指令系统概述_第9张图片

总结

IA-32是典型的CISC(复杂指令集计算机)风格ISA
1、8个通用寄存器(8位、16位、32位)
2、2给专用寄存器:EIP(PC)、标志寄存器EFLAGS
3、6个段寄存器(间接给出段基址)
4、存储器地址空间位4GB,按字节编址,小端方式
寻址方式 段基址 + 有效地址(偏移量)
• 立即、寄存器、存储器(SR:[B]+[I]*s+A)
• 相对寻址
– 变长指令字、变长操作码
• 汇编语言格式
– Intel格式汇编
– AT&T格式汇编(本课程使用)

你可能感兴趣的:(计算机系统基础,IA-32)