计算机组成原理-笔记-第四章

目录

第四章——指令系统

1、指令格式

(1)指令(机器指令-二进制数)

(2)指令分类(按照 地址码的数量 分类)

(3)指令分类(按照长度分类)

(4)指令分类(按照 操作类型)

(5)总结

2、拓展操作码

(1)操作码拓展方法(注意事项)

(2)习题(拓展操作码)

(3)总结

3、指令寻址(顺序、跳跃)

(1)总结

4、数据寻址

(1)直接寻址(和立即寻址不一样——2次)

(2)间接寻址(便于-编制程序-n次)

(3)寄存器寻址(速度快-1次)

(4)寄存器间接寻址(速度快-对间接寻址来说-2次)

(5)隐含寻址

(6)立即寻址

(7)总结

5、数据寻址(偏移寻址)

(1)基址寻址(基地址+偏移量——面向操作系统)

(2)变址寻址(循环结构——面向程序员)

(3)相对寻址(方便jump跳转!)

(4)总结

(5)硬件——比较器

(6)堆栈寻址(软硬件的实现方式都有——pop & push)

6、汇编语言

(1)   指明内存的读写长度

(2)   寄存器

(3)   命令说明

(4) X86汇编指令

(5) AT&T格式 和 Intel格式

(6) 选择语句(用jump)

(7) 循环语句(jump & loop)

(8) CISC & RISC


第四章——指令系统

CPU设计厂商会定义并实现一组机器指令集,供汇编语言使用和调用。

机器指令是计算机硬件直接理解和执行的指令,它们以二进制形式表示,对应着特定的操作和功能。

1、指令格式

计算机组成原理-笔记-第四章_第1张图片

 

(1)指令(机器指令-二进制数)

计算机组成原理-笔记-第四章_第2张图片

计算机组成原理-笔记-第四章_第3张图片

(2)指令分类(按照 地址码的数量 分类)

计算机组成原理-笔记-第四章_第4张图片

计算机组成原理-笔记-第四章_第5张图片 

计算机组成原理-笔记-第四章_第6张图片 

计算机组成原理-笔记-第四章_第7张图片

(3)指令分类(按照长度分类)

机器字长:CPU一次运算,可以处理的位数!(16、32、64位)x32、x64

因此,当指令是双字长指令时,那么CPU需要分两次读取!

计算机组成原理-笔记-第四章_第8张图片

计算机组成原理-笔记-第四章_第9张图片

(4)指令分类(按照 操作类型)

计算机组成原理-笔记-第四章_第10张图片

(5)总结

计算机组成原理-笔记-第四章_第11张图片


2、拓展操作码

(1)操作码拓展方法(注意事项)

计算机组成原理-笔记-第四章_第12张图片

计算机组成原理-笔记-第四章_第13张图片 

(2)习题(拓展操作码)

计算机组成原理-笔记-第四章_第14张图片 

(3)总结

计算机组成原理-笔记-第四章_第15张图片


 

3、指令寻址(顺序、跳跃)

顺序寻址:

根据【指令长度】和【主存储器如何编址】来进行计数(PC-program count)

即由【指令长度】和【主存储器如何编址】的比值来确定累加的步进

PC的数值——指向下一个要运行的指令!(类似于让你运行对应的代码行数!)

跳跃寻址:

当你按照顺序寻找的时候,遇到函数或者(goto语句时),就会跳转到对应的代码行!

这个也是类似!,当你遇到jump语句时,要跳到指定位置!!!

定长指令

计算机组成原理-笔记-第四章_第16张图片

变长指令 

计算机组成原理-笔记-第四章_第17张图片

(1)总结

计算机组成原理-笔记-第四章_第18张图片


 

4、数据寻址

计算机组成原理-笔记-第四章_第19张图片

 

(1)直接寻址(和立即寻址不一样——2次)

直接:直接去主存中找!

立即:地址码=操作数——直接用!

计算机组成原理-笔记-第四章_第20张图片

 

(2)间接寻址(便于-编制程序-n次)

计算机组成原理-笔记-第四章_第21张图片

 

(3)寄存器寻址(速度快-1次)

计算机组成原理-笔记-第四章_第22张图片

 

(4)寄存器间接寻址(速度快-对间接寻址来说-2次)

计算机组成原理-笔记-第四章_第23张图片

(5)隐含寻址

计算机组成原理-笔记-第四章_第24张图片

(6)立即寻址

计算机组成原理-笔记-第四章_第25张图片

(7)总结

计算机组成原理-笔记-第四章_第26张图片

5、数据寻址(偏移寻址)

(1)基址寻址(基地址+偏移量——面向操作系统)

记得要用bit位来表明——哪一个寄存器中存放了基地址!!!

优点:存储在内存中,偏移量按照基地址来算(相当于是:相对的),所以当程序并发运行时,指令存储的位置即使有变动,指令也无需修改!

缺点:基址寻址需要一个特定的寄存器来存储基址的值,并且在执行指令时需要进行基址和偏移量的计算。这会引入一定的额外开销。

计算机组成原理-笔记-第四章_第27张图片

 计算机组成原理-笔记-第四章_第28张图片

(2)变址寻址(循环结构——面向程序员)

计算机组成原理-笔记-第四章_第29张图片

 

(3)相对寻址(方便jump跳转!)

注意:程序段发生改变,那么程序指向的操作数会不会改变呢?

优化方法:将数据段和程序段分开!这样当程序段改变,指向的数据位置就不会改变啦!

计算机组成原理-笔记-第四章_第30张图片

(4)总结

计算机组成原理-笔记-第四章_第31张图片

(5)硬件——比较器

计算机组成原理-笔记-第四章_第32张图片

(6)堆栈寻址(软硬件的实现方式都有——pop & push)

计算机组成原理-笔记-第四章_第33张图片

6、汇编语言

(1)   指明内存的读写长度

计算机组成原理-笔记-第四章_第34张图片

(2)   寄存器

计算机组成原理-笔记-第四章_第35张图片计算机组成原理-笔记-第四章_第36张图片

(3)   命令说明

计算机组成原理-笔记-第四章_第37张图片

 

(4) X86汇编指令

计算机组成原理-笔记-第四章_第38张图片

计算机组成原理-笔记-第四章_第39张图片

(5) AT&T格式 和 Intel格式

计算机组成原理-笔记-第四章_第40张图片

 

(6) 选择语句(用jump)

计算机组成原理-笔记-第四章_第41张图片

计算机组成原理-笔记-第四章_第42张图片

(7) 循环语句(jump & loop)

计算机组成原理-笔记-第四章_第43张图片

(8) CISC & RISC

计算机组成原理-笔记-第四章_第44张图片

你可能感兴趣的:(其他,笔记)