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 ...
随机推荐
- unity里blit的load store action设置
做blit的 load store action时 用 setrendertarget做 之后blit 参数用 BuiltinRenderTextureType.CurrentActive https ...
- Selenium常用API的使用java语言之3-selenium3 浏览器驱动
1.下载浏览器驱动 当selenium升级到3.0之后,对不同的浏览器驱动进行了规范.如果想使用selenium驱动不同的浏览器,必须单独下载并设置不同的浏览器驱动. 各浏览器下载地址: Firefo ...
- 微信小程序 组件事件传递
父组件向子组件传递初始数据,当子组件点击以后可以triggerEvent自定义事件,父组件执行自定义事件,重新请求数据并传给子组件 /* 子组件 */ <view> <view bi ...
- IntelliJ IDEA——数据库集成工具(Database)的使用
https://www.cnblogs.com/huiyi0521/p/10125537.html idea集成了一个数据库管理工具,可以可视化管理很多种类的数据库,意外的十分方便又好用.这里以ora ...
- linux系列(二):cd命令
1.命令格式: cd [目录名] 2.命令功能: 切换当前目录至目录名目录 3.常用实例 (1).进入系统根目录 命令: cd / 输出: felix@felix-computer:~/软件$ cd ...
- 8、RDD持久化
一.RDD持久化 1.不使用RDD持久化的问题 2.RDD持久化原理 Spark非常重要的一个功能特性就是可以将RDD持久化在内存中.当对RDD执行持久化操作时,每个节点都会将自己操作的RDD的par ...
- Mysql数据库简单使用(二)
Mysql导入.sql文件 进入数据库(要导入的数据库) 数据库中有要导入.sql文件名的数据库,没有则新建. source 路径+文件名 souce /home/robot/csql.sql 数据库 ...
- 【原创】go语言学习(十三)struct介绍2
目录: 方法的定义 函数和方法的区别 值类型和指针类型 面向对象和继承 结构体和json序列化 方法的定义 1.和其他语言不一样,Go的方法采⽤用另外一种方式实现. package main impo ...
- jquery validate 表单验证插件 代码
/* 表单验证 */ var signupFormValidator = $("#signupForm").validate({ /* 自定义验证规则 */ rules : { o ...
- hbuilder连接模拟器进行联调(逍遥模拟器,MuMu模拟器,夜神模拟器)
MuMu模拟器:7555 逍遥模拟器:21503 夜神模拟器:62001 1. 2. 3. 如果上诉方法不好使,可以重启模拟器以及hbuilder,有时可能连接中断,可以重新连接.