最近计组老师换了,还不能适应老师的讲课方式,关于很多问题的理解也是不甚了解,在这里和大家掰扯掰扯,企图在复读中实现人生的真谛QAQ。
关于扩展操作码我们都知道它是操作码的位数可变,尽可能多地表示指令。相信下面这道例题大家都不陌生,这道例题很好理解,但是当自己扩展起来就没那么容易了,究其原因,还是对扩展的原则了解不够。
在进行指令扩展时,以下两个原则必须严格遵守:
只要遵守上述两个原则,那么进行的扩展就是有效的、合法的扩展。
首先先看一下定义咋说的吧
边界对齐:多字节数据在存储器中采用对准边界的方式存储。
小端格式:低地址存放低字节,高地址存放高字节
大端格式:高字节存放低地址
这些概念好像看上去有那么点意思了,但是还是感觉朦朦胧胧的,这个时候,需要例题来磨练一下:
(没错!俺又从PPT上偷题了!毕竟这题俺也不明白呜呜呜)
这道题第一问没啥毛病,第二问就需要考虑边界对齐了,这里按照上面的边界对齐的定义就做不了了,因为并没有说怎么对准边界啊。。。感觉说了个寂寞,面向百度老师学习一波,才恍然大悟。
边界对齐通俗的定义就是K字节大小的数据必须存储在K的整数倍的地址上。
也就是说,对于题目中的int型,即4字节,必须存储在4的倍数上;short型,即2字节,必须存储在2的整数倍上;char型,1字节,就任意存储啦~因此答案就如下:
在我印象里我们学了好多好多寻址方式,包括直接、间接、立即…,这些汉字听着也没啥不一样,好家伙,我直接好家伙,看上去还挺多。咱逐个击破。
这里的前两种寻址方式还都比较容易理解,关键在于后三种。这里用汇编语言的思想去理解,就简化了许多。
CISC即英文Complex Instruction Set Computer的缩写,故名思意就是复杂的。RISC则是Reduced的缩写,意即简单的。快问快答一下,CISC和RISC哪个先被发明出来的(手动滑稽)。当然是咱们CISC啦!!!CISC和RISC的关系可以参考下面这个小故事(我老师讲的!我觉得挺形象的!)
刚开始建房子,开始的时候可能只有一间,随着需求的增加,在原来的房子基础上,又加盖了很多房子,这就是咱们的CISC。而RISC呢,就是CISC的邻居,他看CISC盖房子那么费劲,直接一步到位,把所有可能会用的房子建好了。
这里建房子的过程,也就是计算机指令系统扩充的过程,初始时的CISC在使用过程中变得庞大且复杂,之后根据使用习惯设计出了精简的RISC。
RISC的优点需要格外注意一下!会考嗷~
与CISC相比,RISC具有如下优点(这里俺只列举俺不太理解的优点嘿嘿,像什么优先使用频率高的指令俺就略过啦!):