博客
关于我
中级软考 计算机指令执行过程(取指、分析、执行)计算机重叠流水线问题
阅读量:493 次
发布时间:2019-03-07

本文共 536 字,大约阅读时间需要 1 分钟。

为了理解CPU执行加法指令的流程,我们以ADD指令为例进行说明。ADD是一条隐式指令,其操作数分别位于累加器(AC)和主存中的有效地址(EA)。该指令执行过程通过简单的加法操作完成,并将结果写回累加器。

指令执行过程主要包含以下几个阶段:

  • 取指阶段:
    • 程序计数器(PC)当前指令地址的值传输至地址寄存器(AR)。
    • AR将指令地址解译为主存访问地址,并通过地址总线读取指令码。
    • 指令码通过数据总线传递至指令寄存器(IR),供之后译码使用。
    1. 分析阶段:
      • IR中的指令被译码器识别为ADD指令。
      • 指令中的EA值通过地址总线输出,方便主存对应位置数据的读取。
      • 主存访问后,将读取的数据通过数据总线传输至临时存储器(TR)。
      1. 执行阶段:
        • AC中的数据与TR中的数据输入运算单元(ALU)进行进行加法运算。
        • 运算结果通过数据总线返回累加器,完成指令执行。

        在整个过程中,PC的值会自动增加至下一个指令地址,确保程序有序执行。在ADD指令中,一个操作数存放在累加器中,另一个操作数通过EA间接存取自主存。这种间接寻址方式使得指令代码中可以直接指定操作数存储位置,提升了代码的简洁性和灵活性。

        以上描述涵盖了ADD指令的核心执行流程,既包含数据处理过程,也涉及控制器的地址和数据总线管理。

    转载地址:http://brujz.baihongyu.com/

    你可能感兴趣的文章
    stm32h743iit6 cubmex 配置QSPI w25128模式问题
    查看>>
    让nginx支持文件上传的几种模式
    查看>>
    快上车!Java技术开发大厂直通车马上启动!
    查看>>
    photon磁力下载工具
    查看>>
    LeetCode 637 二叉树的层平均值-简单
    查看>>
    Java虚拟机结构(内存,类加载器,执行引擎)
    查看>>
    制作横版游戏KillBear第9课:暂停层+屏蔽下层监听
    查看>>
    error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”
    查看>>
    Redis-day2-五种数据结构类型与数据持久化AOF+RDB
    查看>>
    IOS开发Swif笔记13-初始化
    查看>>
    IOS开发Swift笔记16-错误处理
    查看>>
    【电商吧 - 4】电商场景数值计算那些坑
    查看>>
    Java 天气预报WebService
    查看>>
    Spring中bean的加载过程
    查看>>
    mysql里Date类型的处理
    查看>>
    MySQL索引实现
    查看>>
    redis中RDB和AOF的区别
    查看>>
    内核线程、轻量级进程、用户线程的区别和联系
    查看>>
    《STM32从零开始学习历程》——CAN相关结构体
    查看>>
    Dubbo笔记 ② : 架构概述
    查看>>