营销型网站的好处,如何建立一个网站收会员费,html网页游戏源码,怎样做营销型网站推广文章目录1 指令格式1.1 指令定义1.2 指令格式1.3 指令格式-地址码1.4 指令格式-操作码1.5 操作码分类1.6 操作类型2 数据存放指令寻址2.1 数据存放方式2.2 指令寻址2.3 操作数类型2.4 数据寻址2.4.1立即寻址2.4.2 直接寻址2.4.3 间接寻址2.4.4 寄存器寻址2.4.5 寄存器间接寻址2…
文章目录1 指令格式1.1 指令定义1.2 指令格式1.3 指令格式-地址码1.4 指令格式-操作码1.5 操作码分类1.6 操作类型2 数据存放指令寻址2.1 数据存放方式2.2 指令寻址2.3 操作数类型2.4 数据寻址2.4.1立即寻址2.4.2 直接寻址2.4.3 间接寻址2.4.4 寄存器寻址2.4.5 寄存器间接寻址2.4.6 隐含寻址2.5 数据寻址-2偏移寻址2.5.1 基址寻址2.5.2 变址寻址2.5.3 相对寻址2.5.4 相对寻址举例2.5.5 寻址方式小结2.5.6 堆栈寻址2.6 CISC和RISC2.7 指令系统小结1 指令格式
1.1 指令定义 指令又称机器指令 是指示计算机执行某种操作的命令是计算机运行的最小功能单位。 一台计算机的所有指令的集合构成该机的指令系统也称为指令集。 注一台计算机只能执行自己指令系统中的指令不能执行其他系统的指令。 1.2 指令格式
一条指令就是机器语言的一个语句它是一组有意义的二进制代码。 一条指令通常要包括操作码字段和地址码字段两部分 1.3 指令格式-地址码 指令含义A1OPA2→A3A4下一条将要执行指令的地址 设指令字长为32位操作码占8位4个地址码字段各占6位 设存储字长为32位即 4B Ai 可直接表示 2664 个不同的位置一条指令的执行假设每个地址都是主存地址 取指令访存1次假设指令字长存储字长 取两个操作数访存2次 存回结果访存1次 总计共访存4次 设指令字长及存储字长均为32位操作码占8位 指令含义A1OPA2→A3A4下一条将要执行指令的地址 4个地址码字段各占6位指令操作数直接寻址范围为 2664 完成一条指令需要访存4次 指令含义A1OPA2→A3 3个地址码字段各占8位指令操作数直接寻址范围为 28256 完成一条指令需要访存4次 指令含义A1OPA2→A1 2个地址码字段各占12位指令操作数直接寻址范围为 2124K 完成一条指令需要访存4次 指令含义 OPA1→A1如加1、减1、取反、求补等完成一条指令需要访存3次ACCOPA1→ACC隐含约定的目的地址为 ACC 完成一条指令需要访存2次 1个地址码字段占24位指令操作数直接寻址范围为 22416M 指令含义 不需要操作数如空操作、停机、关中断等指令堆栈计算机两个操作数隐含存放在栈顶和次栈顶计算结果压回栈顶 指令字结构 定长指令字结构指令长度固定变长指令字结构指令长度不等 1.4 指令格式-操作码
定长操作码n位→ 2n 条指令 扩展操作码操作码长度可变 扩展操作码举例 扩展思想即动态的把地址码用作操作码而为了识别变化上一层操作码字段留出一个状态表示下一层 在设计扩展操作码指令格式时必须注意以下两点 不允许短码是长码的前缀即短操作码不能与长操作码的前面部分的代码相同。各指令的操作码一定不能重复。 通常情况下对使用频率较高的指令分配较短的操作码 对使用频率较低的指令分配较长的操作码从而尽可能减少指令译码和分析的时间。 设地址长度为 n上一层留出 m 种状态下一层可扩展出 mx2n 种状态
1.5 操作码分类 操作码指出指令中该指令应该执行什么性质的操作和具有何种功能。操作码是识别指令、了解指令功能与区分操作数地址内容的组成和使用方法等的关键信息。例如指出是算术加运算还是减运算是程序转移还是返回操作。 定长操作码在指令字的最高位部分分配固定的若干位定长表示操作码。 一般 n 位操作码字段的指令系统最大能够表示 2n 条指令。 优定长操作码对于简化计算机硬件设计提高指令译码和识别速度很有利 缺指令数量增加时会占用更多固定位留给表示操作数地址的位数受限。 扩展操作码不定长操作码全部指令的操作码字段的位数不固定且分散地放在指令字的不同位置上。 最常见的变长操作码方法是扩展操作码使操作码的长度随地址码的减少而增加不同地址数的指令可以具有不同长度的操作码从而在满足需要的前提下有效地缩短指令字长。 优在指令字长有限的前提下仍保持比较丰富的指令种类 缺增加了指令译码和分析的难度使控制器的设计复杂化。 1.6 操作类型
数据传送源目的 LOAD作用把存储器中源的数据放到寄存器中目的STORE作用把寄存器中的数据放到存储器中 算术逻辑操作 算术加、减、乘、除、增1、减1、求补、浮点运算、十进制运算逻辑与、或、非、异或、位操作、位测试、位清除、位求反 移位操作 算术移位、逻辑移位、循环移位带进位和不带进位 转移操作 无条件转移JMP条件转移JZ结果为0JO结果溢出JC结果有进位调用和返回CALL和RETURN陷阱Trap与陷阱指令 输入输出操作 CPU寄存器与IO端口之间的数据传送端口即IO接口中的寄存器 也可以分为以下四类 数据传送类进行主存与CPU之间的数据传送运算类程序控制类改变程序执行的顺序输入输出类I/O进行CPU和I/O设备之间的数据传送 2 数据存放指令寻址
2.1 数据存放方式 三个字长 机器字长CPU一次能处理的二进制数据的位数受寄存器能够存放二进制位数的限制。指令字长一个指令字中包含二进制代码的位数。存储字长一个存储单元存储二进制代码的长度。 注这三个字长没有固定大小的关系但这些长度都是字节的整数倍 单字长指令指令长度机器字长 半字长指令、双字长指令
2.2 指令寻址 指令寻址 顺序寻址PC1→PC 跳跃寻址由转移指令指出 2.3 操作数类型 2.4 数据寻址 数据寻址即根据寻址方式的要求将形式地址转化为实际地址的过程 2.4.1立即寻址
立即寻址形式地址A就是操作数本身又称为立即数一般采用补码形式。 #表示立即寻址特征。 一条指令的执行 取指令访存1次 执行指令访存0次 暂不考虑存结果 共访存1次 优点指令执行阶段不访问主存指令执行时间最短缺点A的位数限制了立即数的范围。 如A的位数为 n且立即数采用补码时可表示的数据范围为 - 2 n - 1 ~ 2 n - 1-1 2.4.2 直接寻址
直接寻址指令字中的形式地址A就是操作数的真实地址EA即 EAA。 一条指令的执行 取指令访存1次 执行指令访存1次 暂不考虑存结果 共访存2次 优点简单指令执行阶段仅访问一次主存不需专门计算操作数的地址。缺点A的位数决定了该指令操作数的寻址范围。 操作数的地址不易修改。 2.4.3 间接寻址
间接寻址指令的地址字段给出的形式地址不是操作数的真正地址而是操作数有效地址所在的存储单元的地址也就是操作数地址的地址即 EAA。 优点可扩大寻址范围有效地址EA的位数大于形式地址A的位数。 便于编制程序用间接寻址可以方便地完成子程序返回。缺点指令在执行阶段要多次访存 一次间址需两次访存多次寻址需根据存储字的最高位确定几次访存。 2.4.4 寄存器寻址
寄存器寻址在指令字中直接给出操作数所在的寄存器编号即 EARi其操作数在由Ri所指的寄存器内。 与直接寻址类似只是把主存换成了寄存器 一条指令的执行 取指令访存1次 执行指令访存0次 暂不考虑存结果 共访存1次 优点指令在执行阶段不访问主存只访问寄存器指令字短且执行速度快支持向量/矩阵运算。缺点寄存器价格昂贵计算机中寄存器个数有限。 2.4.5 寄存器间接寻址
寄存器间接寻址寄存器Ri中给出的不是一个操作数而是操作数所在主存单元的地址即 EARi。 一条指令的执行 取指令访存1次 执行指令访存1次 暂不考虑存结果 共访存2次 特点与一般间接寻址相比速度更快但指令的执行阶段需要访问主存因为操作数在主存中。 2.4.6 隐含寻址
隐含寻址不是明显地给出操作数的地址而是在指令中隐含着操作数的地址。 优点有利于缩短指令字长。缺点需增加存储操作数或隐含地址的硬件。 小结
寻址方式有效地址访存次数指令执行期间隐含寻址程序待定0立即寻址A即是操作数0直接寻址EAA1一次间接寻址EA(A)2寄存器寻址EARi0寄存器间接一次寻址EARi1
2.5 数据寻址-2偏移寻址 2.5.1 基址寻址
基址寻址将CPU中基址寄存器BR的内容加上指令格式中的形式地址A而形成操作数的有效地址即EABRA 注基址寄存器是面向操作系统的其内容由操作系统或管理程序确定。 在程序执行过程中基址寄存器的内容不变作为基地址形式地址可变作为偏移量。 当采用通用寄存器作为基址寄存器时可由用户决定哪个寄存器作为基址寄存器但其内容仍由操作系统确定。 优点可扩大寻址范围基址寄存器的位数大于形式地址A的位数 用户不必考虑自己的程序存于主存的哪一空间区域故有利于多道程序设计以及可用于编制浮动程序。 2.5.2 变址寻址
变址寻址有效地址EA等于指令字中的形式地址A与变址寄存器IX的内容相加之和即EAIXA其中IX为变址寄存器专用也可用通用寄存器作为变址寄存器。 注变址寄存器是面向用户的在程序执行过程中变址寄存器的内容可由用户改变作为偏移量形式地址A不变作为基地址。 优点可扩大寻址范围变址寄存器的位数大于形式地址A的位数 在数组处理过程中可设定A为数组的首地址不断改变变址寄存器IX的内容便可很容易形成数组中任一数据的地址特别适合编制循环程序。 变址寻址与基址寻址配合使用EAABRIX 变址寻址与间接寻址配合使用 如先变址后间址EAAIX先间址后变址EAAIX。 2.5.3 相对寻址
相对寻址把程序计数器PC的内容加上指令格式中的形式地址A而形成操作数的有效地址即EAPCA其中A是相对于当前指令地址的位移量可正可负补码表示。 优点操作数的地址不是固定的它随着PC值的变化而变化并且与指令地址之间总是相差一个固定值因此便于程序浮动。。 相对寻址广泛应用于转移指令。 2.5.4 相对寻址举例
某机器指令字长为16位主存按字节编址取指令时每取一个字节PC自动加1。当前指令地址为2000H指令内容为相对寻址的无条件转移指令指令中第一个字节为操作码第二个字节为形式地址当前形式地址为40H。 1求取指令后及指令执行后PC内容。 2若要求转移到1F00H求形式地址的内容。 1PC中一开始存放2000H多字节指令第一次取出的是操作码PC更新为2001H在2001H中取出地址码取数过程结束PC更新为2002H CPU分析指令的结果是一条无条件转移指令EAPCA 2002H40H 2042H 故取指令后PC内容为2002H指令执行后PC内容为2042H 2即PCA2002HA1F00H A1F00H-2002H1EFFH1H-2002H 1EFFH-2002H1HFEFDH1HFEFEH 说明1EFFH-2002HFEFDHF15-213→D1-2 不够减向上借位若是10进制10这是16进制16为17,17-215,15的16进制就是F 形式地址就是偏移量 2.5.5 寻址方式小结
寻址方式有效地址访存次数指令执行期间隐含寻址程序待定0立即寻址A即是操作数0直接寻址EAA1一次间接寻址EA(A)2寄存器寻址EARi0寄存器间接一次寻址EARi1相对寻址EAPCA1基址寻址EABRA1变址寻址EAIXA1相对寻址指令中的形式地址给出一个位移量A基准地址由程序计数器PC提供通常用于转移指令中转移目标或公共子程序中的操作数的寻址变址寻址通常用于循环体中对数组元素的访问 2.5.6 堆栈寻址 堆栈寻址操作数存放在堆栈中隐含使用堆栈指针SP作为操作数地址。 堆栈是存储器或专用寄存器组中一块特定的按后进先出LIFO原则管理的存储区该存储区中被读/写单元的地址是用一个特定的寄存器给出的该寄存器称为堆栈指针SP。 2.6 CISC和RISC CISC:Complex Instruction Set Computer复杂指令系统计算机 设计思路一条指令完成一个复杂的基本功能。代表×86架构主要用于笔记本、台式机等 RISC:Reduced Instruction Set Computer精简指令系统计算机 设计思路一条指令完成一个基本“动作”多条指令组合完成一个复杂的基本功能。代表ARM架构主要用于手机、平板等 2.7 指令系统小结