微指令设计
计组课设-微指令的设计实验

计算机组成原理课程设计报告班级:计算机/物联网 ________ 班姓名:_______ 学号:___________完成时间:2016.1.14 _____________________一、课程设计目的1 •在实验机上设计实现机器指令及对应的微指令(微程序)并验证,从而进一步掌握微程序设计控制器的基本方法并了解指令系统与硬件结构的对应关系;2 •通过控制器的微程序设计,综合理解计算机组成原理课程的核心知识并进一步建立整机系统的概念;3 •培养综合实践及独立分析、解决问题的能力。
二、课程设计的任务针对COP2000实验仪,从详细了解该模型机的指令/微指令系统入手,以实现乘法和除法运算功能为应用目标,在COP2000 的集成开发环境下,设计全新的指令系统并编写对应的微程序;之后编写实现乘法和除法的程序进行设计的验证。
三、课程设计使用的设备(环境)1 .硬件COP2000实验仪PC机2 .软件COP2000仿真软件四、课程设计的具体内容(步骤)1•详细了解并掌握COP 2000模型机的微程序控制器原理,通过综合实验来实现该模型机指令系统的特点:从指令字长来看该模型机指令系统包含单字长和双字长两种格式的指令,字长为8位,对于需要访问内存的指令都是双字长的,指令系统中大多数指令是单字长;从指令操作码是定长和变长来看,这里认为,虽然ADD A, R?和ADD A, @R?都是执行加法操作,但他们是不同的指令,将指令格式中寻址寄存器的两位也认为是操作码的一部分,这两条指令的操作码不同。
因此,指令系统的指令格式是定长操作码的,操作码为6位。
1)双字长的指令格式如下:举例2)单字长的指令格式如下:举例:助记符 机器码1机器码2ADD A, R? 000100xxORA, R? 011000xxMOV R?, A100000xx该模型机微指令系统的特点(包括其微指令格式的说明等) :该模型机微指令系统的微指令格式是水平型微指令, 微指令的字长为24位,是机器字长的3倍,每条微指令仅包含微操作控制字段,无顺序控制字段。
微程序控制器_实验报告

微程序控制器_实验报告本次实验使用的是微程序控制器,主要涵盖了微程序控制器的概念、微指令的设计、微指令的执行以及测试和调试方法等。
首先,我们需要了解什么是微程序控制器。
微程序控制器是一种专门用于控制计算机操作的控制器,其中的微指令由微程序控制器产生。
微程序控制器的主要优点是提高了计算机系统的可控性和可编程性,可避免在操作过程中出现复杂的电路切换。
在实验中,我们主要是操作微指令的设计和执行。
微指令需要根据指令的类型以及相应的操作码进行设计,确保计算机能够正确地执行指令。
在设计微指令过程中,我们要考虑到指令执行时需要进行的操作、信号的传递以及各个部分之间的协调。
在微指令设计完成后,需要进行微指令的执行。
微指令执行的过程也是十分关键的,这需要对微指令的执行顺序进行精密设计以保证整个计算机发挥最大的性能。
实验中我们了解了基本的微指令执行步骤,包括状态存储器、微指令计数器、微指令发生器以及微指令存储器等。
除了微指令设计和执行外,测试和调试也是实验中比较重要的步骤。
这一步骤旨在确保整个计算机系统能够正常运行,同时也可以在测试过程中发现和纠正存在的错误。
在测试过程中,我们需要编写测试程序,通过输入不同的指令类型和操作码来测试微指令是否能够正确地执行。
在调试过程中,我们需要通过检查微指令执行的每个步骤,找到代码中存在的错误并进行修正,以保证计算机的正常运行。
在实验中,学习了微程序控制器的基本知识,包括微指令的设计和执行以及测试和调试方法。
这些知识对于计算机专业的学生非常重要,可以帮助他们深入了解计算机系统的运行原理及其基本结构。
同时也可以为今后的工作和研究提供基础知识和经验。
微程序控制器实验报告

微程序控制器实验报告微程序控制器实验报告引言微程序控制器是一种常见的计算机控制器,它采用微程序的方式来实现指令的执行。
在本次实验中,我们将学习和探索微程序控制器的工作原理,并通过实验验证其功能和性能。
实验目的本次实验的主要目的是通过设计和实现一个简单的微程序控制器,来深入理解微程序控制器的工作原理和原理图设计。
实验过程1. 设计微指令集在设计微程序控制器之前,首先需要确定微指令集。
微指令集是由一系列微指令组成的,每个微指令对应一个控制信号,用于控制计算机的各个组件的操作。
在本次实验中,我们选择了常见的微指令集,包括存储器读写、算术逻辑运算、数据传输等指令。
2. 设计微指令控制存储器微指令控制存储器是微程序控制器的核心组件,用于存储微指令集。
在本次实验中,我们使用了静态随机存储器(SRAM)来实现微指令控制存储器。
通过将微指令集编码为二进制数,并将其存储在SRAM中的不同地址位置,实现对微指令的存储和读取。
3. 设计微指令解码器微指令解码器用于解析微指令,并产生相应的控制信号。
在本次实验中,我们使用了组合逻辑电路来实现微指令解码器。
通过将微指令的不同位与控制信号相连,实现对微指令的解码和控制信号的生成。
4. 设计微程序计数器微程序计数器用于控制微程序的执行顺序。
在本次实验中,我们使用了计数器和触发器来实现微程序计数器。
通过将微程序计数器的输出与微指令控制存储器的地址输入相连,实现对微指令的顺序读取。
实验结果通过实验,我们成功设计并实现了一个简单的微程序控制器。
在实验中,我们编写了微指令集,并将其存储在微指令控制存储器中。
通过微指令解码器和微程序计数器的协作,我们成功实现了对微指令的解码和执行。
实验结果表明,微程序控制器能够准确地控制计算机的各个组件的操作,并实现指令的执行。
实验总结通过本次实验,我们深入了解了微程序控制器的工作原理和原理图设计。
微程序控制器作为一种常见的计算机控制器,具有灵活性和可扩展性。
计算机组成原理微程序设计乘法指令

郑州轻工业学院本科计算机组成原理课程设计总结报告设计题目:基本模型机的设计与实现学生姓名:系别:专业:班级:学号:指导教师:2011 年1月7 日郑州轻工业学院课程设计任务书题目基本模型机的设计与实现专业、班级学号姓名主要内容:乘法指令、停机指令的设计与实现。
基本说明:由于乘法指令较为复杂,本次模型机设计只完成乘法机器指令和停机指令的设计与实现。
主要参考资料等:《计算机组成原理》白中英主编科学出版社。
完成期限:一周指导教师签名:课程负责人签名:2011年 1月 7 日目录课程设计任务书 (2)一、微程序控制器的基本原理 (4)二、模型机结构 (5)三、微指令格式 (6)四、指令系统 (7)五、指令流程图 (8)六、程序清单 (9)七、微程序清单 (10)八、心得与体会 (11)附录:微程序详解 (11)1. 总述 (11)2. 乘法算法 (11)3. 实现难点 (12)一、微程序控制器的基本原理微程序控制器原理框图如图所示。
它主要有控制存储器、微指令寄存器和地址转移逻辑三大部分组成。
其中微指令寄存器分为微地址寄存器和微命令寄存器两部分。
(1)控制存储器控制存储器用来存放实现全部指令系统的微程序,机器运行时只读不写。
其工作过程是:每读出一条微指令,则执行这条微指令接着以读出下一条微指令,又执行这条微指令……。
(2)微指令寄存器微指令寄存器用来存放由控制存储器读出的一条微指令信息。
其中微地址寄存器决定将要访问的下一条微指令的地址,而微命令寄存器则保存一条微指令的操作控制字段和判别测试字段的信息。
(3)地址转移逻辑在一般情况下,微指令由控制存储器读出后直接给出下一微指令的地址,通常我们简称微地址,这个微地址信息就存放在微地址寄存器中。
如果微程序不出现分支,那么下一条微指令的地址就直接由微地址寄存器给出。
当微程序出现分支时,意味着微程序出现条件转移。
在这种情况下,通过判别测试字段P和执行部件的“状态条件”反馈信息,去修改微地址寄存器人内容,并按改好人内容去读下一条微指令。
数据通路的几条常用指令及其微指令的设计

20 0 6年第 2期 ( 总第 4 2期 )
桂 林航天 工 业高等 专科学 校学 报 J U N LO ULN C L E EO E O P C E HN L G 刘登峰 、 零/ O R A FG II O L G FA R S A ET C O O Y 魏 文
当S WB、 WA 为 0 S 0时 , 机 器 指 令 读 出进 行 验 证 ; 将 当 S WB、WA为 1 S 1时, 动机器指令所 在程序 ( 启 微地址采 用
八 进 制 ) 。
表2
微 地址 3 2 1 0 C W E 9 8 A S M N SS S A A
0 0 0 1 0 2 03 04 0 5 06 0 7 1 0 1 1 1 2 1 3 1 4 1 5 l 6 1 7 20 21 22 23 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 l 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 00 0 0 0 0 0 0 1 0 0 0 1 0 00 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 l 1 0 1 l 1 1 0 1 0 1 0 1 1 1 1 1 0 1 0 0 1 1 1 1 1 1 1 1 0 l 1 0 1 1 1 1 1 1 0 l 1 l 00 1 1 0 1 1 0 01
微指令格式

2.垂直型微指令 垂直型微指令 微指令中设置微操作码字段,采用微操作码编译法, 微指令中设置微操作码字段,采用微操作码编译法,由 微操作码规定微指令的功能,称为垂直型微指令 微操作码规定微指令的功能,称为垂直型微指令 . 垂直型微指令的结构类似于机器指令的结构.它有操作码 它有操作码, 垂直型微指令的结构类似于机器指令的结构 它有操作码, 在一条微指令中只有l- 个微操作命令 个微操作命令, 在一条微指令中只有 -2个微操作命令,每条微指令的 功能简单,因此, 功能简单,因此,实现一条机器指令的微程序要比水平 型微指令编写的微程序长得多 .它是采用较长的微程序 它是采用较长的微程序 结构去换取较短的微指令结构. 结构去换取较短的微指令结构 下面举4条垂直型微指令的微指令格式加以说明 条垂直型微指令的微指令格式加以说明. 下面举 条垂直型微指令的微指令格式加以说明 设微指令字长为16位 做操作码3位 设微指令字长为 位,做操作码 位. (1)寄存器-寄存器传送型微指令 )寄存器 寄存器传送型微指令 15 13 12 8 7 3 2 0 000 源寄存器编址 目标寄存器编址 其他 其功能是把源寄存器数据送目标寄存器 .13—15位为微 位为微 操作码(下同), ),源寄存器和目标寄存器编址各 位 操作码(下同),源寄存器和目标寄存器编址各 5位, 可指定水平型微指令用户难以掌握,而垂直型微指令 )水平型微指令用户难以掌握, 与指令比较相似,相对来说。 与指令比较相似,相对来说。比较容易掌握 .
水平型微指令与机器指令差别很大,一般需要对机器的结构、 水平型微指令与机器指令差别很大,一般需要对机器的结构、 数据通路、时序系统以及微命令很精通才能设计 . 数据通路、 5.5.4 动态微程序设计 微程序设计技术有静态微程序设计 动态微程序设计之分 静态微程序设计和 之分。 微程序设计技术有静态微程序设计和动态微程序设计之分。 1.静态微程序设计 静态微程序设计 对应于一台计算机的机器指令只有一组微程序, 对应于一台计算机的机器指令只有一组微程序,而且这一组微 程序设计好之后,一般无须改变而且也不好改变, 程序设计好之后,一般无须改变而且也不好改变,这种微 程序设计技术称为静态微程序设计。 程序设计技术称为静态微程序设计。 2.动态微程序设计 动态微程序设计 当采用EPROM作为控制存储器时,还可以通过改变微指 作为控制存储器时, 当采用 作为控制存储器时 令和微程序来改变机器的指令系统, 令和微程序来改变机器的指令系统,这种微程序设计技术 称为动态微程序设计。采用动态微程序设计时, 称为动态微程序设计。采用动态微程序设计时,微指令和 微程序可以根据需要加以改变, 微程序可以根据需要加以改变,因而可在一台机器上实现 不同类型的指令系统。 不同类型的指令系统。这种技术又称为仿真其他机器指令 系统,以便扩大机器的功能。 系统,以便扩大机器的功能。
x86指令集兼容处理器中微指令的设计与验证

针对上述问题 , 本文提 出构建一个面 向 x6指 8 令集兼容处理器 的微指令开发平 台, 以满足微指令
设计与验证的需求。在该平台中, 首先定义二进制
基金项 目: 自然科学基金 (0717 6732 ) 国家 6530 和 0723 资助
Hale Waihona Puke 作者简介: 安建峰 (97 )西北工 业大学讲 师 , , 17 一 , 博士 主要从事高性能微处理器体 系结 构的研究 。
不直接执行 x6 8 指令 , 而是先将每条 x6指令转换 8 为若干条与 l ds r RS o .o IC指令类似的微指令( i a te M-
需要取指部件、 译码部件、 执行部件等处理器其它部 件的配合进行。如果微 指令不能提前得到仿真验
c sutn,i )有 的也称作微操作 ( ioO . r I t cosu s , on r i n M c p r e tn , p) r i su s 。简单 x6指令一般转换为一条微指 ao o 8 令, 而复杂 x6 8 指令一般转换为若干条微指令构成 以生成 3 条微指令 ;oa 微架构有 3组解码单元 , Y nh 的微程序( i o r r 。相对于直接执行 x6 Mc o a r P g m) 8 指 每周期可以生成 6条微指令 ; 最近的 C r微架构拥 o e 令, 微指令可以更加容易采用乱序执行等先进体系 有 4组 解码 单元 , 周 期 可 以生成 7条微 指令 。而 每 结构 技术 … 。因此 , x6指令 转 换 为 微指 令 是设 且 , t 从 B na 核 心开 始 采用 微 指令 融合 ( c 将 8 Ie nl ais Mio r 计 CS IC处理器 的一 个关 键 问题 。西 北 工 业大 学航 Fs n 和宏 指 令 融 合 ( c ui ) ui ) o Mar F s n 技术 J该 技 o o , 空微 电子 中心在 开发 与 x6指令 集兼 容 的龙 腾 C系 术通过减少 x6指令解码后生成的微指令数 目, 8 8 降 列处理 器时也采 用 了相 同的方式 。 低乱序执行引擎和执行单元 的压力 , 从而达到提升 然而, 使用微指令设计 x6指令集兼容处理器 处理器效率 的目的。 8 存在 2 个问题 : ①微指令的设计开发是十分复杂的。 尽管龙腾 C系列处理器 目前 尚未采用此类技 以龙腾 C 处理器为例 , l 微指令共 812行 , 9 每行微 术 , 已经考虑在下一代龙腾 C处理器中实施 。这 但 指令为 5 2位 , 全部 微指令共 812× 2= 2 8 9 5 4 594 位。直接编写二进制格式 的微指令效率很低, 而且 极易出错 , 以有必要采用更好 的微指令设计开发 所 方法。②微指令的仿真验证难于提前进行。在微指 令填写完成之后 , 必须经过仿真验证 , 确保微指令实
微程序实验报告

一、实验目的1. 理解微程序设计的基本原理和方法。
2. 掌握微程序控制器的设计方法。
3. 提高对计算机组成原理和汇编语言的理解。
二、实验环境1. 操作系统:Windows 102. 开发工具:Keil uVision53. 实验平台:STM32F103C8T6三、实验内容1. 微程序控制器的设计2. 微程序指令集的设计3. 微程序的编译与仿真四、实验步骤1. 微程序控制器的设计(1)确定微程序控制器的基本结构,包括控制单元、指令寄存器、地址计数器、微指令寄存器等。
(2)设计控制单元,实现微指令译码和操作控制功能。
(3)编写微指令序列,实现所需的功能。
2. 微程序指令集的设计(1)根据实验需求,设计微程序指令集,包括指令格式、操作码和操作数。
(2)编写微指令编码表,实现指令集的编码。
3. 微程序的编译与仿真(1)编写微程序代码,实现微程序的功能。
(2)将微程序代码编译成机器代码。
(3)在仿真软件中加载编译后的机器代码,进行仿真实验。
五、实验结果与分析1. 微程序控制器设计结果根据实验需求,设计了一个具有8级微程序的控制器。
控制器包括控制单元、指令寄存器、地址计数器、微指令寄存器等模块。
控制单元根据微指令译码和操作控制信号,实现对微程序的操作。
2. 微程序指令集设计结果根据实验需求,设计了以下微程序指令集:- 立即数加载指令:将立即数加载到指定寄存器。
- 寄存器加载指令:将寄存器内容加载到指定寄存器。
- 立即数存储指令:将立即数存储到指定内存地址。
- 寄存器存储指令:将寄存器内容存储到指定内存地址。
- 立即数加法指令:将立即数与寄存器内容相加,结果存储到寄存器。
- 寄存器加法指令:将寄存器内容与另一个寄存器内容相加,结果存储到寄存器。
- 立即数减法指令:将立即数与寄存器内容相减,结果存储到寄存器。
- 寄存器减法指令:将寄存器内容与另一个寄存器内容相减,结果存储到寄存器。
3. 微程序编译与仿真结果在仿真软件中加载编译后的机器代码,进行仿真实验。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(1) 设计一条指令,比较SR内容与[ADDR].若SR<[ADDR],则SR+[ADDR]->[ADDR]; 否则SR-[ADDR]->[ADDR].指令格式:D4 0 SRADDR设计分析:100:把PC的值(即ADDR的地址)送到AR中,然后PC+1101:用MEM->AR将ADDR从内存中取出并送到AR中102:利用SR-MEM->Q计算SR与[ADDR]的差,并让各标志位接受ALU的运算结果,103:若S=1(即SR<[ADDR]),条件转移到105,否则顺序执行104104:将Q的值(即SR-[ADDR])送到[ADDR]中105:AR<[ADDR]时转移到此处,计算SR+[ADDR]并送到Q寄存器中106:将Q寄存器的值送到[ADDR]中微程序:100H: PC->AR,PC+1->PC: 0000 0E00 A0B5 5402101H: MEM->AR: 0000 0E00 10F0 0002102H: SR-MEM->Q,接受标志: 0000 0E01 01D0 0080103H: S=1(即AR<[ADDR])时,条件转移到105: 0041 43B0 9080 0000104H: Q->MEM,CC#=0: 0029 0300 1020 0010105H: SR+MEM->Q: 0000 0E00 00D0 0080106H: Q->MEM,CC#=0: 0029 0300 1020 0010A800MOV R1,900MOV R2,7MOV R3,100LDMCRETG800A820MOV R7,0001MOV R1,0002MOV [082A],R1NOPNOPRETE826D407 082AG820U820运行结果如下:0820:2C70 0001 MOV R7, 00010822:2C10 0002 MOV R1, 00020824:3401 082A MOV [082A],R10826:D407 DW D4070827:082A ADC R2, R100828:AC00 RET0829:0000 NOP082A:0003 NOP……结果分析:由于运行前SR=R7=0001<[ADDR]=[082A]=0002,故运行后[ADDR]=0003=SR+[ADDR],结果正确.更换数据测试:>E8210821 0001:0002>G820>U820运行结果如下:0820:2C70 0002 MOV R7, 00020822:2C10 0002 MOV R1, 00020824:3401 082A MOV [082A],R10826:D407 DW D4070827:082A ADC R2, R100828:AC00 RET0829:0000 NOP082A:0000 NOP……结果分析:由于运行前SR=R7=0002=[ADDR]=[082A]=0002,故运行后[ADDR]=0000=SR-[ADDR],结果正确.(2) 设计一条指令,比较SR内容与[ADDR].若SR<[ADDR],则IP+OFFSET->PC;否则SR+[ADDR]->DR.指令格式:D4 DR SRADDROFFSET设计分析:100:把PC的值(即ADDR的地址)送到AR中101:用MEM->AR将ADDR的值从内存中取出并送到AR中102:利用MEM->Q将[ADDR]的值从内存中取出然后送到Q寄存器中103:SR-Q,并让个标志位接收运算结果,以便根据标志位进行条件转移104:降OFFSET的地址送到AR中并且PC+1,若S=1(即SR<[ADDR]),条件转移到106,否则顺序执行105105:SR>=[ADDR]时,SR+Q->DR,结束106:AR<[ADDR]时转移到此处,计算IP+OFFSET并送到PC中微程序:100H: PC->AR,PC+1->PC: 0000 0E00 A0B5 5402101H: MEM->AR: 0000 0E00 10F0 0002102H: MEM->Q: 0000 0e00 00f0 0000103H: SR-Q:改变标志位:0000 0e01 9200 0088104H:S=1(即SR<[ADDR])时,条件转移到106,PC->AR,PC+1->PC: 0041 83B0 A035 5402105H: SR+Q->DR,CC#=0: 0029 0311 B000 0088106H: IP+MEM->C,CC#=0: 0029 0310 30D6 5000装载微码:A800MOV R1,900MOV R2,7MOV R3,100LDMCRETG800A820mov r1,0002mov [0890],r1nopnopnopretmov r0,1111RetE824D487 0890 00041)RR7 :0001SR(0001)<ADDR(0002)时R0=11112) RR7:0004SR(0004)>ADDR(0002)R8=00063) RR7:0002SR(0002)=ADDR(0002) R8=0004(3) 设计一条指令。
将SR与绝对地址ADDR单元内容比较,如果SR<[ADDR],则[ADDR]-SR->[ADDR],否则,[ADDR]+SR->[ADDR]。
指令格式:D4 0 SRADDR设计分析:先取出[ADDR]中的值,然后用SR-[ADDR]->Q来计算二者的差值,并利用运算所得的标志位判断比较二者的大小以进行条件转移:当S=1时,说明SR<[ADDR],程序跳转执行[ADDR]-SR->Q,然后将Q的值写回[ADDR];否则,顺序执行[ADDR]+SR->Q,并将Q的值写回[ADDR]中。
微程序:100H: PC->AR, 0000 0E00 90B0 5002 101H: MEM->AR: 0000 0E00 10F0 0002 102H: SR-MEM->Q,接受标志: 0000 0E01 01D0 0080 103H: S=1(即SR<[ADDR])时,条件转移到106: 0041 43B0 9080 0000 104H:SR+MEM->Q,转移到105: 0041 8310 00D0 0080 105H: MEM-SR->Q: 0000 0E00 02D0 0080 106H: Q->MEM,CC#=0: 0029 0300 1020 0010 加载微程序:E900 输入以上微码(2) 加载到微控存程序段微码存放在900H(或某内存单元)开始的内存单元中>A8000800:MOV R1,900 ;微码在内存中的首地址0802:MOV R2,7 ;共9条微指令0804:MOV R3,100 ;微码在微控存中的首地址0806:LDMC ;加载微码指令0807:RET0808:>G800 ;加载微指令到控制存储器(3) 运行程序段>A820MOV R1,01 ;R1是指令中的SR,用它和DATA比较MOV R2,02MOV [082A],R2NOPNOPNOPNOPRET>E826输入以下内容:D401 082A(4) 运行结果>G820 ;运行程序结果:1.(SR=01)<([ADDR]=02)时[ADDR]=00012. >E8210002(SR=02)=([ADDR]=02)时[ADDR]=0004(4)设计一条条件转移指令。
将SR与内存单元DA TA的值进行比较,1)如果SR<DATA,则DATA+SR->DR,2)如果SR≥DA TA,则ADDR->PC指令格式:D4 DR SRDATAADDR设计分析:一开始要将PC即DA TA的地址送到AR,并PC+1->PC,因为两种情况下PC都至少要指向第三行ADDR处。
从存储器中取出DA TA的值,把SR和DA TA的值相减,让各个标志位接收运算结果,并根据标志位S的值判断条件转移,同时要再将PC 即ADDR的地址送到AR中并PC+1->PC1)当S=1时,SR<DA TA,转移到105去执行SR+DA TA->DR2)否则,SR≥DA TA,顺序执行ADDR->PC微程序100H: PC->AR,PC+1->PC: 0000 0E00 A0B5 5402101H: mem->Q: 0000 0e00 00f0 0000103H: SR-Q:改变标志位:0000 0e01 9200 0088104H:S=1(即SR<[ADDR])时,条件转移到105,PC->AR,PC+1->PC: 0041 43B0 A035 5402104H:MEM->PC,CC#=0: 0029 0300 30F0 5000a8105H:SR+Q->DR,CC#=0: 0029 0311 B000 0088(2) 加载到微控存程序段微码存放在900H(或某内存单元)开始的内存单元中>A8000800:MOV R1,900 ;微码在内存中的首地址0802:MOV R2,6 ;共6条微指令0804:MOV R3,100 ;微码在微控存中的首地址0806:LDMC ;加载微码指令0807:RET0808:>G800 ;加载微指令到控制存储器(3) 运行程序段>A820MOV R1,01 ;R1是指令中的SR,用它和DATA比较NOPNOPNOPRET>A82AMOV R8,10F0 ;大于等于时,将会跳到82A执行这条赋值指令RET>E822输入以下内容:D421 0088 082A(4) 运行结果>G820 ;运行程序结果:1.SR(0001)<DA TA(0088)时DR(R2)=00892.>E8210001:0088SR(0088)=DA TA(0088)时R8=10F0>E8210088:0099Sr(0099)>DA TA(0088)时R8=10F0(5)把用绝对地址表示的内存单元ADDR1的内容与内存单元ADDR2的内容相加,结果存到ADDR1单元中。
一. 实验器材TEC-2实验计算机、电脑各一台二. 实验分析与设计1. 指令格式指令格式:D4XXADDR1ADDR22. 指令功能功能:[ADDR1] + [ADDR2] →[ADDR1]3. 设计分析1)PC加1后不送入PC,而是直接存入AR中,这样即可以通过AR逐步取出ADDR2中的内容到Q 中暂时存放,而PC的值并不发生改变;2)将PC送到AR,这次PC指向的是ADDR1的地址,即向AR中送入ADDR1的地址,然后PC自加1送入PC中,然后逐步取出ADDR1指向的内存中的数据;3)再将PC加1,并且不将PC送到AR中,以免覆盖之前AR中ADDR1的地址,此操作用于跳出该指令;4)将2)中取出数据Q中的相加后送到Q;5)将Q中的数据送到AR指向的内存中,即ADDR1;4. 微程序100:PC+1→AR:0000 0E00 90B5 5402101: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→AR:0000 0E00 10F0 0002 105:PC+1→PC: 0000 0E00 A0B5 5400 106:MEM+Q→Q:0000 0E01 00E0 0000 107:Q→MEM,CC#=0:0029 0300 1020 00105. 加载到微控存程序段说明:微码存放在900H(或某内存单元)开始的内存单元中>A800↙0800:MOV R1,900 ;微码在内存中的首地址0802:MOV R2,8 ;微指令条数0804:MOV R3,100 ;微码在微控存中的首地址0806:LDMC ;加载微码指令0807:RET0808:6. 运行程序段>A820↙0820:MOV R0,00110822:MOV [0890],R00824:MOV [0891],R00826:NOP0827:NOP0828:NOP0829:RET>E826↙然后输入以下内容:D400 0890 08917. 运行结果>G820↙用D命令查看运算结果>D890↙则屏幕显示0890:0022 0011•(6) 设计一条半字交换指令指令格式:D8 DR 02. 指令功能DR(I15-I8)与DR(I7-I0)的内容互换3. 设计分析1)将DR的内容送到Q寄存器中,并启用4号命令,因为预备循环8次,所以下地址字段要写7;2)用8号命令重复循环,让Q和DR中的数据联合左移8次,Q中的高8位作为填充移入到DR的第八位,就相当于完成了DR中数据高低位的交换;3)循环结束后,顺序执行.4. 微程序110:DR→Q,4#:0001 C400 8030 0008111:R0Q→R0Q(联合左移),8#:0000 0806 E030 0208112:CC#: 0029 0300 9030 00085. 加载到微控存程序段说明:微码存放在900H(或某内存单元)开始的内存单元中>A800↙0800:MOV R1,900 ;微码在内存中的首地址0802:MOV R2,3 ;微指令条数0804:MOV R3,110 ;微码在微控存中的首地址0806:LDMC ;加载微码指令0807:RET0808:6. 运行程序段>A820↙0820:MOV R0,80F00822:NOP0824:N0P0825:NOP0827:NOP0828:RET>E822↙然后输入以下内容:D8007. 运行结果>G820↙用D命令查看运算结果>R↙则屏幕显示(7)设计一条指令,实现的功能是:当DR=SR时,原PC(IP)+OFFSET→PC;当DR<SR时,ADDR→PC,否则,顺序执行下条汇编指令。