• 计组实践实验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
    在这里插入图片描述

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

  • 相关阅读:
    [思维]Party Codeforces1711B
    VMware虚拟机安装Ubuntu教程
    [附源码]计算机毕业设计springboot疫情网课管理系统
    Clion 搭建Qt projects
    高阶数据结构(2)-----红黑树(未完成)
    七夕节送男朋友什么礼物?2022七夕礼物推荐
    腾讯的技术牛人们,是如何完成全面上云这件事儿的?
    【牛客网面试必刷】链表篇
    算法day29|491,46,47
    SpringBoot的Spring Security用户授权和认证
  • 原文地址:https://blog.csdn.net/JamSlade/article/details/125467512