TEC-2机微程序设计
了解TEC-2机的结构和基本的指令知识很重要,不理解而只知一味地照抄是学不到知识的。建议先阅读课件,再结合例子进行理解。以下例子只供参考,有些地方可以合并,具体的操作仍需见仁见智。理解并学会使用微指令分析器是解决问题的关键。
总体思路:
设计微程序→将微码存放于内存中→将微码加载到微控制存储器中→输入程序,运行新指令,以检验微程序的正确性
补充知识:
指令格式: 操作码 条件码 目的寄存器(DR) 源寄存器(SR)
||
唯一指定一条指令
例:第一题: D4 2 0
PC:存放内存单元的地址。(随着指令运行时递增)
反汇编得到指令的具体格式。
14号命令:与/CC条件无关,顺序执行,即执行紧跟在本条微指令后面的那条微指令,由μPC提供微地址。
3号命令:条件转移。/CC=1时,顺序执行,否则按当前微指令下地址字段中地址D转移。
D数据来源可分为:
①16个钮子开关,用于手拨方式输入的数据或地址②运算器的16位输出;③外部数据总线传送来的数据;④中断向量寄存器的输出;⑤状态寄存器(C-进/借位、Z-运算结果、V-溢出、S-符号 4个标志位及中断优先级);⑥指令寄存器的低位字节。
第一题:
将内存单元数据DATA减去用绝对地址ADDR表示的内存单元的内容,结果保存到由DR内容指定的内存单元中
1.指令格式
|
指令格式: |
D4 |
DR |
X |
|
ADDR |
|||
|
DATA |
|||
2.指令功能
功能: DATA- [ADDR] → [DR]
3.设计分析
根据指令的功能和指令格式,先读取地址ADDR单元内容暂时放置于Q寄存器中, 然后PC+1→PC,并将PC的值赋给AR。MEM中存放的数据是DATA。此时只需要实现MEM-Q→Q,并将DR送给AR。只要将Q寄存器内容写入存储器MEM就可以完成指令功能。最后,微程序中必须实现PC+1→PC操作,才能确保PC的正确走向。
4. 微程序
100:PC→AR,PC+1→PC: 0000 0E00 A0B5 5402
101:MEM→AR: 0000 0E00 10F0 0002
102:MEM→Q: 0000 0E00 00F0 0000
103:PC→AR,PC+1→PC: 0000 0E00 A0B5 5402
104:MEM-Q→Q: 0000 0E01 02E0 0000
105:DR→AR: 0000 0E00 90B0 000A
106:Q→MEM,CC#=0: 0029 0300 1020 0010
5. 加载到微控存程序段
说明:微码存放在900H(或某内存单元)开始的内存单元中
>A0800↙
0800:MOV R1,900 ;微码在内存中的首地址
0802:MOV R2,7 ;微指令条数
0804:MOV R3,100 ;微码在微控制存储器中的首地址
0806:LDMC ;加载微码指令,将微码指令加载到微控制存储器中
0807:RET
0808:
>A0800↙
6.运行程序段
>A0820↙
0820:MOV R0,0011
0822:MOV [0890],R0
0824:MOV R2,0891
0826:NOP
0827:NOP
0828:NOP
0829:RET
>E0826↙
然后输入以下内容:
D420 0890 1111
7.运行结果
>G0820↙
>D0891↙
0891:1100


第二题:
将绝对地址ADDR单元的内容与[SR]内容相加,结果保存到DR寄存。
1. 指令格式
|
指令格式: |
D4 |
DR |
SR |
|
ADDR |
|||
2. 指令功能
功能: [ADDR] + [SR] → DR
3.设计分析
根据指令的功能和指令格式,读取地址ADDR单元内容暂时放置于Q寄存器中,将SR单元内容赋给AR,MEM中存放着SR的数据。此时只需要实现Q+MEM,并将结果赋给DR就可以完成指令功能。最后,微程序中必须实现PC+1→PC操作,才能确保PC的正确走向。
4.微程序
100:PC→AR,PC+1→PC: 0000 0E00 A0B5 5402
101:MEM→AR: 0000 0E00 10F0 0002
102:MEM→Q: 0000 0E00 00F0 0000
103:SR→AR: 0000 0E00 90C0 0082
104:MEM+Q→Q: 0000 0E01 00E0 0000
105: Q→DR,CC#=0: 0029 0300 B020 0008
(104和105可以合并成MEM+Q→DR,CC#=0)
5.加载到微控存程序段
说明:微码存放在900H(或某内存单元)开始的内存单元中
>A0800↙
0800:MOV R1,900 ;微码在内存中的首地址
0802:MOV R2,6 ;微指令条数
0804:MOV R3,100 ;微码在微控制存储器中的首地址
0806:LDMC ;加载微码指令,将微码指令加载到微控制存储器中
0807:RET
0808:
>A0800↙
6. 运行程序段
>A0820↙
0820:MOV R0,0011
0822:MOV [0890],R0
0824:MOV R0,0100
0826:MOV [0891], R0
0828:MOV R3, 0891
082A:NOP
082B:NOP
082C:RET
>E082A↙
然后输入以下内容:
D413 0890
7.运行结果
>G0820↙
>RR1↙
0111:-



TEC-2机微程序设计的更多相关文章
- VS 本机调试
VS~通过IIS网站启用"域名"调试 在我们开发网站时,对某些信息进行序列化时,通常使用session,cookies,nosql等技术,而为了安全,我们在服务器上很多情况都做了防 ...
- Ajax使用WCF实现小票pos机打印源码
通过ajax跨域方式调用WCF服务,实现小票pos机的打印,源码提供web方式,客户端方式测试,服务驻留右侧底部任务栏,可控制服务开启暂停,用户可自定义小票打印模板,配合零售录入. qq 22945 ...
- keepalived从机接管后主机恢复不抢占VIP
在lvs+keepalived环境中,为了减小keepalived主从切换带来的意外风险,,设置主机恢复后不抢占VIP.待进行vrrp协议通告备机不可用时切换.主要修改两个地方.(红色部分) 只需修改 ...
- xcode低版本调试高版本真机系统
低版本xcode调试本真机高版本系统 //打开此路径把最新的文件拷贝到这里就可以了 /Applications/Xcode.app/Contents/Developer/Platforms/iPhon ...
- APP测试点总结(功能,交互,死机崩溃状态分析,容易出错的检查点)
APP测试点总结(功能,交互,死机崩溃状态分析,容易出错的检查点) 版权声明:本文为博主原创文章,未经博主允许不得转载. 最近涉足APP端测试,常见检查点总结如下: 一.业务方面: 1. 注册( ...
- 【Win 10 应用开发】获取本机的IP地址
按照老规矩,也是朋友的建议,老周今天在吹牛之前,先讲一个小故事. 有朋友问我,老周,你现在还发短信吗,你每个月用多少电话费?唉,实话说,现在真的发短信不多了,套餐送的130条短信,每月都发不了一条.至 ...
- 【Data Cluster】真机环境下MySQL数据库集群搭建
真机环境下MySQL-Cluster搭建文档 摘要:本年伊始阶段,由于实验室对不同数据库性能测试需求,才出现MySQL集群搭建.购置主机,交换机,双绞线等一系列准备工作就绪,也就开始集群搭建.起初笔 ...
- Oracle数据库异机升级
环境: A机:RHEL5.5 + Oracle 10.2.0.4 B机:RHEL5.5 需求: A机10.2.0.4数据库,在B机升级到11.2.0.4,应用最新PSU补丁程序. 目录: 一. 确认是 ...
- Vertica集群单节点宕机恢复方法
Vertica集群单节点宕机恢复方法 第一种方法: 直接通过admintools -> 5 Restart Vertica on Host 第二种方法: 若第一种方法无法恢复,则清空宕机节点的c ...
随机推荐
- MySQL Navicat Premium 保存sql语句
一.新建查询 二.编写sql语句并保存 1.保存到内部 1.Ctrl+s保存当前查询文件 2.下次打开可点击查询点击上次保存的查询文件名打开上次查询的文件 2.保存到外部 1.默认保存至 C:\Use ...
- Mac+Appium+Python+Pycharm环境搭建
为什么优先选择Mac做自动化测试? 1.既可以做iOS端的测试也可以进行Android端测试 2.Mac运行效率相对于Win要高很多,可以真正发挥appium的功能 以下是在Mac上完整搭建过程 一. ...
- unordered_map初用
unordered_map,顾名思义,就是无序map,STL内部实现了Hash 所以使用时可以当做STL的Hash表使用,时间复杂度可做到O(1)查询 在C++11前,使用unordered_map要 ...
- document基本操作 动态脚本-动态样式-创建表格
var html = document.documentElement; var body = document.body; window.onload = function() { //docume ...
- 12 | 为什么我的MySQL会“抖”一下?
平时的工作中,不知道你有没有遇到过这样的场景,一条SQL语句,正常执行的时候特别快,但是有时也不知道怎么回事,它就会变得特别慢,并且这样的场景很难复现,它不只随机,而且持续时间还很短. 看上去,这就像 ...
- 51nod P1354 选数字 题解
每日一题 day8 打卡 Analysis 背包+离散化 这题是我们一次模拟赛的T2,结果我的暴力全TLE了. 关键是如果将两个因数的乘积离散化在因数数组中之后等于这个乘积本身,说明a[j]*in离散 ...
- Chrome安装.crx文件
解决"只能通过Chrome网上应用商店安装该程序"的方法 http://chromecj.com/utilities/2015-04/423.html 1.更多工具->扩展程 ...
- luogu4208
P4208 [JSOI2008]最小生成树计数 题目描述 现在给出了一个简单无向加权图.你不满足于求出这个图的最小生成树,而希望知道这个图中有多少个不同的最小生成树.(如果两颗最小生成树中至少有一条边 ...
- Hadoop 安装(本地、伪分布、分布式模式)
本地模式 环境介绍 一共三台测试机 master 192.168.4.91 slave1 192.168.4.45 slave2 192.168.4.96 操作系统配置 1.Centos7 ...
- Tkinter 之RadioButton单选框标签
一.参数说明 语法 作用 Radiobutton(root,text='xxxx') 单选框文本显示内容 Radiobutton(root,variable=color) 单选框索引变量,通过变量的值 ...