保定网站seo技术,做建材一般去什么网站宣传,深圳市建设网站公司,广告设计公司经营README】
1.本文总结自bilibili《计算机组成原理#xff08;哈工大刘宏伟#xff09;》的视频讲解#xff0c;非常棒#xff0c;墙裂推荐#xff1b; 机器指令#xff1a;
CPU能够识别并且执行的操作命令#xff1b;有可以理解为不同cpu#xff0c;在生产时预设了一组…README】
1.本文总结自bilibili《计算机组成原理哈工大刘宏伟》的视频讲解非常棒墙裂推荐 机器指令
CPU能够识别并且执行的操作命令有可以理解为不同cpu在生产时预设了一组或一簇指令
指令集
cpu能够执行的所有机器指令的集合指令集也是软硬件的交界面软件通过指令系统告诉硬件做什么操作硬件通过指令系统执行操作并返回操作结果【1】机器指令 指令字长 一条指令的长度有多少位
【1.1】指令的一般格式
操作码字段地址码字段【1.1.1】操作码
操作码 指出机器做什么操作此外还有些操作码指出机器应该对什么类型的数据进行操作 长度固定 为了译码方便译码器电路简单
3扩展操作码技术 3.1为了支持操作码的长度可变我们要采用扩展操作码技术来扩展操作码长度
OP操作码部分A1A2A3地址码
假设操作码和地址码都是4位所以指令集最多15条指令 无法满足计算机进行复杂操作的需求
3.2总结
三地址指令4位操作码无标识其中 15~12位是操作码指令集最多15条指令二地址指令8位操作码最高位4个1为标识其中 11~8位是操作码指令集最多15条指令一地址指令12位操作码最高位8个1为标识其中7~4操作码指令集最多15条指令零地址指令16位操作码最高位12个1为标识其中3~0是操作码指令集最多15条指令
三地址指令操作码每减少一种最多可多构成 2^4 种二地址指令 如三地址指令的高4位是 1110而不是1111就可以多产生2^4种二地址指令
3.3问题1哪些指令用长操作码哪些用短操作码指令呢
高频使用的指令用短操作码低频使用的指令用长操作码【1.1.2】地址码
地址码指的是内存地址 1四地址指令
它的寻址范围是2^664内存寻址范围太小了只能寻址到64个内存单元
那如何增加指令寻址范围
移除A4地址A4存储了下一条指令地址 而下一条指令地址存储在PC寄存器中而不是当前指令中这样就形成了三地址指令
2三地址的指令
它的寻址范围是 2^8256照样很小继续改进
3二地址指令
移除A3地址码用A1或A2存储计算结果所以地址码就只有2个寻址范围为 2^124k个存内存单元 还是很小 4一地址指令
用ACC累加寄存器代替A1或A2所以移除A2指令中可以只保留一个数的地址另一个操作数保存在ACC寄存器寻址范围2^2416M 寻址范围大大增加 ACC可以使用隐含寻址的方式
5零地址无地址码
如计算ACC中的操作数是否等于0 如add指令计算栈顶的两个操作数的和并将和保存在栈顶就不需要地址码【1.2】 指令字长 操作码
指出机器做什么操作此外还有些操作码指出机器应该对什么类型的数据进行操作
长度固定
为了译码方便译码器电路简单
【小结】指令操作码与地址码 1用一些硬件资源代替指令字中的地址码
如ACC累加寄存器隐含寻址存储操作数这样指令中就可以只存储一个操作数的地址而无需存储两个操作数的地址
2当指令的地址字段为寄存器时
三地址 OP R1 R2 R3 R1 R2 R3地址指的是寄存器的地址 这样就直接访问寄存器而不是访问内存【2】操作数类型和操作种类
操作数指的是指令要处理的数据 操作数的类型内存地址或数字或字符或逻辑数 1数据在存储器中的两种存放方式
大端方式内存字地址就是数据高字节所在地址数据高字节放在内存高地址数据低字节放在内存低地址小端方式内存字地址就是数据低字节所在地址数据低字节放在高地址高字节放在低地址
2字节编址
2.1方法1从任意位置开始存储 存储字长64位8字节
内存的数据位MDR寄存器是64位每次访存可以存取64bit的数据
机器字长32位4字节
寄存器的空间是32位每次只能传输4字节数据机器字长CPU一次能处理数据的位数通常与CPU的寄存器位数有关。 存储字长存储器中一个存储单元(存储地址)所存储的二进制代码的位数即cpu中的MDR数据寄存器的位数。 指令字长计算机指令字的位数。 数据字长计算机数据存储所占用的位数。 上述定义的字长都必须是字节的整数倍 上述缺点有1个例子一个数据跨了2个存储字进行存储比如各占半个这个时候就需要2个访存每次取半个存储字
2.2方法2从一个存储字的起始位置每个存储字或机器字占4字节开始访问 缺点
浪费存储空间
问题有没有一种方式可以减少存储空间浪费又可以保证任何一种类型的数据小于存储字长在一个存取周期当中都可以进行访问 2.3方法3边界对准方式从内存地址的整数倍位置开始访问
以机器字长32位4个字节为例 数据存放的起始地址是数据长度如8位或16位的整数倍 【2.3】 操作类型 【3】 寻址方式
参见 指令寻址方式与数据寻址方式_PacosonSWJTU的博客-CSDN博客 【4】 指令格式举例 指令集举例
【4.1】IBM360 CPU的指令格式 IBM360 有5种指令格式
第1种地址格式RR格式二地址即2个寄存器参加操作结果保存在1个寄存器中操作码的长度是8位 指令长度16位第2种地址格式 RX格式 二地址即寄存器与存储器其中R1是寄存器X是变址寄存器B是基址寄存器D是偏移地址采用基址变址的方式进行寻址第3种地址格式RS格式三地址即寄存器与存储器间的操作如寄存器和内存间进行成组的数据传送如把寄存器R1到R3包括R1 R3的数据成组的传送到内存中内存的起始地址采用基址寻址的方式来做 B是基址寄存器D是偏移地址第4种地址格式SI格式二地址即立即数与内存操作数进行操作第5种地址格式SS格式二地址即内存操作数与内存操作数进行操作如内存中进行数据传输 B1D1分别是源地址基址和偏移量B2D2是目的地址基址和偏移量含义是把起始地址为B1D1长度为L的内存块数据转存到以B2D2为起始地址的内存块中
补充
SStorage内存RResiter寄存器X变址寄存器B基址寄存器D偏移量【4.2】Intel 8086 CPU的指令格式 【5】RISC技术
RISC 精简指令集计算机 CISC 复杂指令集计算机 RISC技术作用 把20%的高频简单指令组合形成80%的低频指令 操作码都是寄存器对内存的传输