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

目录

第四章——指令系统

1、指令格式

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

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

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

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

(5)总结

2、拓展操作码

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

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

扫描二维码关注公众号,回复: 16187512 查看本文章

(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)指令(机器指令-二进制数)

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

 

 

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

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

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

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

(5)总结


2、拓展操作码

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

 

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

 

(3)总结


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

顺序寻址:

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

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

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

跳跃寻址:

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

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

定长指令

变长指令 

(1)总结


4、数据寻址

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

直接:直接去主存中找!

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

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

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

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

(5)隐含寻址

(6)立即寻址

(7)总结

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

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

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

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

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

 

(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

猜你喜欢

转载自blog.csdn.net/Pan_peter/article/details/132185719