2026/1/7 6:46:27
网站建设
项目流程
值得做的网站,做学校网站素材,文具电子商务网站开发内容,jsp环保主题网站代做本篇技术博文摘要 #x1f31f; 本章“指令系统”阐述了计算机硬件与软件间的核心接口#xff0c;定义了CPU可执行的基本命令集合。首先#xff0c;从指令格式入手#xff0c;解析操作码与地址码的组成#xff0c;并介绍扩展操作码技术。核心部分详细讲解了指令寻址与多种…本篇技术博文摘要 本章“指令系统”阐述了计算机硬件与软件间的核心接口定义了CPU可执行的基本命令集合。首先从指令格式入手解析操作码与地址码的组成并介绍扩展操作码技术。核心部分详细讲解了指令寻址与多种数据寻址方式如直接、间接、寄存器、基址、变址等它们共同决定了如何定位指令与操作数。接着探讨了高级语言程序如选择、循环结构在机器级的表示揭示了其与底层汇编指令的对应关系。最后对CISC与RISC两种主流设计理念进行了基本对比。全章旨在理解指令系统是衡量计算机性能的关键属性其设计直接决定了硬件结构、效率和软件的编译与执行。引言 在这个变幻莫测、快速发展的技术时代与时俱进是每个IT工程师的必修课。我是盛透侧视攻城狮一名什么都会一丢丢的网络安全工程师也是众多技术社区的活跃成员以及多家大厂官方认可人员希望能够与各位在此共同成长。上节回顾目录本篇技术博文摘要 引言 上节回顾第四章 指令系统4.1.1 指令格式指令的定义指令格式零地址指令一地址指令二、三地址指令四地址指令指令-按地址码数目分类指令-按指令长度分类指令-按操作码长度分类指令-按操作类型分类本节主要问题答疑本小节回顾4.1.2 扩展操作码指令格式操作码分类4.2指令的寻址方式4.2.1 指令寻址本小节回顾4.2.2 数据寻址直接寻址间接寻址寄存器寻址寄存器间接寻址隐含寻址立即寻址本小节回顾4.2.3 数据寻址–偏移寻址基址寻址变址寻址相对寻址硬件如何实现数的“比较”本小节回顾4.2.4 数据寻址–堆栈寻址本小节回顾4.3程序的机器代码表示4.3.1 高级语言与机器级代码之间的对应X86汇编语言指令基础以MOV指令为例X86架构CPU有哪些寄存器通用寄存器另外两种表示方式更多示例本小节总结4.3.2 常用的X86汇编语言指令常见的算数运算指令关于王道书的解释常见的逻辑运算指令4.3.3 ATT格式和Intel格式4.3.4 选择语句的机器级表示程序中的选择语句分支结构无条件转移指令–jmp条件转移指令–jxxx示例选择语句的机器级表示扩展cmp指令的底层原理4.3.5 循环语句机器级表示用条件转移指令实现循环用loop指令实现循环4.4CISC和RISC的基本概念欢迎各位彦祖与热巴畅游本人专栏与技术博客你的三连是我最大的动力点击➡️指向的专栏名即可闪现第四章 指令系统4.1.1 指令格式指令的定义指令又称机器指令是指计算机执行的某种操作的命令是计算机运行的最小功能单位。一台计算机的所有指令的集合构成该机的指令系统也称为指令集。注一台计算机只能执行自己的指令系统不能执行其他系统的指令。指令格式零地址指令一地址指令二、三地址指令四地址指令指令-按地址码数目分类指令-按指令长度分类机器字长和存储字长固定不变。指令-按操作码长度分类指令-按操作类型分类本节主要问题答疑什么是指令什么是指令系统为什么要引入指令系统指令就是要计算机执行某种操作的命令一台计算机中所有机器指令的集合称为这台计算机的指令系统。引入指令系统后避免了用户与二进制代码直接接触使得用户编写程序更为方便。另外指令系统是表征一台计算机性能的重要因素它的格式与功能不仅直接影响到机器的硬件结构而且也直接影响到系统软件影响到机器的适用范围。一般来说指令分为哪些部分每部分有什么用处一条指令通常包括操作码字段和地址码字段两部分。其中操作码指出指令中该指令应该执行什么性质的操作和具有何种功能它是识别指令、了解指令功能与区分操作数地址内容的组成和使用方法等的关键信息。地址码用于给出被操作的信息指令或数据的地址包括参加运算的一个或多个操作数所在的地址、运算结果的保存地址、程序的转移地址、被调用子程序的入口地址等一个操作数在内存可能占多个单元怎样在指令中给出操作数的地址现代计算机都采用字节编址方式即一个内存单元只能存放一字节的信息。一个操作数如char、int、foat、 double)可能是8位、16位、32位或64位等因此可能占用1个、2个、4个或8个内存单元。也就是说一个操作数可能有多个内存地址对应。有两种不同的地址指定方式大端方式和小端方式。大端方式指令中给出的地址是操作数最高有效字节(MSB)所在的地址小端方式指令中给出的地址是操作数最低有效字节(LSB)所在的地址。装入/存储(Load/ Store)型指令有什么特点装入/存储型指令是用在规整型指令系统中的一种通用寄存器型指令风格。这种指令风格在RISC指令系统中较为常见。为了规整指令格式使指令具有相同的长度规定只有 Load/Store指令才能访问内存。而运算指令不能直接访问内存只能从寄存器取数进行运算运算的结果也只能送到寄存器。因为寄存器编号较短而主存地址位数较长通过某种方式可使运算指令和访存指令的长度一致。这种装入/存储型风格的指令系统的最大特点是指令格式规整指令长度一致一般为32位。由于只有 Load/Store指令オ能访问内存程序中可能会包含许多装入指令和存储指令与ー般通用寄存器型指令风格相比其程序长度会更长。本小节回顾4.1.2 扩展操作码指令格式指令由操作码和若干地址码组成定长指令字结构指令系统中所有指令的长度相等。变长指令字结构指令系统中所有指令的长度不等。定长操作码指令系统中所有指令的操作码长度相等可变长操作码指令系统中所有指令的操作码长度可变定长指令字结构可变长操作码–扩展操作码指令格式不同地址数的指令使用不同长度的操作码后续的章节和题目详解具体展开其他扩展操作码设计方法设地址长度为n上一层留出m种状态下一层可扩展出m×2^n种状态操作码分类4.2指令的寻址方式4.2.1 指令寻址顺序寻址PC“1”–PC跳跃寻址由转移指令指出本小节回顾转移指令是通过修改PC实现的程序计数器PC存放下一条指令所在单元的地址累加器ACC用来存放操作数或运算结果指令寄存器IR临时放置从内存里面取得的程序指令的寄存器用于存放当前从主存储器读出的正在执行的一条指令。地址寄存器MAR用来保存当前CPU所访问的内存单元的地址。4.2.2 数据寻址直接寻址间接寻址寄存器寻址寄存器间接寻址隐含寻址立即寻址本小节回顾4.2.3 数据寻址–偏移寻址基址寻址变址寻址基址变址复合寻址相对寻址扩展ACC加法指令的地址码可采用“分段”方式解决即程序段和数据段分开。如果固定数组的首地址那么数组地址7就不用改变。基址寻址中程序浮动指的是整段程序在内存里的浮动而相对寻址中程序浮动指的是一段代码在程序内部的浮动。硬件如何实现数的“比较”注意无条件转移指令jmp2就不会管PSW的各种标志位。PC2本小节回顾4.2.4 数据寻址–堆栈寻址对于一个指令系统来说寻址方式多和少有什么影响寻址方式的多样化能让用户编程更为方便但多重寻址方式会造成CPU结构的复杂化详见下章也不利于指令流水线的运行。而寻址方式太少虽然能够提高CPU的效率但对于用户而言少数几种寻址方式会使编程变得复杂很难满足用户的需求。简述各常见指令寻址方式的特点和适用情况立即寻址操作数获取便捷通常用于给寄存器赋初值。直接寻址相对于立即寻址缩短了指令长度间接寻址扩大了寻址范围便于编制程序易于完成子程序返回。寄存器寻址的指令字较短指令执行速度较快寄存器间接寻址扩大了寻址范围。基址寻址扩大了操作数寻址范围适用于多道程序设计常用于为程序或数据分配存储空间。变址寻址主要用于处理数组问题适合编制循环程序。相对寻址用于控制程序的执行顺序、转移等。基址寻址和变址寻址的区别两种方式有效地址的形成都是寄存器内容偏移地址但是在基址寻址中程序员操作的是偏移地址基址寄存器的内容由操作系统控制在执行过程中是动态调整的而在变址寻址中程序员操作的是变址寄存器偏移地址是固定不变的。本小节回顾4.3程序的机器代码表示4.3.1 高级语言与机器级代码之间的对应X86汇编语言指令基础以MOV指令为例X86架构CPU有哪些寄存器通用寄存器另外两种表示方式更多示例本小节总结4.3.2 常用的X86汇编语言指令常见的算数运算指令destination:目的地d目的操作数source来源地s源操作数目的操作数d不可以是常量在进行除法运算之前需要把被除数位扩展如32b/32b–64b/32b,存放64位的被除数需要两个寄存器edx:eax高32位存放在edx,低32位存放在eax关于王道书的解释X86汇编语言当中不允许两个操作数同时来源于主存。常见的逻辑运算指令4.3.3 ATT格式和Intel格式4.3.4 选择语句的机器级表示程序中的选择语句分支结构无条件转移指令–jmp无条件转移指令类似于c语言里的goto语句无条件转移指令无法实现if,else语句条件转移指令–jxxx示例选择语句的机器级表示扩展cmp指令的底层原理4.3.5 循环语句机器级表示用条件转移指令实现循环用loop指令实现循环4.4CISC和RISC的基本概念欢迎各位彦祖与热巴畅游本人专栏与技术博客你的三连是我最大的动力点击➡️指向的专栏名即可闪现➡️计算机组成原理➡️操作系统➡️渗透终极之红队攻击行动➡️动画可视化数据结构与算法➡️永恒之心蓝队联纵合横防御➡️华为高级网络工程师➡️华为高级防火墙防御集成部署➡️未授权访问漏洞横向渗透利用➡️逆向软件破解工程➡️MYSQL REDIS 进阶实操➡️红帽高级工程师➡️红帽系统管理员➡️HVV 全国各地面试题汇总