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

【计算机组成原理】指令系统体系结构

2016-08-05 21:51 786 查看

前言

指令系统其实就是软件和硬件之间的约定。比如,硬件工程师按照某个指令集合设计好CPU,软件程序员同样遵循该指令集合来编写代码,并写入到存储器中,然后CPU自动的读取指令,译码,执行。

x86体系结构

x86有很多代CPU,这里只介绍16位的8086,之后出现的80386等等都是对字长的扩展,以及增添了几个寄存器,而指令集合也都是向前兼容的。

8086CPU

里面有哪些寄存器



标志寄存器的内部



一个简单的例子



这个例子如果看懂了,就知道这是一个16进制的加法运算,而且两个操作数的长度还得是一样的。下面来讲一下其中重要的细节。

这个存储器是以字节为单位的(8 bit),而CPU寄存器是16位的(word = 16 bit),也就是说CPU从存储器里取数的时候一次要取两个字节。例如,
MOV AX, [SI]
,这里
AX
中的数将会是
8888H


CLC
清零标志位CF。

ADC
加法运算的时候会将进位也加进去。

两条
INC SI
不能改成
ADD SI 2
,因为ADD会影响标志位CF。

JNZ
会判断前一条语句的结果是否为0。利用了标志寄存器中的
ZF
位。

最后三句是为了将最后一个进位加到结果中去。

一个复杂的例子



这个例子是利用
MOVSB
REP
来执行串操作,也就是一整块数据的传输,这个操作对编写代码带来了便利。其中的细节。

DS段寄存器中存了基址,然后前两句MOV是把DS的内容放到ES中去了。

接下来两条MOV,把源串的偏移地址存到SI,目标串的偏移地址存到DI。

CLD。将会把标志寄存器中的DF位设置为0,即表示从源串的低地址开始传送。(STD的作用与之相反)

CX寄存器,存的数是表示重复的次数,下面REP前缀修饰的MOVSB操作,执行的时候会自动将CX减1。

MIPS体系结构

MIPS是精简指令系统(RISC)的经典代表,是RISC的先驱。它的设计理念是减少指令数量,降低指令复杂度。它的基本原则是:a simpler CPU is a faster CPU。

它的主要特点:

固定的指令长度。

简单的寻址模式。

指令数量少,功能简单。一个指令只做一件事。

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

相比x86指令集的数千页文档,MIPS只要两页就能说清了。

MIPS的简介

MIPS指令可以分为R,I,J型指令。大概介绍一下

R型指令

寄存器型指令。
opcode
funct
都是指令类型相关的位;
rs,rt,rd
分别是源操作数,目标操作数,结果;
shamt
用于指定移位指令进行的移位位数,MIPS字长为32位,所以这里5位就刚好够了。举例:
add t0, t1, t2




I型指令

立即数型指令。值得注意的是,我们知道16位的立即数能表示正负2^15字节的偏移量,但是MIPS是固定32位指令的,也就是说它们在存储器中是4字节对齐的,所以它实际表示的字节偏移量是正负2^17,即正负2^15字长(32 bit)的偏移量。举例:
addi t0, t1, 5




J型指令

非条件跳转指令。
j lable
这种,其中26位都用来存目的地址的值。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  计算机