欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 时评 > 计算机组成原理的学习笔记(8)-- 指令系统·其一 指令的组成以及数据寻址方式

计算机组成原理的学习笔记(8)-- 指令系统·其一 指令的组成以及数据寻址方式

2025/9/17 8:15:38 来源:https://blog.csdn.net/qq_60409213/article/details/144727786  浏览:    关键词:计算机组成原理的学习笔记(8)-- 指令系统·其一 指令的组成以及数据寻址方式

学习笔记

前言


本文主要是对于b站尚硅谷的计算机组成原理的学习笔记,仅用于学习交流。

1. 指令

1.1 组成
  • 操作码(Opcode):指指令中执行特定操作的部分。
  • 地址码:指令中用于指定操作数位置的部分。
1.2 扩展操作码
  • 变化长度操作码:采用哈夫曼编码等技术确保操作码不重复。
  • 实现步骤:需求分析、设计、硬件实现、软件支持、验证测试和文档发布。

2. 常见的数据寻址方式

2.1 立即寻址
  • 定义:操作数直接写在指令中,不需要访问内存。
  • 实现:指令的操作数就是数据。
  • 应用场景:常用于赋值操作,例如 MOV AX, 5,将数值 5 加载到寄存器 AX
  • 优点:简单,速度最快。
  • 缺点:数据范围小。

2.2 直接寻址
  • 定义:指令中给出的是一个内存地址,CPU 直接访问该地址的内容。
  • 实现:从内存中直接读取数据。
  • 应用场景:简单的内存访问。
  • 优点:简洁
  • 缺点:不灵活,无法动态计算地址。

2.3 间接寻址
  • 定义:指令中给出的地址是一个指针,指向另一个内存地址,CPU 需要先从该指针中获取目标地址,再访问数据。
  • 实现:首先从给定的地址获取一个指向数据的地址,然后再访问数据。
  • 应用场景:动态数据访问,指针操作等。
  • 优点:灵活,可以访问不同的内存位置,尤其适用于复杂数据结构。
  • 缺点:需要两次内存访问,速度较慢。

2.4 隐含寻址
  • 定义:指令的操作数由指令本身隐含或自动确定,操作数的位置不需要显式提供。CPU 在执行指令时自动操作特定的寄存器或内存位置。

    实现:操作码本身决定了操作数的位置,通常固定与某些寄存器或硬件资源关联。

    应用场景:适用于寄存器操作、堆栈操作、状态寄存器操作等简单且快速的操作。

    优点

    • 无需显式地址,指令格式简洁。
    • 操作快速,无需地址计算或内存访问。

    缺点

    • 灵活性较差,操作数位置固定,无法动态指定或变更。

2.5 寄存器寻址
  • 定义:操作数直接存储在寄存器中,指令通过指定寄存器来访问数据。
  • 实现:指令操作数本身是寄存器的值,无需访问内存。
  • 应用场景:寄存器之间的操作,如 MOV AX, BX,将寄存器 BX 的值复制到 AX
  • 优点:访问速度非常快,因为寄存器访问是最快的。
  • 缺点:数量有限,无法存储大量数据。

2.6 寄存器间接寻址
  • 定义:使用寄存器存储数据的地址,寄存器中存储的是指向数据的内存地址,CPU 通过寄存器访问内存。
  • 实现:寄存器中的值指向目标数据的内存地址,CPU 通过该寄存器来间接访问数据。
  • 应用场景:通过寄存器指向内存地址的操作,如 MOV AX, [BX],将 BX 指向的内存地址中的值加载到 AX 寄存器中。
  • 优点:灵活,寄存器间接寻址支持动态访问内存。
  • 缺点:需要管理寄存器中的地址,速度较直接寻址慢。

2.7 基址寻址
  • 定义:通过基地址寄存器和偏移量计算最终地址。
  • 实现:将基址寄存器和偏移量相加,得到内存地址。
  • 应用场景:数组或结构体的访问。
  • 优点:适合访问连续的数据块,灵活,常用于数组和结构体。
  • 缺点:需要管理基址寄存器和偏移量。

2.8 变址寻址
  • 定义:基址寻址的一种扩展,使用基址寄存器和索引寄存器的组合来计算地址。
  • 实现:基址寄存器 + (索引寄存器 × 步长) + 偏移量。
  • 应用场景:访问数组元素。
  • 优点:支持灵活的内存访问,尤其适用于数组访问。
  • 缺点:需要使用多个寄存器,增加了计算复杂度。

2.9 相对寻址
  • 定义:相对地址是指相对于当前指令的地址(或程序计数器 PC)的偏移量。
  • 实现:通过当前地址(PC)加上偏移量计算最终地址,常用于跳转或分支指令。
  • 应用场景:程序跳转、分支语句、函数调用等。
  • 优点:常用于控制流操作,支持代码独立性和程序重定位。
  • 缺点:只能用于跳转和分支指令,通常不适用于数据访问。

2.10 堆栈寻址
  • 定义:通过栈顶指针(SP)来访问数据。
  • 实现:栈顶元素的地址由栈指针寄存器(SP)决定。
  • 应用场景:函数调用、局部变量管理、返回地址管理等。
  • 优点:支持动态的函数调用和局部数据存取,常用于递归和函数栈。
  • 缺点:操作栈需要使用专门的寄存器和管理机制。

结语

好累,好多没看懂的都得问问AI,寻址什么的…好麻烦。请添加图片描述

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词