tec2000 16位机微程序控制器指令系统的设计与实现.doc_第1页
tec2000 16位机微程序控制器指令系统的设计与实现.doc_第2页
tec2000 16位机微程序控制器指令系统的设计与实现.doc_第3页
tec2000 16位机微程序控制器指令系统的设计与实现.doc_第4页
tec2000 16位机微程序控制器指令系统的设计与实现.doc_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

一、设计题目16位机微程序控制器指令系统的设计与实现二、设计目的通过看懂教学计算机组合逻辑控制器中已经设计好并正常运行的几条基本指令(例如ADD、MVRR、OUT、MVRD、JR、RET等指令)的功能、格式和执行流程,然后自己设计微程序控制器中的29条基本指令和19条扩展指令的功能、格式和执行流程,并在教学计算机上实现、调试正确,达到以下目的:1、深入理解计算机控制器的功能、组成知识和各类典型指令的执行过程;2、对指令格式、寻址方式、指令系统、指令分类等建立具体的总体概念;3、学习微程序控制器的设计过程和相关技术。三、设计说明控制器设计是学习计算机总体组成和设计的重要的部分。要在TEC2000教学计算机上完成这项设计,必须清楚懂得:1、TEC2000教学机的微程序控制器主要由作为选件的微程序控制器小板和教学机大板上的7片GAL20V8组成。2、TEC2000教学机微程序控制器上要实现的全部基本指令和扩展指令的控制信号都是由微程序小板上的7片控制存储器给出的。3、应了解监控程序的A命令只支持基本指令,扩展指令应用E命令将指令代码写入到相应的存储单元中;不能用T、P命令单步调试扩展指令,只能用G命令执行扩展指令。4、要明白TEC2000教学机支持的指令格式及指令执行流程分组情况;理解TEC2000教学机中已经设计好并正常运行的各类指令的功能、格式、执行流程和控制信号的组成。5、明确自己要实现的指令格式、功能、执行流程设计中必须遵从的约束条件。6、为了完成扩展指令的功能、格式和执行流程,并在教学计算机上实现、调试正确的实验内容,具体过程包括: 1)确定指令格式和功能,要受教学机已有硬件的约束,应尽量与已实现指令的格式和分类办法保持一致; 2)划分指令执行步骤并设计每一步的执行功能,设计节拍状态的取值,应参照已实现指令的处理办法来完成,特别要注意的是,读取指令的节拍只能用原来已实现的,其他节拍的节拍状态也应尽可能的与原用节拍的状态保持一致和相近;3)在指令微程序表中填写每一个控制信号的状态值,注意要特别仔细,并有意识地体会这些信号的控制作用;4)将设计好的微码,装入控制存储器的相应单元;5)写一个包含你设计的指令的程序,通过运行该程序检查执行结果的正确性,来初步判断你的设计是否正确;如果有问题,通过几种办法查出错误并改正,继续调试,直到完全正确。四、设计内容1、完成微程序控制器指令系统设计,主要内容是由学生自己设计29条基本指令和19条扩展指令的功能、格式和执行流程,并在教学计算机上实现、运行、调试正确。2、首先看懂TEC2000教学计算机的功能部件组成和线路逻辑关系,然后分析教学计算机组合逻辑控制器中已经设计好并正常运行的几条典型指令(例如ADD、MVRR、OUT、MVRD、JRC、RET等指令)的功能、格式和执行流程。3、设计微程序控制器指令系统中各条指令的功能、格式和执行流程,并在教学计算机上实现、调试正确,例如ADC、STC、JRS、JRNS、LDRX、STRX、JMPR、CALR、LDRA等19条扩展指令。4、单条运行指令,查看指令的功能、格式和执行流程。5、用监控程序的A、E(扩展指令必须用E命令置入)命令编写一段小程序,观察运行结果。五、设计要求(一)分组及任务分配每组四名同学,任务分配或分工为:1、仿照教学计算机组合逻辑控制器,设计微程序控制器中基本指令的功能、格式和执行流程,画出29条基本指令的执行流程框图和微程序编码表。(杨赛男同学负责)2、设计19条扩展指令的功能、格式和执行流程,设计每条微指令各字段的具体编码值,包括控制码的各字段、下址字段、形成下址用到的条件码,画出19条扩展指令的执行流程框图和微程序编码表。(李春萌同学负责)3、确定微码各字段与控制存储器各个芯片之间的关系,列表写出各控制存储器芯片中存储单元的内容,将设计好的微码装入控制存储器。(覃筱媛同学负责)4、编写若干个测试程序,包含所有的基本指令和扩展指令,通过运行这些程序可以检查所有指令设计是否正确。(车平同学负责)最后,所有同学共同参与测试,通过运行测试程序,判断指令设计是否正确。如果有问题,查出错误并改正,继续调试,直到完全正确。(二)学生应交材料1、课程设计报告,每组交一份。2、一块自定义指令系统的微程序控制器板。3、课程设计日记,每人交一份。(三)课程设计报告内容1、题目名称;2、题目内容;3、基本指令和扩展指令的执行流程框图;4、基本指令和扩展指令的微程序编码表;5、八个控制存储器芯片中各存储单元的内容列表;6、测试程序;7、自评(从实现的功能上评价);8、遇到的问题及解决方案;9、总结(主要从综合应用知识、分析问题、解决问题方面总结)。六、进度安排第1周 周一 上午 课程设计动员 周二 周五 (1)熟悉汇编、TEC2000机开发环境(2)基本指令设计(3)扩展指令设计(4)编写调试程序。第2周 周一 周五 微指令写入芯片,运行测试程序,调试指令。 第3周 周一 周三 编写课程设计报告。周四、周五 验收和答辩总结。 七、课程设计环境1、硬件环境: PC机一台、TEC2000实验机一台、微程序控制器实验板一块。 2、软件环境: (1)Win2000、DOS (2)TEC2000仿真终端程序PCEC(3)TEC2000监控程序。八、软件设计方案1将设计好的微码写入控制存储器。(包括29条基本命令和我组分配到的CLC扩展指令的微码)一次只对一片28C64控制存储器芯片进行读写,该芯片可插在扩展芯片的高位或低位,若插在高位,输入时信号编码为高八位,低八位补零;若插在低位,输入时信号编码为低八位,高位补零。若一次扩展两片28C64控制器芯片,要注意信号要与产生该信号的芯片相对。(1) 将扩展新片的内存单元地址置为40005FFF,将MAPROM插入扩展芯片的位置,微程序入口地址对应的内存单元的地址为芯片的起始地址和该指令的编码值之和。具体操作如下:E 40004000 00FF:04 00FF:05 00FF:06 00FF:09 00FF:08 00FF:0A 00FF:07 00FF:0B 00FF:0D 00FF:0C 00FF:0E 00FF:0F E 40414041 00FF:11E 40444044 00FF:10 00FF:10 00FF:10 00FF:10 E 406C 406C 00FF:56 4080 00FF:1E 00FF:1B 00FF:12 00FF:19 00FF:15 00FF:15 00FF:12 00FF:1700FF:1D E 408C408C 00FF:17 00FF: 00FF: 00FF: 23E 40CE40CE 00FF:1F (2) 将MPROM1MPROM7依次插入扩展芯片的位置对其编程,内存单元的地址为芯片的起始地址和该指令操作功能所对应的微址之和,操作如下:MPROM1产生下址信号,MPROM2产生CI30、SCC30信号对MPROM1-2的操作为:MPROM1 在高位 MPROM2 在低位E 40004000 00FF:00E0 00FF:00E0 00FF:00E0 00FF:0020 00FF:3030 00FF:3030 00FF:3030 00FF:3030 00FF:3030 00FF:3030 00FF:3030 00FF:303000FF:3030 00FF:3030 00FF:3030 00FF:3030 4010 00FF:3034 00FF:3030 00FF:1436 00FF:3030 00FF:3030 00FF:1A37 00FF:3030 00FF:1C37 00FF:3030 00FF:00E0 00FF:3030 00FF:00E0 00FF:3030 00FF:1C30 00FF:2430 00FF:00E04020 00FF:00E0 00FF:00E0 00FF:3030 00FF:00E0 00FF:3030 E 40304030 00FF:3A32 00FF:0230 E 4056 00FF:3030(3) MPROM3产生0MRW、0I20信号,MPROM4产生SAI8I6、SBI5I3信号,对MPROM3-4的操作为:MPROM3 在高位 MPROM4 在低位E 40004000 00FF:4131 00FF:4320 00FF:1010 00FF:4010 00FF:41B8 00FF:41B9 00FF:41BC 00FF:41BB 00FF:41BE 00FF:4199 00FF:419C 00FF:44B800FF:4338 00FF:4339 00FF:4378 00FF:4358 4010 00FF:4010 00FF:4530 00FF:4710 00FF:231000FF:3730 00FF:4331 00FF:0010 00FF:4320 00FF:1010 00FF:4318 00FF:0490 00FF:4490 00FF:1738 00FF:4320 00FF:4320 00FF:43204020 00FF:1700 00FF:4331 00FF:0220 00FF:4320 00FF:1730E 40304030 00FF:4700 00FF:4320 E 4056 00FF:4010(4) MPROM5产生B口、A口信号,MPROM6产生0SST、SSHSCI信号,对MPROM5-6的操作为:MPROM5 在高位 MPROM6 在低位E 40004000 00FF:5501 00FF:5501 00FF:0000 00FF:0000 00FF:0010 00FF:0011 00FF:0010 00FF:0010 00FF:0010 00FF:0011 00FF:0010 00FF:001000FF:0011 00FF:0010 00FF:0060 00FF:0050 4010 00FF:0000 00FF:5500 00FF:0000 00FF:000000FF:0000 00FF:4000 00FF:0000 00FF:4401 00FF:0020 00FF:0000 00FF:0000 00FF:0000 00FF:0000 00FF:5501 00FF:5501 00FF:55014020 00FF:0000 00FF:4000 00FF:5500 00FF:4401 00FF:5000E 40304030 00FF:0000 00FF:5501 E 4056 00FF:0030 (5) MPROM7产生DC2、DC1信号,对MPROM7的操作为:E 40004000 00FF:70 00FF:B0 00FF:10 00FF:00 00FF:00 00FF:00 00FF:00 00FF:00 00FF:00 00FF:00 00FF:00 00FF:00 00FF:00 00FF:00 00FF:00 00FF:00 4010 00FF:00 00FF:02 00FF:32 00FF:0100FF:00 00FF:30 00FF:03 00FF:30 00FF:00 00FF:30 00FF:01 00FF:30 00FF:00 00FF:30 00FF:30 00FF:304020 00FF:00 00FF:30 00FF:01 00FF:30 00FF:00E 40304030 00FF:03 00FF: B0 E 4056 00FF:00芯片的截图如下1)写入基本指令之后的芯片存储状态:MAPROM MPROM1,2 (MPROM 1在高位 MPROM2在低位) MPROM3,4 (MPROM 3在高位 MPROM 4在低位) MPROM5,6(MPROM5在高位,MPROM6在低位) MPROM72)写入扩展命令后的截图MAPROM MPROM1 MPROM2 MPROM3 MPROM4 MPROM5 MPROM6 MPROM7 九.测试程序1在单步方式下,通过指示灯观察各类扩展指令的微码。(在此,仅在A组、C组中各列举一条指令为例。)通过验证可知各指令的微码无误。选择基本指令的A组指令中的ADD指令,观察其节拍流程(1)置拨动开关SW=00000000 00000001;(表示指令ADD R0,R1)(2)按RESET按键;小板指示灯Microp亮(只要选择微程序,该灯在指令执行过程中一直亮),其它灯全灭; (3)按START按键;小板指示灯CI30、SCC30显示 1110 0000 ,微址指示灯显示 0000 0000 ;下址的指示灯显示 0000 0000 ;(本拍完成公共操作0PC、DI#=0)(4)按START按键;小板指示灯CI30、SCC30显示 1110 0000 ,微址指示灯显示 0000 0001 ,下址的指示灯显示 1110 0000 ;(本拍完成公共操作PCAR、PC+1PC)(5)按START按键;小板指示灯CI30、SCC30显示 1110 0000 ,微址指示灯显示 0000 0010 ,下址的指示灯显示 1110 0000 ;(本拍完成公共操作MEMIR)(6)以上三步为公共操作,其它指令同;(7)按START按键;小板指示灯CI30、SCC30显示 0010 0000 ,微址指示灯显示 0000 0011 ,下址的指示灯显示 0000 0100 ;(本拍完成MAP操作功能)(8)按START按键;小板指示灯CI30、SCC30显示 0011 0000 ,微址指示灯显示 0000 0100 ,下址的指示灯显示 0011 0000 ;(本拍执行ADD指令,DRDR+SR操作)(9)按START按键;小板指示灯CI30、SCC30显示 0011 0010 ,微址指示灯显示 0011 0000 ,下址的指示灯显示 0011 0000 ;(本拍完成STRQ、CC#=INT#公共操作功能)(10)按START按键;小板指示灯CI30、SCC30显示 0011 0000 ,微址指示灯显示 0011 0001 ,下址的指示灯显示 0000 0010 ;(本拍完成PCAR、PC+1PC、CC#=0的公共操作功能)选择基本指令的D组指令中的CALA指令,观察其节拍流程(1)置拨动开关SW= 1100 1110 0000 0000 ;(表示指令CALA)(2)按RESET按键;小板指示灯Microp亮(只要选择微程序,该灯在指令执行过程中一直亮),其它灯全灭;(3)按START按键;小板指示灯CI30、SCC30显示 1110 0000 ,微址指示灯显示 0000 0000 ,下址的指示灯显示 0000 0000 ;(4)按START按键;小板指示灯CI30、SCC30显示 1110 0000 ,微址指示灯显示 0000 0001 ,下址的指示灯显示 0000 0000 ;(5)按START按键;小板指示灯CI30、SCC30显示 1110 0000 ,微址指示灯显示 0000 0010 ,下址的指示灯显示 0000 0000 ;(6)以上三步为公共操作,其它指令同。(7)按START按键;小板指示灯CI30、SCC30显示 0010 0000 ,微址指示灯显示 0000 0011 ,下址的指示灯显示 0001 1111 ;(8)按START按键;小板指示灯CI30、SCC30显示 1110 0000 ,微址指示灯显示 0001 1111 ,下址的指示灯显示 0000 0000 ;(本拍完成PCAR、PC+lPC操作)(9)按START按键;小板指示灯CI30、SCC30显示 1110 0000 ,微址指示灯显示 0010 0000 ,下址的指示灯显示 0000 0000 ;(本拍完成MEMQ操作)(10)按START按键;小板指示灯CI30、SCC30显示 1110 0000 ,微址指示灯显示 0010 0001 ,下址的指示灯显示 0000 0000 ;(本拍完成SP-1SP、PCAR操作)(11)按START按键;小板指示灯CI30、SCC30显示 0011 0000 ,微址指示灯显示 0010 0010 ,下址的指示灯显示 0011 0000 ;(本拍完成PCMEM、QPC、CC#=O操作)(12)按START按键;小板指示灯CI30、SCC30显示 0011 0010 ,微址指示灯显示 0011 0000 ,下址的指示灯显示 0011 0000 ;(本拍完成STRQ、CC#=INT#操作)(13)按START按键;小板指示灯CI30、SCC30显示 0011 0000 ,微址指示灯显示 0011 0001 ,下址的指示灯显示 0000 0010 ;(本拍完成PCAR、PC+lPC、CC#=0操作)。2测试基本指令的程序:(1)验证指令MVRD,MVRR,ADD,SUB,XOR,OR,RET.运行结果:R0=0064(R1+R0R0);R1=0023;R3=FFF7(R3-R2R3);R6=0070(R6与R7相异或);R7=FFF7(R7与R3相异或)(2)验证指令IN,OUT,SHR, AND,CMP,JRC, JRNC,JMPA功能:从键盘输入09个数字,遇到09个字符外后跳出程序。(3)测试INC,JRNZ的程序功能:计算1到10的累加和。(4)测试DEC,JRZ,PUSH,POP,JR功能:用次数控制在终端屏幕上输出0到9是个数字符(5)测试STRR,LDRR,CALA 功能:读出内存中的字符,将其显示到显示器的屏幕上,转换为小写字母后再写回存储器原存储区域。3、测试扩展指令CLC1)验证EI、DI和IRET指令的程序A 21042104:JR 21202105:RET ;跳转到中断服务程序A 21082108:JR 21302109:RET ;跳转到中断服务程序 A 210C210C:JR 2140 210D:RET ;跳转到中断服务程序A 21202120:PUSH R0 ;R0进栈2121:PUSH R3 ;R3进栈2122:MVRD R3,31 ;将字符1的ASCII码送寄存器R32124:JR 2150 2125:RETA 21302130:PUSH R02131:PUSH R32132:MVRD R3,32 ;将字符2的ASCII码送寄存器R32134:JR 21502135:RETA 41402140:PUSH R02141:PUSH R32142:MVRD R3,33 ;将字符3的ASCII码送寄存器R32144:JR 2150;2145:RET2150:*DI ;关中断 A 21512151:MVRD R0,0042 ;将字符“B”赋值给R0,B即Begin的缩写。2153:CALA 2200 ;调用子程序,完成显示2155:MVRD R0,0049 ;将字符“I”赋值给R0,I即Interrupt的缩写。2157:CALA 2200 ;调用子程序,完成显示2159:MVRR R0,R3 ;将R3的内容送R0215A:CALA 2200 ;调用子程序,完成显示215C:IN 81 ;判键盘上是否按了一个键215D:SHR R0 ;即串口是否有了输入字符215E:SHR R0215F:JRNC 215C ;若没有,等待2160:IN 80 ;输入字符到R02161:MVRD R0,0045 ;将字符“E”赋值给R0,E即End2163:CALA 2200 ;调用子程序,完成显示 2165:MVRD R0,0049 ;将字符“I”赋值给R0,I即Interrupt的缩写2167:CALA 2200 ;调用子程序,完成显示2169:MVRR R0,R3 ;将R3的内容送R1216A:CALA 2200 ;调用子程序,完成显示216C:POP R3 ;R3出栈216D:POP R0 ;R0出栈216E:*IRET ;中断返回A 22002200:PUSH R0 ;R0进栈2201:IN 81 ;查询接口状态,判字符输出完成否2202:SHR R02203:JRNC 2201 ;未完,循环等待2204:POP R0 ;R0出栈2205:OUT 80 ;输出R0的值2206:RET;A 20002000:*EI ;开中断A 20012001:MVRD R0,0036 ;将字符6的ASCII码送寄存器R02003:CALA 2200 ;输出该字符2005:MVRD R0,4000 ;延时子程序2007:DEC R02008:JRNC 20072009:JR 2001 ;跳到2001循环执行该程序200A:RETG 2000注:本程序执行时只可执行一次中断,然后中断关闭;如果将2000的内存单元原值置为6F00,则从开始中断即为关闭;如果将2150和2000的内存单元原值都置为6E00,则中断一直都是开着的,可一直实现中断。(DI:6F00;EI:6E00;IRET:EF00)2)验证指令ADC、SBB、RCL、RCR、ASR、NOT、CLC、STC、CALR、LDRA、STRA的程序。(1)ADC 与CLCA 20002000:MVRD R0,0100 ;给R0赋值01002002:MVRD R1,1001 ;给R1赋值10012004:E 20042004:内存单元原值:6C00 ;进位C置为0 E 20052005:内存单元原值:2001 ;R0+R1+CR0A 20062006:RET ;程序结束2007:用G命令运行前面刚键入的源程序,在命令提示符状态下输入:G 2000运行结果为:R0=1101 R1=1001(说明:如果2004改为6D00,则进位C为1,R0为1102)(2)SBB 与STCA 20802080:MVRD R0,0011 ;给R0赋值00112082:MVRD R1,1011 ;给R1赋值1011E 20842084:内存单元原值:2110 ;R1-R0-CR1 or R1-R0+/CR1E 20852085:内存单元原值:6D00 ;进位C置为1 A 20862086:RET ;程序结束2087:用G命令运行前面刚键入的源程序,在命令提示符状态下输入:G 2080运行结果为:R0=0011 R1=OFFF(说明:如果2005改为6C00,则进位C为0,答案应为1000)(3)RCLA 20002000:MVRD R0,1111 ;给R0赋值11112002:E 20022002:内存单元原值:6D00 ;进位C置为1E 20032003:内存单元原值:2A00 ; R0R0带进位C循环左移 A 20042004:RET ;程序结束2005用G命令运行前面刚键入的源程序,在命令提示符状态下输入:G 2000运行结果为:R0=2223(说明:R0 本为0001000100010001,带进位C=1 左移后为 0010001000100011,即为 2223)(4)RCRA 20002000:MVRD R0,1111 ;给R0赋值11112002:E 20022002: 内存单元原值:6D00 ;进位C置为1E 20032003: 内存单元原值:2B00 ; R0R0带进位C循环右移A 20042004: RET ;程序结束2005用G命令运行前面刚键入的源程序,在命令提示符状态下输入:G 2000运行结果为:R0=8888(说明:R0 本为0001000100010001,带进位C=1右移后为 1000100010001000,即为 8888)(5) ASRA 20302030:MVRD R0,1111 ;给R0赋值11112032:E 20322032: 内存单元原值:2C00 ;R0R0算术右移A 20332033: RET ;程序结束2034:用G命令运行前面刚键入的源程序,在命令提示符状态下输入:G 2030运行结果为:R0=0888(说明:R0 本为0001000100010001,算术右移后为 0000100010001000,即为 0888)(6)NOTA 20402040:MVRD R0,1111 ;给R0赋值11112042:E 20422042: 内存单元原值:2D00 ; R0/R0A 20432043: RET ;程序结束2044:用G命令运行前面刚键入的源程序,在命令提示符状态下输入:G 2040运行结果为:R0=1111(说明:R0 本为0001000100010001,取反后为1110111011101110,即为 EEEE)(7)JMPRA 21002100:MVRD R1,0011 ;给R1赋值00112102:MVRD R2,1100 ;给R2赋值11002104:ADD R1,R2 ;R1R1+R22105:RET ;程序结束2106:A 20002000:MVRD R3,2100 ;转跳地址为21002002:E 20022002:内存单元原值:6003 ;转跳到R3指明的地址用G命令运行前面刚键入的源程序,在命令提示符状态下输入:G 2000运行结果为:R1=1111,R2=1100,R3=2100(8)JRS与 JRNSA 20002000:MVRD R0,0001 ;给R0赋值00012002:MVRD R1,1101 ;给R1赋值11012004:SUB R1,R0 ;R1 R1-R0E 20052005: 内存单元原值:6403 ;S=1时跳转,PCPC+3A 20062006: MVRD R2, EEEE ;给R2赋值EEEE2008:RET2009:MVRD R2,FFFF ;给R2赋值FFFF200B:RET用G命令运行前面刚键入的源程序,在命令提示符状态下输入:G 2000运行结果为:R0=0001,R1=1101,R2=EEEE(说明:1如果2004为SUB R0,R1,则S=0,跳转到2009语句。结果为R0=DF00,R1=1101,R2=FFFF。2 如果2005语句为 6503,则结果恰好相反,够减跳转,答案为R0=DF00,R1=1101,R2=FFFF,不够减不跳转,结果为R0=0001,R1=1100,R2=EEEE)(9) CALRA 20002000:MVRD R0,0101 ;给R0赋值01012002:MVRD R1,1010 ;给R1赋值10102004:MVRD R2,2100 ;R2指明的子程序的地址为21002006:E 20062006:内存单元原值:E002 ;调用R2指明的子程序A 20072007:MVRD R6,1111 ;给R6赋值11112009:MVRD R7,2222 ;给R7赋值2222200B:ADD R6,R7 ;R6R6+R7A 21002100:MVRD R0, 1111 ;给R0赋值11112102:MVRD R1, 1010 ;给R1赋值10102104:RET用G命令运行前面刚键入的源程序,在命令提示符状态下输入:G 2000运行结果为:R0=1111,R1=1010,R2=2100,R6=3333,R7=2222(10) LDRA E 2100 内存单元原值:0039 内存单元原值:0039 E 2000 2000 内存单元原值:E400 ;将内存单元2100的内容赋给寄存器R0 E 2001 2001 内存单元原值:2100 ; A 2002 2002:OUT 80 ;输出R0的内容 2003:IN 81 ;判断是否输出完 2004:SHR R0 2005:JRNC 2003 ;未完,则循环测试 E 2006 2006 内存单元原值:E400 ;将内存单元2101的内容赋给寄存器R0 E 2007 2007 内存单元原值:2101 A 2008 2008:OUT 80 2009:RET用G命令运行前面刚键入的源程序,在命令提示符状态下输入:G 2000运行结果为:99 R3=2100(11)LDRXE 20622062 内存单元原值:5F00 ;把2062的内容变为5F00,用做检验A 20002000:MVRD R1,AAAA ;给R1赋值AAAA2002:MVRD R2,0000 ;给R2赋值00002004:E 20042004 内存单元原值:E512 ;DRDATA+SR,SR为R2,DR为R1E 20052005 内存单元原值:2060 ;把DATA的值置为2060A 20062006:RET用G命令运行前面刚键入的源程序,在命令提示符状态下输入:G 2000运行结果为:R1=5F00 R2=0000(12)STRX A 20002000:MVRD R0,0111 ;给R0赋值01112002:MVRD R1,0001 ;给R1赋值00012004:E 20042004 内存单元原值:E601 ;DATA+SRDR,SR为R1,DR为R0E 20052005 内存单元原值:2060 ; DATA的值置为 2060A 20062006:RET用G命令运行前面刚键入的源程序,在命令提示符状态下输入:G 2000运行结果为:R0=0111,R1=0001 (说明:用U命令查2061的内容,即U 2061,查得其内容为0111)(13)STRA A 20002000 :MVRD R0,1111 ;给R0赋值11112002 :E 20022002 内存单元原值:E700 ;ADRSR,SR为R0E 20032003 内存单元原值:2060 ;DATA的值置为 2060A 20042004:RET用G命令运行前面刚键入的源程序,在命令提示符状态下输入:G 2000运行结果为:R0=1111 (说明:用U命令查2060的内容,即U 2060,查得其内容为1111)十、自评通过单步执行检测,证明了我们所写的29条基本指令及CLC 扩展指令是正确的。而测试程序的运行结果,也进一步证明所有指令准确无误。由此我们可以知道我们对16位机微程序控制器指令系统的设计是正确的,并且基本上达到了实验目的所要求的。鉴于设计过程中的表现,我们小组的每个成员都对自己进行了评价:杨赛男:良 李春萌:良 覃筱媛:中 车平:良 十一、遇到的问题及解决方案在单步方式下,通过指示灯观察各类扩展指令微码时,由于不是很仔细,使我们在观察指示灯时没有将一些不是很亮的灯读对,导致我们的结果与理论不符,后来我们就注意到这一细节并再犯这个错误。还有我们也曾经因为忘记改动拨动开关(单步、手动置指令、微程序、16位、联机),而导致返工,这不仅仅是马虎的问题,同时也是由于我们对这一部分知识的不熟稔所造成的,不过好在我们发现了这一错误并及时予以了纠正。十二、总结和感想通过三周的课程设计,实际的操作与知识理论的结合,使大家明显地对相关知识了解的更加透彻了,收获颇丰。在整个设计过程中,虽然小组四人各自分工明确,但是大家仍然不时交流彼此的经验,把自己的工作内容及学到的东西与同组人分享,使知识得以互补。此外,在每个人遇到困难时,我们也是互相讨论,共同解决问题的,这也使得我们的任务最终能够圆满完成。最后我们要说,我们每个组员都会铭记这次课设的经历,因为它让我们大家齐心协力,团结一致,并且最终收获了知识和珍贵的友谊。附录一 基本指令流程框图附录二 扩展指令流程框图附录三 基本指令和扩展指令的微程序编码表(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论