计算机组成原理课程设计微程序报告
计算机组成原理课程设计报告-微程序设计

窊大的计算机学院的学弟学妹们,你们师哥呕心沥血的一个月,终于把计算机最棘手的一门实验搞定了---微程序设计以下是我汗水的结晶,现传在网上,供你们借鉴,用到此文档的童靴,赶紧的膜拜感激吧!真羡慕你们可以有这么慷慨的学长,处处为你们着想。
你说我的学长学姐们怎么就没有人传一份呢?O(∩_∩)O哈哈~姓名: [请输入姓名]联系电话: [请输入联系电话]目录1 课程设计的目的和要求 (1)1.1课程设计目的 (1)1.2 课程设计的要求 (1)2 实验设备 (1)3 实验分析 (1)3.1 指令译码电路分析 (1)3.2 微地址形成分析 (2)3.3 时序电路分析 (4)3.4 运算器单元分析 (6)3.5 寄存器单元分析 (7)3.6 微控器电路分析 (8)3.7 设计内容分析 (10)4 实验设计 (11)4.1 微程序控制电路 (11)4.2 微指令格式 (13)4.3 指令功能类别 (13)4.4 微程序流程总框架 (14)5 微程序详细设计 (16)5.1 微程序流程框架 (16)5.2 控制台流程 (17)5.3 每条指令的详细设计 (19)6 机器指令程序 (25)6.1 程序流程图 (25)6.2 程序助记符形式 (26)6.3 机器指令程序 (26)6.4 程序的CPI (27)7 实验步骤 (28)7.1线路连接图 (28)7.2 程序微代码表 (29)心得体会 (31)参考文献 (32)1 课程设计的目的和要求1.1课程设计目的在掌握部件单元电路实验的基础上,进一步将其组成系统构造一台基本模型计算机。
通过一个完整的8位指令系统结构(ISA)的设计和实现,加深对计算机组成原理课程内容的理解,建立起整机系统的概念,掌握计算机设计的基本方法,培养学生科学的工作作风和分析、解决实际问题的工作能力。
1.2 课程设计的要求要求综合运用计算机组成原理、数字逻辑和汇编语言等相关课程的知识,理解和熟悉计算机系统的组成原理,掌握计算机主要功能部件的工作原理和设计方法,掌握指令系统结构设计的一般方法,掌握并运用微程序设计(Microprogramming)思想,在设计过程中能够发现、分析和解决各种问题,自行设计自己的指令系统结构(ISA),并编写相应的微程序,具体上机调试掌握整机概念。
计算机组成原理-微程序控制器实验报告

计算机组成原理实验之微程序控制器实验一、实验目的1.掌握时序发生器的组成原理。
2.掌握微程序控制器的组成原理。
二、实验内容1.实验电路(1)时序发生器电路本实验所用的时序电路见图4.1。
电路由一个500KHz晶振、2片GAL22V10、一片74LS390组成,可产生两级等间隔时序信号T1-T4、W1-W3,其中一个W由一轮T1-T4组成,相当于一个微指令周期或硬连线控制器的一拍,而一轮W1-W3可以执行硬连线控制器的一条机器指令。
另外,供数字逻辑实验使用的时钟由MF经一片74LS390分频后产生。
图4.1 时序信号发生器(2)微程序控制器电路图4.2微程序控制器电路微地址转移逻辑表达式:A5=D5=μA5;A4=D4=C•P2+μA4;A3=D3=IR7•P1+μA3;A2=D2=IR6•P1+SWC•P0+μA2;A1=D1=IR5•P1+SWB•P0+μA1;A0=D0=IR4•P1+SWA•P0+μA0。
2.一些关键技术(1)微指令格式图4.3微指令格式(3)上述8条指令的微程序流程图如图4.4所示图4.4微程序流程图(4)微程序代码表表4-2微程序代码表微指令KT RRF WRF RRM WRM PR当前微地址00 0C 1E 06 07 0B 1D 0D 0E 0A 02 03 09 04 05 08 0F 下一微地址08 1E 06 07 1E 1D 0D 0E 1D 02 03 02 04 05 04 0F 10P0 1 . . . . . . . . . . . . . . . .P1 . . . . . . . . . . . . . . . . 1P2 . . . . . . . . . . . . . . . . .备用. . . . . . . . . . . . . . . . .TJ . 1 . . 1 1 . 1 1 . 1 . 1 . 1 . .LDIR . . . 1 . . . 1 . . . . . . . . 1PC+1 . . . . . . . . . . . . . . . . .LDPC# . 1 . . . 1 . . . . . . . . . 1AR+1 . . . . . . . . . . . 1 . . 1 . .LDAR# . 1 . . . 1 . . . 1 . . 1 . . . . LDDR1 . . . . . . . . . . . . . . . . . LDDR2 . . . . . . . . . . . . . . . . . LDRi . . . . . . . . 1 . . . . . . . .SW_BUS# . 1 1 . . 1 1 . 1 1 . . 1 1 . 1 . RS_BUS# . . . . 1 . . . . . . . . . . . . ALU_BUS# . . . . . . . . . . . . . . . . . RAM_BUS# . . . . . . . . . . 1 . . . . . . CER# . . . 1 . . . 1 . . . . . . . . 1 CEL# . . 1 . . . 1 . . . 1 . . 1 . . . LR/W# . . 0 . . . 0 . . . 1 . . 0 . . . Cn# . . . . . . . . . . . . . . . . .M . . . . . . . . . . . . . . . . .S0 . . . . . . . . . . . . . . . . .S1 . . . . . . . . . . . . . . . . .S2 . . . . . . . . . . . . . . . . .S3 . . . . . . . . . . . . . . . . .表4-2微程序代码表(续)微指令ADD SUB AND STA LDA JC STP OUT当前微地址10 18 11 19 12 1A 13 1B 14 1C 15 1F 16 17 下一微地址18 0F 19 0F 1A 0F 1B 0F 1C 0F 0F 0F 0F 0FP0 . . . . . . . . . . . . . .P1 . . . . . . . . . . . . . .P2 . . . . . . . . . . 1 . . .备用. . . . . . . . . . . . . .TJ . . . . . . . . . . . . 1 1LDIR . . . . . . . . . . . . . .PC+1 . 1 . 1 . 1 . 1 . 1 1 . 1 1LDPC# . . . . . . . . . . . 1 . .AR+1 . . . . . . . . . . . . . .LDAR# . . . . . 1 . 1 . . . . .LDDR1 1 . 1 . 1 . 1 . . . . . . .LDDR2 1 . 1 . 1 . . . . . . . . .LDRi . 1 . 1 . 1 . . . 1 . . . .SW_BUS# . . . . . . . . . . . . . .RS_BUS# . . . . . . 1 . 1 . . 1 . 1ALU_BUS# . 1 . 1 . 1 . 1 . . . . . .RAM_BUS# . . . . . . . . . 1 . . . .CER# . . . . . . . . . . . . . .CEL# . . . . . . . 1 . 1 . . . .LR/W# . . . . . . 0 . 1 . . . .Cn# . . . 1 . . . . . . . . . .M . 0 . 0 . 1 . 0 . . . . . .S0 . 1 . 0 . 1 . 0 . . . . . .S1 . 0 . 1 . 1 . 0 . . . . . .S2 . 0 . 1 . 0 . 0 . . . . . .S3 . 1 . 0 . 1 . 0 . . . . . .注:后缀为#的信号都是低电平有效信号,为了在控存ROM中用“1”表示有效,这些信号在控制器中经过反相后送往数据通路。
《计算机组成原理》微程序设计实验报告

《计算机组成原理》实验报告学院:计算机学院专业:交通工程班级学号:AP0804114学生姓名:黄佳佳实验日期:2010.12.14指导老师:李鹤喜成绩评定:五邑大学信息学院计算机组成原理实验室实验五微程序设计实验一、实验目的:深入掌握微程序控制器的工作原理,学会设计简单的微程序。
二、预习要求:1.复习微程序控制器工作原理;2.复习计算机微程序的有关知识。
三、实验设备:EL-JY-II型计算机组成原理实验系统一台,连接线若干。
四、微程序的设计:1.微指令格式设计微指令编码格式的主要原则是使微指令字短、能表示可并行操作的微命令多、微程序编写方便。
微指令的最基本成份是控制场,其次是下地址场。
控制场反映了可以同时执行的微操作,下地址场指明下一条要执行的微指令在控存的地址。
微指令的编码格式通常指控制场的编码格式,以下几种编码格式较普遍。
1)最短编码格式这是最简单的垂直编码格式,其特点是每条微指令只定义一个微操作命令。
采用此格式的微指令字短、容易编写、规整直观,但微程序长度长,访问控存取微指令次数增多从而使指令执行速度慢。
2)全水平编码格式这种格式又称直接编码法,其特点是控制场每一位直接表示一种微操作命令。
若控制场长n位,则至多可表示n个不同的微操作命令。
采用此格式的微指令字长,但可实现多个允许的微操作并行执行,微程序长度短,指令执行速度快。
3)分段编码格式是将控制场分成几段。
若某段长i位,则经译码,该段可表示2i个互斥的即不能同时有效的微操作命令。
采用这种格式的微指令长度较短,而可表示的微操作命令较多,但需译码器。
2.微程序顺序控制方式的设计微程序顺序控制方式指在一条指令对应的微程序执行过程中,下一条微指令地址的确定方法,又叫后继地址生成方式。
下面是常见的两种。
1)计数增量方式这种方式的特点是微程序控制部件中的微地址中的微地址产生线路主要是微地址计数器MPC。
MPC 的初值由微程序首址形成线路根据指令操作码编码形成。
课程设计报告(计算机组成原理)

课程设计(大作业)报告一、题目分析本次课程设计课题是设计基于微程序控制器的简单计算机设计与实现,宏观上利用CPU、cache、存储器以及一些外设设备来组成一台简单计算机,微观上由运算器、译码电路、和存储器指令用的控制存储器构成。
此次设计要求完成各个指令的格式以及编码的设计,实现各个机器指令的微代码。
本计算机实现的功能有:IN(输入),OUT(输出),ADD(加法),SUB(减法),STA(存数),JMP(跳转)。
设计进行开始,在了解微程序的基本格式, 及各个字段值的作用后, 按微指令格式参照指令流程图,设计出程序以及微程序,将每条微指令代码化,译成二进制代码表,并将二进制代码转换为联机操作时的十六进制格式文件。
根据机器指令系统要求,设计微程序流程图及确定微地址。
设计的加法和减法中, 被加数和被减数都由调试人员输入, 而加数和减数都从存储器中读取. 最后上机调试,各个功能运行结果正确。
二、基本理论计算机原理图(一)、ALU1、功能及组成它是数据加工处理部。
执行所有的算术运算执行所有的逻辑运算,并进行逻辑测试,通常,一个算术操作产生一个运算结果,而一个逻辑操作则产生一个判决。
2、设计图(二)、CPU1、如何执行指令(1)MOV指令a. 程序计数器PC中装入第一条指令地址101b. PC的内容被放到指令总线ABUS上,对指存进行译码,并启动读命令。
c. 从101号地址读出的MOV指令通过指令总线IBUS装入指令寄存器IR。
d. 程序计数器内容加1,变成102,为取下一条指令做好准备。
e. 指令寄存器中的操作码被译码。
f. CPU识别出是MOV指令。
至此,取值周期结束。
g. 操作控制(OC)器送出控制信号到通用寄存器,选择R1作源寄存器,选择R0作目标寄存器。
h. OC送出控制信号到ALU,制定ALU做传送操作。
i. OC送出控制信号,打开ALU输出三态门,将ALU输出送到数据总线DBUS 上。
(任何时候DBUS上只能有一个数据)j. OC送出控制信号,将DBUS上的数据打入到数据缓冲寄存器DR。
计算机组成原理课程设计(微程序)报告

微程序控制器的设计与实现第 1 页共22 页目录5 调试过程 (11)6 心得体会 (12)第 2 页共22 页微程序控制器的设计与实现一、设计目的1)巩固和深刻理解“计算机组成原理”课程所讲解的原理,加深对计算机各模块协同工作的认识2)掌握微程序设计的思想和具体流程、操作方法。
3)培养学生独立工作和创新思维的能力,取得设计与调试的实践经验。
4)尝试利用编程实现微程序指令的识别和解释的工作流程二、设计内容按照要求设计一指令系统,该指令系统能够实现数据传送,进行加、减运算和无条件转移,具有累加器寻址、寄存器寻址、寄存器间接寻址、存储器直接寻址、立即数寻址等五种寻址方式。
第 3 页共22 页三、设计要求1)仔细复习所学过的理论知识,掌握微程序设计的思想,并根据掌握的理论写出要设计的指令系统的微程序流程。
指令系统至少要包括六条指令,具有上述功能和寻址方式。
2)根据微操作流程及给定的微指令格式写出相应的微程序3)将所设计的微程序在虚拟环境中运行调试程序,并给出测试思路和具体程序段4)尝试用C或者Java语言实现所设计的指令系统的加载、识别和解释功能。
5)撰写课程设计报告。
四、设计方案1)设计思路按照要求设计指令系统,该指令系统能够实现数据传送,进行加、减运算和无条件转移,具有累加器寻址、寄存器寻址、寄存器间接寻址、存储器直接第 4 页共22 页寻址、立即数寻址等五种寻址方式。
从而可以想到如下指令:24位控制位分别介绍如下:XRD :外部设备读信号,当给出了外设的地址后,输出此信号,从指定外设读数据。
EMWR:程序存储器EM写信号。
EMRD:程序存储器EM读信号。
PCOE:将程序计数器PC的值送到地址总线ABUS上。
EMEN:将程序存储器EM与数据总线DBUS接通,由EMWR和EMRD决定是将DBUS数据写到EM中,还是从EM读出数据送到DBUS。
IREN:将程序存储器EM读出的数据打入指令寄存器IR和微指令计数器uPC。
计算机组成原理实验报告3--微程序控制器实验

计算机组成原理实验报告3--微程序控制器实验计算机组成原理实验报告3--微程序控制器实验实验三微程序控制器实验⼀.实验⽬的与要求:实验⽬的:1.理解时序产⽣器的原理,了解时钟和时序信号的波形;2.掌握微程序控制器的功能,组成知识;3.掌握微指令格式和各字段功能;4.掌握微程序的编制,写⼊,观察微程序的运⾏,学习基本指令的执⾏流程。
实验要求:1.实验前,要求做好实验预习,并复习已经学过的控制信号的作⽤;2.按练习⼀要求完成测量波形的操作,画出TS1,TS2,TS3,TS4的波形,并测出所⽤的脉冲Ф周期。
按练习⼆的要求输⼊微指令的⼆进制代码表,并单步运⾏五条机器指令。
⼆.实验⽅案:按实验图在实验仪上接好线后,仔细检查⽆误后可接通电源。
1.练习⼀:⽤联机软件的逻辑⽰波器观测时序信号,测量Ф,TS1,TS2,TS3,TS4信号的⽅法如下:(1) TATE UNIT 中STOP开关置为“RUN”状态(向上拨),STEP开关置为“EXEC”状态(向上拨)。
(2) 将SWITCH UNIT 中右下⾓CLR开关置为“1”(向上拨)。
(3) 按动“START”按钮,即可产⽣连续脉冲。
(4)调试”菜单下的“显⽰逻辑⽰波器窗⼝,即可出现测量波形的画⾯。
(5)探头⼀端接实验仪左上⾓的CH1,另⼀端接STATE UNIT中的Ф插座,即可测出时钟Ф的波形。
(6)探头⼀端接实验仪左上⾓的CH2,另⼀端接STATE UNIT中的TS1插座,即可测出TS1的波形;(7)探头⼀端接实验仪左上⾓的CH1,另⼀端接STATE UNIT中的TS2插座,即可测出TS2的波形。
(8)将红⾊探头⼀端接实验仪左上⾓的CH1,另⼀端接STATE UNIT中的TS3插座,即可测出TS3的波形。
(9)将红⾊探头⼀端接实验仪左上⾓的CH1,另⼀端接STATE UNIT中的TS4插座,即可测出TS4的波形。
2.观察微程序控制器的⼯作原理:①关掉实验仪电源,拔掉前⾯测时序信号的接线;②编程写⼊E2PROM 2816A.将编程开关(MJ20)置为PROM(编程)状态;B.将实验板上STATE UNIT 中的STEP置为STEP状态,STOP置为RUN状态,SWITCH UNIT中CLR开关置为1状态;C.在右上⾓的SWITCH UNIT中UA5-UA0开关上置表3.2中某个要写的微地址;D.在MK24-MK1开关上置表3.2中要写的微地址后⾯的24位微代码,24位开关对应24位显⽰灯,开关置为1时灯亮,为0时灯灭;E.启动时序电路,即将微代码写⼊到E2PROM 2816的相应地址对应的单元中;F.重复C-E步骤,将表 3.2的每⼀⾏写⼊E2PROM 2816。
计算机组成原理微程序控制单元实验报告

姓名学号班级******************年级指导教师《计算机组成原理》实验报告实验名称微程序控制单元实验、指令部件模块实验、时序与启停实验实验室实验日期实验七微程序控制单元实验一、实验目的⒈ 掌握时序产生器的组成方式。
⒉ 熟悉微程序控制器的原理。
⒊ 掌握微程序编制及微指令格式。
二、实验原理图7-7-1图 7-7-4 微地址控制原理图微程序控制单元实验原理就是人为的给出一条微指令的地址,人为的去打开测试开关,观察机器怎么运行,打个比方就是我要你执行我下的某条命令,我先告诉你命令写在哪页纸上,你找到纸后,分析命令是什么之后再去执行。
观察机器微程序控制器的组成见图7-1-1 ,微地址的打入操作就是由操作者给出一条微指令的地址(同上面的例子就是仅仅告诉你我让你跑的这条命令写在哪页纸上,而没有告诉你命令的具体内容),不需要做测试去判断这是什么指令,所以由图7-7-1 ,其中微命令寄存器 32 位,用三片 8D 触发器 (273) 和一片 4D(175) 触发器组成。
它们的清零端由CLR来控制微控制器的清零。
它们的触发端CK接 T2,不做测试时 T2 发出时钟信号,将微程序的内容打入微控制寄存器(含下一条微指令地址)。
打入了微指令的地址(即告诉你命令在哪页纸上,此时你需要先找到这页纸并判断命令是叫你做什么,然后执行),进行测试,T4 发出时钟信号,转移逻辑满足条件后输出的负脉冲通过置位端将某一触发器输出端置为“1”状态,按图 7-7-4 所示,微地址锁存器的置位端R 受 SE5~SE0控制,当测试信号 SE5~SE0输出负脉冲时,通过锁存器置位端R将某一锁存器的输出端强行置“1”,实现微地址的修改与转移,此时的地址指的是指令的操作码的地址(即你已经知道命令是跑,此时做的是跑的行为)。
再由数据开关置入微地址的值,再做测试,再跳到指令的操作码的地址准备开始执行指令,这就是微程序控制单元实验的原理。
三、实验连线连接图或“图 7-2-27-2-2 中的 B1、 B7、 B10、 B15,用双头实验导线连接上图中所有标明“”图案的插孔(注:Dais-CMH 的时钟信号以作内部连接)。
计算机组成原理课程设计报告

计算机组成原理课程设计报告一、引言计算机组成原理是计算机科学与技术专业的重要课程之一,通过学习该课程,我们可以深入了解计算机的硬件组成和工作原理。
本次课程设计旨在通过设计一个简单的计算机系统,加深对计算机组成原理的理解,并实践所学知识。
二、设计目标本次课程设计的目标是设计一个基于冯·诺依曼体系结构的简单计算机系统,包括中央处理器(CPU)、存储器、输入输出设备等。
通过该设计,我们可以掌握计算机系统的基本组成和工作原理,加深对计算机组成原理的理解。
三、设计方案1. CPU设计1.1 硬件设计CPU由控制单元和算术逻辑单元组成。
控制单元负责指令的解码和执行,算术逻辑单元负责算术和逻辑运算。
1.2 指令设计设计一套简单的指令集,包括算术运算指令、逻辑运算指令、数据传输指令等。
1.3 寄存器设计设计一组通用寄存器,用于存储数据和地址。
2. 存储器设计2.1 主存储器设计一块主存储器,用于存储指令和数据。
2.2 辅助存储器设计一个简单的辅助存储器,用于存储大容量的数据。
3. 输入输出设备设计3.1 键盘输入设备设计一个键盘输入设备,用于接收用户的输入。
3.2 显示器输出设备设计一个显示器输出设备,用于显示计算结果。
四、实施步骤1. CPU实现1.1 根据CPU的硬件设计,搭建电路原型。
1.2 编写控制单元的逻辑电路代码。
1.3 编写算术逻辑单元的逻辑电路代码。
1.4 进行仿真验证,确保电路的正确性。
2. 存储器实现2.1 设计主存储器的存储单元。
2.2 设计辅助存储器的存储单元。
2.3 编写存储器的读写操作代码。
2.4 进行存储器的功能测试,确保读写操作的正确性。
3. 输入输出设备实现3.1 设计键盘输入设备的接口电路。
3.2 设计显示器输出设备的接口电路。
3.3 编写输入输出设备的读写操作代码。
3.4 进行输入输出设备的功能测试,确保读写操作的正确性。
五、实验结果与分析通过对CPU、存储器和输入输出设备的实现,我们成功设计了一个基于冯·诺依曼体系结构的简单计算机系统。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
微程序控制器的设计与实现
目录
1设计目的 (3)
2设计内容 (3)
3具体要求 (3)
4设计方案 (3)
5 调试过程 (11)
6 心得体会 (12)
微程序控制器的设计与实现
一、设计目的
1)巩固和深刻理解“计算机组成原理”课程所讲解的原理,加
深对计算机各模块协同工作的认识
2)掌握微程序设计的思想和具体流程、操作方法。
3)培养学生独立工作和创新思维的能力,取得设计与调试的实
践经验。
4)尝试利用编程实现微程序指令的识别和解释的工作流程
二、设计内容
按照要求设计一指令系统,该指令系统能够实现数据传送,进行加、减运算和无条件转移,具有累加器寻址、寄存器寻址、寄存器间接寻址、存储器直接寻址、立即数寻址等五种寻址方式。
三、设计要求
1)仔细复习所学过的理论知识,掌握微程序设计的思想,并根
据掌握的理论写出要设计的指令系统的微程序流程。
指令系
统至少要包括六条指令,具有上述功能和寻址方式。
2)根据微操作流程及给定的微指令格式写出相应的微程序
3)将所设计的微程序在虚拟环境中运行调试程序,并给出测试
思路和具体程序段
4)尝试用C或者Java语言实现所设计的指令系统的加载、识
别和解释功能。
5)撰写课程设计报告。
四、设计方案
1)设计思路
按照要求设计指令系统,该指令系统能够实现数据传送,进行加、减运算和无条件转移,具有累加器寻址、寄存器寻址、寄存器间接寻址、存储器直接寻址、立即数寻址等五种寻址方式。
从而可以想到如下指令:24位控制位分别介绍如下:
XRD :外部设备读信号,当给出了外设的地址后,输出
此信号,从指定外设读数据。
EMWR:程序存储器EM写信号。
EMRD:程序存储器EM读信号。
PCOE:将程序计数器PC的值送到地址总线ABUS上。
EMEN:将程序存储器EM与数据总线DBUS接通,由EMWR 和EMRD决定是将DBUS数据写到EM中,还是
从EM读出数据送到DBUS。
IREN:将程序存储器EM读出的数据打入指令寄存器IR 和微指令计数器uPC。
EINT:中断返回时清除中断响应和中断请求标志,便于下次中断。
ELP: PC打入允许,与指令寄存器的IR3、IR2位结合,控制程序跳转。
MAREN:将数据总线DBUS上数据打入地址寄存器MAR。
MAROE:将地址寄存器MAR的值送到地址总线ABUS上。
OUTEN:将数据总线DBUS上数据送到输出端口寄存器OUT 里。
STEN:将数据总线DBUS上数据存入堆栈寄存器ST中。
RRD:读寄存器组R0-R3,寄存器R?的选择由指令的最低两位决定。
RWR:写寄存器组R0-R3,寄存器R?的选择由指令的最低两位决定。
CN:决定运算器是否带进位移位,CN=1带进位,CN=0不带进位。
FEN:将标志位存入ALU内部的标志寄存器。
X2:X1:X0: X2、X1、X0三位组合来译码选择将数据送到DBUS
WEN:将数据总线DBUS的值打入工作寄存器W中。
AEN:将数据总线DBUS的值打入累加器A中。
S2:S1:S0: S2、S1、S0三位组合决定ALU做何种运算。
模型机的寻址方式分五种:
累加器寻址:操作数为累加器A,例如“CPL A”是将累
加器A值取反,还有些指令是隐含寻址累加器
A,例如“OUT”是将累加器A的值输出到输出
端口寄存器OUT。
寄存器寻址:参与运算的数据在R0-R3的寄存器中,例如
“ADD A,R0”指令是将寄存器R0的值加上
累加器A的值,再存入累加器A中。
寄存器间接寻址:参与运算的数据在存储器EM中,数据的地
址在寄存器R0-R3中,例如“MOV A,@R1”
指令是将寄存器R1的值做为地址,把存储器
EM中该地址的内容送入累加器A中。
存储器直接寻址:参与运算的数据在存储器EM中,数据的地
址为指令的操作数。
例如“AND A,40H”指
令是将存储器EM中40H单元的数据与累加器
A的值做逻辑与运算,结果存入累加器A。
立即数寻址:参与运算的数据为指令的操作数。
例如“SUB
A,#10H”是从累加器A中减去立即数10H,
结果存入累加器A。
2)程序清单
MOV A,#01H 立即数寻址,传送指令,将01h传送给累加器a
LOOP:
MOV R0,#01H 立即数寻址,将01h传送给r0
ADD A,R0 寄存器寻址,加法操作,将r0的值与a相加,结果存入a中SUB A,@R0 寄存器间接寻址,减法将R0的值当作是内存地址,再将此地址的值与A相减,最后放入A。
ADD A,01H 存储器直接寻址,寻找出01地址中的值,
用A和此地址的值相加,最后放入A
CPL A 累加器寻址,将a的值取反
OUT
JMP LOOP //无条件跳转,跳转到LOOP
3)指令流程图
MOV A,#01H
MOV R0,#01H
ADD A,R0
SUB A,@R0
ADD,02H
CPLAOUT
JMP LOOP
五、调试过程
1)指令系统设计
本指令系统涉及8条指令,分别完成数据传送,进行加、减和无条件转移,具有累加器寻址、寄存器寻址、寄存器间接寻址、存储器直接寻址、立即数寻址等五种寻址方式。
具体指令设计如下:
2)微程序设计
将窗口切换到“uM微程序”窗口,设计每条指令的微程序。
每个程序开始要执行的第一条微指令应是取指操作,因为程序复位后,PC和uPC的值都为0,所以微程序的0地址处就是程序执行的第一条取指的微指令。
取指操作要做的工作是从程序存储器EM中读出下条将要执行的指令,并将指令的机器码存入指令寄存器IR和微程序计数器uPC中,读出下条操作的微指令。
取指设计如下(CBFFFF):
MOV A,#01H 这条指令是把立即数1从存储器EM中取出,放入累加器A 中。
微程序设计如下(C7FFF7):
MOV R0,#01H这条指令是把立即数1从存储器EM中取出,放入寄存器R0中。
微程序设计如下(C7FBFF);
ADD A,R0这条指令是寄存器寻址,将R0的值取出放入W中与A相加,再将结果放入A。
它由三个指令周期。
微程序设计如下:
第一步,把R0 的值放入累加器W中
第二步,从D中读出A的值并与W相加,结果放到A中
SUB A,@R0 这条指令是寄存器间接寻址,将以R0为地址的数值取出放入W 中与A相减,再将结果放入A。
它由四个指令周期。
微程序设计如下:
第一步,把R0 的值放入地址寄存器MAR中
第二步
从MAR中读出以R0为地址的值放入累加器W中
第三步将A的值与W值相减
CPL A 将A的值取反在存入A中
OUT 将累加器的值送到输出端并输出:
JMP LOOP
六、心得体会
这次微程序程序设计主要是要求我们设计一个指令系统,其中包含加,减,数据传送和无条件转移指令操作,具有累加器寻址、寄存器寻址、寄存器间接寻址、存储器直接寻址、立即数寻址等五种寻址方式。
在通过设计的过程中,大概理解了各种指令操作和寻址方式。
学会了能灵活理解他们之间的关系,包括像操作与寻址方式之间的搭配等。
在这一周半的课程设计中,通过指令系统中微程序的设计,了解了24位指令字的具体含义,通过对各位的选择来确定所选择的操作,这样既方便理解,也方便操作。
在这次课程设计中,遇到了很多问题,像对各位数所代表的具体含义仍然不是十分清楚,在设计微程序的时候,对每一条指令所用的cpu周期不能灵活掌握,希望在以后的学习中可以对其进行更加深入的理解。