计算机组成原理 微程序控制器实验.docx
- 文档编号:9108485
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:18
- 大小:59.17KB
计算机组成原理 微程序控制器实验.docx
《计算机组成原理 微程序控制器实验.docx》由会员分享,可在线阅读,更多相关《计算机组成原理 微程序控制器实验.docx(18页珍藏版)》请在冰豆网上搜索。
计算机组成原理微程序控制器实验
深圳大学实验报告
课程名称:
操作系统
实验项目名称:
微程序控制器实验
学院:
计算机与软件学院
专业:
软件工程
指导教师:
报告人:
学号:
班级:
实验时间:
实验报告提交时间:
教务处制
一、实验目的:
通过看懂教学计算机中已经设计好并正常运行的数条基本指令(例如,ADD、MVRR、
OUT、MVRD、JR、RET等指令)的功能、格式和执行流程,然后自己设计几条指令的功能、格式和执行流程,并在教学计算机上实现、调试正确。
其最终要达到的目的是:
1.深入理解计算机微程序控制器的功能、组成知识;
2.深入地学习计算机各类典型指令的执行流程;
3.对指令格式、寻址方式、指令系统、指令分类等建立具体的总体概念;
4.学习微程序控制器的设计过程和相关技术。
2、实验要求
1.实验之前,应认真准备,写出实验步骤和具体设计内容,否则实验效率会特别低,一次实验时间根本无法完成实验任务,即使基本做对了,也很难说学懂了些什么重要教学内容;
2.应在实验前掌握所有控制信号的作用,在脱机运算器实验中,已给出了与运算器有关的控制信号的作用,16位机微程序控制器用到的控制信号的功能表可参见《技术说明与实验指导》的相关内容。
需要注意的是中断用到了DC23,在T4~T0=00010一拍时DC23为1,其余节拍均为0;
3.实验过程中,应认真进行实验操作,既不要因为粗心造成短路等事故而损坏设备,又要仔细思考实验有关内容,提高学习的主动性和创造性,把自己想不太明白的问题通过实验理解清楚,争取最好的实验效果,力求达到教学实验的主要目的;
4.实验之后,应认真思考总结,写出实验报告,包括实验步骤和具体实验结果,遇到的主要问题和分析与解决问题的思路。
大家应该认识到,遇到一些问题是好事情,通过分析与解决这些问题,才提高了自己的工作能力,学习到更多的知识。
还未理解清楚,但实验结果正确了就匆忙结束实验,并没有达到教学实验的目的。
实验报告中,还应写出自己的学习心得和切身体会,也可以对教学实验提出新的建议等。
实验报告要交给教师评阅并给出实验成绩。
三、实验步骤:
1.接通教学机电源;
2.将教学机左下方的6个拨动开关置为110100(单步、手动置指令、微程序、联机、16位、MACH);
3.按一下“RESET”按键;
4.通过16位的数据开关SWH、SWL置入指令操作码;
5.在单步方式下,通过指示灯观察各类基本指令的微码。
1〉选择基本指令的A组指令中的ADD指令,观察其节拍流程
〈1〉置拨动开关SW=0000000000000001;(表示指令ADDR0,R1)
〈2〉按RESET按键;指示灯Microp亮(只要选择微程序,该灯在指令执行过程中一直亮),其它灯全灭;
〈3〉按START按键;指示灯CI3~0、SCC3~0显示11100000,微址和下址的指示灯全灭;(本拍完成公共操作0→PC、DI#=0)
〈4〉按START按键;指示灯CI3~0、SCC3~0显示11100000,微址指示灯显示00000001,下址的指示灯全灭;(本拍完成公共操作PC→AR、PC+1→PC)
〈5〉按START按键;指示灯CI3~0、SCC3~0显示11100000,微址指示灯显示00000010,下址的指示灯全灭;(本拍完成公共操作MEM→IR)
〈6〉以上三步为公共操作,其它指令同;
〈7〉按START按键;指示灯CI3~0、SCC3~0显示00100000,微址指示灯显示00000011,下址的指示灯显示00000100;(本拍完成/MAP操作功能)
〈8〉按START按键;指示灯CI3~0、SCC3~0显示00110000,微址指示灯显示00000100,下址的指示灯显示00110000(本拍执行ADD指令,DR←DR+SR操作)。
〈9〉按START按键;指示灯CI3~0、SCC3~0显示00110010,微址指示灯显示00110000,下址的指示灯显示00111010;(本拍完成STR→Q、CC#=INT#公共操作功能)
〈10〉按START按键;指示灯CI3~0、SCC3~0显示00110000,微址指示灯显示00110001,下址的指示灯显示00000010;(本拍完成PC→AR、PC+1→PC、CC#=0的公共操作功能)
2〉选择基本指令的B组指令中的MVRD指令,观察其节拍流程
〈1〉置拨动开关SW=1000100000000000;(表示指令MVRD)
〈2〉按RESET按键;指示灯Microp亮(只要选择微程序,该灯在指令执行过程中一直亮),其它灯全灭;
〈3〉按START按键;指示灯CI3~0、SCC3~0显示11100000,微址和下址的指示灯全灭;
〈4〉按START按键;指示灯CI3~0、SCC3~0显示11100000,微址指示灯显示00000001,下址的指示灯全灭;
〈5〉按START按键;指示灯CI3~0、SCC3~0显示11100000,微址指示灯显示00000010,下址的指示灯全灭;
〈6〉以上三步为公共操作,其它指令同。
〈7〉按START按键;指示灯CI3~0、SCC3~0显示00100000,微址指示灯显示00000011,下址的指示灯显示00011101;
〈8〉按START按键;指示灯CI3~0、SCC3~0显示00110000,微址指示灯显示00011101,下址的指示灯显示00011100;(本拍完成PC→AR、PC+1→PC、CC#=0操作)
〈9〉按START按键;指示灯CI3~0、SCC3~0显示00110000,微址指示灯显示00011100,下址的指示灯显示00110000;(本拍完成MEM→DR、CC#=0操作)
〈10〉按START按键;指示灯CI3~0、SCC3~0显示00110010,微址指示灯显示00110000,下址的指示灯显示00111010;(本拍完成STR→Q、CC#=INT#操作)
〈11〉按START按键;指示灯CI3~0、SCC3~0显示00110000,微址指示灯显示00110001,下址的指示灯显示00000010;(本拍完成PC→AR、PC+1→PC、CC#=0的公共操作功能)
3〉选择基本指令的D组指令中的CALA指令,观察其节拍流程
〈1〉置拨动开关SW=1100111000000000;(表示指令CALA)
〈2〉按RESET按键;指示灯Microp亮(只要选择微程序,该灯在指令执行过程中一直亮),其它灯全灭;
〈3〉按START按键;指示灯CI3~0、SCC3~0显示11100000,微址和下址的指示灯全灭;
〈4〉按START按键;指示灯CI3~0、SCC3~0显示11100000,微址指示灯显示0000
0001,下址的指示灯全灭;
〈5〉按START按键;指示灯CI3~0、SCC3~0显示11100000,微址指示灯显示0000
0010,下址的指示灯全灭;
〈6〉以上三步为公共操作,其它指令同。
〈7〉按START按键;指示灯CI3~0、SCC3~0显示00100000,微址指示灯显示0000
0011,下址的指示灯显示00011111;
〈8〉按START按键;指示灯CI3~0、SCC3~0显示11100000,微址指示灯显示0001
1111,下址的指示灯显示00000000;(本拍完成PC→AR、PC+1→PC操作)
〈9〉按START按键;指示灯CI3~0、SCC3~0显示11100000,微址指示灯显示0010
0000,下址的指示灯显示00000000;(本拍完成MEM→Q操作)
〈10〉按START按键;指示灯CI3~0、SCC3~0显示11100000,微址指示灯显示0010
0001,下址的指示灯显示00000000;(本拍完成SP-1→SP、→AR操作)
〈11〉按START按键;指示灯CI3~0、SCC3~0显示00110000,微址指示灯显示0010
0010,下址的指示灯显示00110000;(本拍完成PC→MEM、Q→PC、CC#=0操作)
〈12〉按START按键;指示灯CI3~0、SCC3~0显示00110010,微址指示灯显示0011
0000,下址的指示灯显示00111010;(本拍完成STR→Q、CC#=INT#操作)
〈13〉按START按键;指示灯CI3~0、SCC3~0显示00110000,微址指示灯显示0011
0001,下址的指示灯显示00000010;(本拍完成PC→AR、PC+1→PC、CC#=0操作)
6.在连续方式下,用A命令健入程序并运行(程序由基本指令组成,可直接用A命令键入)。
1〉举例编写汇编程序,用“A”命令输入,运行并观察结果
例子1:
设计一个小程序,在屏幕上输出显示字符‘6’。
<1>在命令行提示符状态下输入:
A2000↙;
屏幕将显示:
2000:
输入如下形式的程序:
2000:
MVRDR0,0036↙;把字符‘6’的ASCII码送入R0的低位
2002:
OUT80↙;在屏幕上输出显示字符‘6’
2003:
RET↙;每个用户程序都必须用RET指令结束
2004:
↙;(按回车键即结束输入过程)
<2>用“G”命令运行程序60
在命令行提示符状态下输入:
G2000↙
执行上面输入的程序
显示结果为:
6
该例建立了一个从主存2000H地址开始的小程序。
在这种方式下,所有的数字都约定使用16进制数,故数字后不用跟字符H。
每个用户程序的最后一个语句一定为RET汇编语句。
因为监控程序是选用类似子程序调用方式使实验者的程序投入运行的,用户程序只有用RET语句结束,才能保证程序运行结束时能正确返回到监控程序的断点,保证监控程序能继续控制教学机的运行过程。
例2:
设计一个小程序,用次数控制在终端屏幕上输出‘0'到‘9'十个数字符。
<1>在命令行提示符状态下输入:
A2020↙
屏幕将显示:
2020:
从地址2020H开始输入下列程序:
2020:
MVRDR2,00OA;送入输出字符个数
2022:
MVRDR0,0030;“0”字符的ASCII码送寄存器R0
2024:
OUT80;输出保存在R0低位字节的字符
2025:
DECR2;输出字符个数减1
2026:
JRZ202E;判10个字符输出完否,已完,则转到程序结束处
2027:
PUSHR0;未完,保存R0的值到堆栈中
2028:
IN81;查询接口状态,判字符串行输出完成否,
2029:
SHRR0;
202A:
JRNC2028;未完成,则循环等待
202B:
POPR0;已完成,准备输出下一字符并从堆栈恢复R0的值
202C:
INCR0;得到下一个要输出的字符
202D:
JR2024;转去输出字符
202E:
RET
202F:
↙
该程序的执行码放在2020H起始的连续内存区中。
若送入源码的过程中有错,系统会进行提示,等待重新输入正确汇编语句。
在输入过程中,在应输入语句的位置直接打回车则结束输入过程。
<2>用“G”命令运行程序
在命令行提示符状态下输入:
G2020↙
执行结果为:
0123456789
思考题:
当把IN01,SHRR0,JNC2029三个语句换成4个MOVR0,R0语句,该程序执行过程会出现什么现象?
试分析并实际执行一次。
提示:
该程序改变这三条语句后,若用T命令单条执行,会依次显示0~9十个数字。
若用G命令运行程序,程序执行速度快,端口输出速度慢,这样就会跳跃输出。
在命令行提示符状态下输G2020,屏幕显示09。
类似的,若要求在终端屏幕上输出‘A'到‘Z'共26个英文字母,应如何修改例1中给出的程序?
请验证之。
参考答案:
在命令行提示符状态下输入:
A2100↙
屏幕将显示:
2100:
从地址2100H开始输入下列程序:
(2100)MVRDR2,001A;循环次数为26
MVRDR0,0041;字符“A”的值
(2104)OUT80;输出保存在R0低位字节的字符
DECR2;输出字符个数减1
JRZ210E;判26个字符输出完否,已完,则转移到程序结束处
PUSHR0;未完,保存R0的值到堆栈中
(2108)IN81;查询接口状态,判字符串行输出完成否
SHRR0
JRNC2108;未完成,则循环等待
POPR0;已完成,准备输出下一字符,从堆栈恢复R0的值
INCR0;得到下一个要输出的字符
JR2104;转去输出字符
(210E)RET
用G命令执行该程序,屏幕上显示“A”~“Z”26个英文字母.
例子3:
从键盘上连续打入多个属于‘0’到‘9’的数字符并在屏幕上显示,遇非数字符结束输入过程。
<1>在命令行提示符状态下输入:
A2040↙
屏幕将显示:
2040:
从地址2040H开始输入下列程序:
(2040)MVRDR2,0030;用于判数字符的下界值
MVRDR3,0039;用于判数字符的上界值
(2044)IN81;判键盘上是否按了一个键,
SHRR0;即串行口是否有了输入的字符
SHRR0
JRNC2044;没有输入则循环测试
IN80;输入字符到R0
MVRDR1,00FF
ANDR0,R1;清零R0的高位字节内容62
CMPR0,R2;判输入字符≥字符'0'否
JRNC2053;为否,则转到程序结束处
CMPR3,R0;判输入字符≤字符'9'否
JRNC2053;为否,则转到程序结束处
OUT80;输出刚输入的数字符
JMPA2044;转去程序前边2044处等待输入下一个字符
(2053)RET
<2>在命令行提示符状态下输入:
G2040↙
光标闪烁等待键盘输入,若输入0-9十个数字符,则在屏幕上回显;若输入非数字符,则屏幕不再显示该字符,出现命令提示符,等待新命令。
思考题,本程序中为什么不必判别串行口输出完成否?
设计打入'A'~'Z'和'0'~'9'的程
序,遇其它字符结束输入过程
因为每输入一个0—9的数字都会直接回显而不需要判断输出完成否。
<1>在命令行提示符状态下输入:
A2040↙
屏幕将显示:
2040:
从地址2040H开始输入下列程序:
(2040)MVRDR2,0030;用于判数字符的下界值
MVRDR3,0039;用于判数字符的上界值
MVRDR4,0030;用于判数字符的下界值
MVRDR5,0039;
(2048)IN81;判键盘上是否按了一个键,
SHRR0;即串行口是否有了输入的字符
SHRR0
JRNC2044;没有输入则循环测试
IN80;输入字符到R0
MVRDR1,00FF
ANDR0,R1;清零R0的高位字节内容62
CMPR0,R2;判输入字符≥字符'0'否
CMPR0,R4;判输入字符≥字符'A'否
JRNC2053;为否,则转到程序结束处
CMPR5,R0;判输入字符≤字符'Z'否
CMPR3,R0;判输入字符≤字符0'否
JRNC2059;为否,则转到程序结束处
OUT80;输出刚输入的数字符
JMPA2048;转去程序前边2044处等待输入下一个字符
(2059)RET
<2>在命令行提示符状态下输入:
G2040↙
光标闪烁等待键盘输入,若输入0A'~'Z'和'0'~'9',则在屏幕上回显;若输入非数字符,则屏幕不再显示该字符,出现命令提示符,等待新命令。
例子4:
计算1到10的累加和。
<1>在命令行提示符状态下输入:
A2060↙
屏幕将显示:
2060:
从地址2060H开始输入下列程序:
(2060)MVRDR1,0000;置累加和的初值为0
MVRDR2,00OA;最大的加数
MVRDR3,0000
(2066)INCR3;得到下一个参加累加的数
ADDR1,R3;累加计算
CMPR3,R2;判是否累加完
JRNZ2066;未完,开始下一轮累加
RET
<2>在命令行提示符状态下输入:
G2060↙
运行过后,可以用R命令观察累加器的内容。
R1的内容为累加和。
结果为:
R1=0037R2=00OAR3=00OA
7.设计几条指令的功能、格式和执行流程,设计每条微指令各字段的具体编码值,包括控制码的各字段、下地址字段、形成下址用到的条件码。
可以从给出的19条扩展指令中任意选择,例如ADC、STC、LDRA、、CALR等指令,当然也可以设计与实现其它的指令,包括原来已经实现的基本指令(要变换为另外一个指令操作码)或自己确定的指令。
1〉扩展几条指令,确定各步的控制信号。
注意:
在做扩展指令时,控制信号要由MACH产生,教师可以参照提供的微程序的全指令的MACH的程序。
2>将扩展好的控制信号添加到给出的MACH程序中,编译生成JED的熔丝图文件,写入MACH内的寄存器中。
教师可以参考提供的微程序全指令的程序,将提供的MACHM.JED下载到MACH芯片内。
(出厂时默认的程序就是微程序全指令的,所以这个步骤可以省略,直接进行下面的步骤)
8.在单步方式下,通过指示灯观察各类扩展指令的微码。
1〉选择扩展指令的A组指令中的ADC指令,观察其节拍流程
〈1〉置拨动开关SW=0010000000000000;(表示指令ADC)
〈2〉按RESET按键;指示灯Microp亮(只要选择微程序,该灯在指令执行过程中一直亮),其它灯全灭;
〈3〉按START按键;指示灯CI3~0、SCC3~0显示11100000,微址和下址的指示灯全灭;
〈4〉按START按键;指示灯CI3~0、SCC3~0显示11100000,微址指示灯显示00000001,下址的指示灯全灭;
〈5〉按START按键;指示灯CI3~0、SCC3~0显示11100000,微址指示灯显示00000010,下址的指示灯全灭;
〈6〉以上三步为公共操作,其它指令同。
〈7〉按START按键;指示灯CI3~0、SCC3~0显示00100000,微址指示灯显示00000011,下址的指示灯显示01010000;
〈8〉按START按键;指示灯CI3~0、SCC3~0显示00110000,微址指示灯显示01010000,下址的指示灯显示00110000;(本拍完成DR+SR+CF→DR操作)
〈9〉按START按键;指示灯CI3~0、SCC3~0显示00110010,微址指示灯显示00110000,下址的指示灯显示00111010;(本拍完成STR→Q、CC#=INT#操作)
〈10〉按START按键;指示灯CI3~0、SCC3~0显示00110000,微址指示灯显示0011
0001,下址的指示灯显示00000010;(本拍完成PC→AR、PC+1→PC操作)
2〉选择扩展指令的C组指令中的LDRA指令,观察其节拍流程
〈1〉置拨动开关SW=1110010000000000;(表示指令LDRA)64
〈2〉按RESET按键;指示灯Microp亮(只要选择微程序,该灯在指令执行过程中一直亮),其它灯全灭;
〈3〉按START按键;指示灯CI3~0、SCC3~0显示11100000,微址和下址的指示灯全灭;
〈4〉按START按键;指示灯CI3~0、SCC3~0显示11100000,微址指示灯显0000
0001,下址的指示灯全灭;
〈5〉按START按键;指示灯CI3~0、SCC3~0显示11100000,微址指示灯显示0000
0010,下址的指示灯全灭;
〈6〉以上三步为公共操作,其它指令同。
〈7〉按START按键;指示灯CI3~0、SCC3~0显示00100000,微址指示灯显示0000
0011,下址的指示灯显示01011011;
〈8〉按START按键;指示灯CI3~0、SCC3~0显示11100000,微址指示灯显示0101
1011,下址的指示灯显示00000000;(本拍完成PC→AR、PC+1→PC操作)
〈9〉按START按键;指示灯CI3~0、SCC3~0显示00110000,微址指示灯显示0101
1100,下址的指示灯显示00011100;(本拍完成MEM→AR操作)
〈10〉按START按键;指示灯CI3~0、SCC3~0显示00110000,微址指示灯显示0001
1100,下址的指示灯显示00110000;(本拍完成MEM→DR操作)
〈11〉按START按键;指示灯CI3~0、SCC3~0显示00110010,微址指示灯显示0011
0000,下址的指示灯显示00111010;(本拍完成STR→Q操作)
〈12〉按START按键;指示灯CI3~0、SCC3~0显示00110000,微址指示灯显示0011
下址的指示灯显示00000010;(本拍完成PC→AR、PC+1→PC操作)
3〉选择扩展指令的C组指令中的CALR指令,观察其节拍流程
〈1〉置拨动开关SW=1110000000000000;(表示指令CALR)
〈2〉按RESET按键;指示灯Microp亮(只要选择微程序,该灯在指令执行过程中一直亮),其它灯全灭;
〈3〉按START按键;指示灯CI3~0、SCC3~0显示11100000,微址和下址的指示灯全灭;
〈4〉按START按键;指示灯CI3~0、SCC3~0显示11100000,微址指示灯显示0000
0001,下址的指示灯全灭;
〈5〉按START按键;指示灯CI3~0、SCC3~0显示
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机组成原理 微程序控制器实验 计算机 组成 原理 微程序 控制器 实验
![提示](https://static.bdocx.com/images/bang_tan.gif)