• 计组实践实验9——使用CMStudio设计基于分段模型机微程序指令(2)


    一、 实验目的

    1. 掌握分段模型机指令的设计

    二、 实验设备

    1. 硬件:无
    2. 软件:CMSstudio
      三、 实验内容
    3. 掌握分段模型机指令的设计
      四、 实验原理
    4. 程序与数据在同⼀地址空间 • AR作为地址指针来取指 • 增加PC送AR微操作
    5. • 程序与数据分开存储,程序段和数据段,还有堆栈段等 • 取指:PC • 取操作码和操作数 • 数据存取:AR
    6. • 栈指针:SP • 栈数据 – 存放在数据段 • 栈数据存取: – SP送AR – 通过AR来实现
    7. • INL DR • OUTL SR • STA [ADDR], SR • LD DR, [ADDR] • JMP ADDR

    五、 实验步骤

    1. • 针对下列指令
      – INL DR
      – OUTH SR
      – STA [ADDR], SR
      – LD DR, [ADDR]
      – JMP ADDR

    2. • 写出机器指令格式 • 画出微指令流程图

    3. • 使⽤上述指令系统编写程序,实现
      – INPUT读⼊数据保存到ADDR,
      – 将ADDR内容在OUTPUT显⽰。
      – 循环往复 – 注意:INPUT读⼊到内存和内存输出到OUTPUT所使⽤的寄存器要求不是同⼀个
      六、 调试过程、结果和分析

    4. • 针对下列指令
      – INL DR
      – OUTH SR
      – STA [ADDR], SR
      – LD DR, [ADDR]
      – JMP ADDR

    5. • 写出机器指令格式
      根据实验8 我们不难设定以下格式

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    鄙人自行设计的指令图
    在这里插入图片描述

    源程序

    在这里插入图片描述
    没加data segment
    assume ds:data

    表示这是个分段的(同时用ROM和RAM)

    指令系统

    在这里插入图片描述
    指令码和长度的设计详细看我实验8文章

    微程序设计

    这里别忘了
    RD – 奇
    RS – 偶

    比如当源是Register,而目标是IOL的时候,我们这个时候如果设定指令码是21
    先把21转换成16进制
    0100 0001

    0100转换成1101000000(对应的散转地址640,所以2开头对应就是640,0开头对应600)
    如果我们使用偶传偶(这里第二个偶指INPUT/OUTPUT的低位—也就是IOL)那么第一个偶对应RD部分(也就是01,也就是R1寄存器)
    如果使用奇传偶,那么对应的奇使用的是RS部分(也就是00,也就是R0寄存器)

    开头
    在这里插入图片描述

    640
    在这里插入图片描述

    680
    在这里插入图片描述

    6C0
    在这里插入图片描述
    700
    在这里插入图片描述

    740
    在这里插入图片描述

    实验过程中我们可以发现这次变化的是程序区
    在这里插入图片描述
    数据区也被我们装进数据
    在这里插入图片描述
    最后根据实验要求对剩余寄存器进行填充
    在这里插入图片描述

  • 相关阅读:
    JWT&跨域认证
    fastdeploy快速部署yolov5离线模型
    kafka部署SASL_PLAINTEXT协议设置身份认证
    Shiro高级及SaaS-HRM的认证授权
    Elasticsearch 之 join 关联查询及使用场景
    ll、chmod 命令
    微服务--限流
    mTD-SCDMA与TD-LTE双网络垂直切换matlab仿真
    如何用虚拟仿真实训室提质增效?
    再写一个排序算法,然后符合要求
  • 原文地址:https://blog.csdn.net/JamSlade/article/details/125467512