微程序控制和设计知识分享

合集下载

微程序控制器的设计与实现

微程序控制器的设计与实现

微程序控制器的设计与实现一、引言微程序控制器是一种用于指令执行的高级控制器,它通过微指令序列来控制计算机的操作。

本文将介绍微程序控制器的设计与实现方法,包括微程序的设计原理、控制存储器的组织结构、微指令的编码和执行过程等。

二、微程序设计原理微程序设计是一种将指令的操作码映射为一系列微指令的方法。

每个微指令对应着计算机的一条基本操作,例如存储器读取、算术运算等。

微指令序列通过微程序计数器来控制,实现指令的顺序执行。

三、控制存储器的组织结构控制存储器是存储微指令序列的重要组成部分。

它通常采用的是RAM (Random Access Memory)的结构,以实现对微指令的随机读取。

控制存储器的地址由微程序计数器提供,通过地址译码器来选择对应的微指令。

四、微指令的编码微指令的编码是将指令的操作码映射为一系列控制信号的过程。

常见的编码方式有水平编码和垂直编码两种。

水平编码将每个控制信号独立编码,占用较多的位数;垂直编码则将多个控制信号合并编码,占用较少的位数。

根据具体的设计需求,可以选择适合的编码方式。

五、微指令的执行过程微指令的执行过程包括指令的获取、解码和执行三个阶段。

指令的获取是通过微程序计数器提供的地址从控制存储器中读取相应的微指令;指令的解码是将微指令中的控制信号解码为具体的操作;指令的执行是根据解码后的控制信号执行相应的操作,例如读取存储器、进行算术运算等。

六、实现微程序控制器的步骤实现微程序控制器的步骤包括微指令的设计、控制存储器的编程、控制信号的生成等。

首先,根据指令集的要求设计微指令的格式和编码方式;然后,根据微指令的格式编程控制存储器,将微指令序列存储其中;最后,根据微指令的编码生成相应的控制信号,控制计算机的操作。

七、实例分析以一个简单的加法指令为例,介绍微程序控制器的实现过程。

首先,设计微指令的格式,包括操作码、源操作数、目的操作数等字段;然后,编程控制存储器,将微指令序列存储其中;最后,根据微指令的编码生成相应的控制信号,例如读取源操作数、读取目的操作数、进行加法运算等。

第5章微程序控制器的设计方法(5.1--5.2)

第5章微程序控制器的设计方法(5.1--5.2)

表5.5 非常简单CPU的微程序控制器优化后的水平型微指令
表5.6 非常简单CPU的控制信号值
结论:
对比表5.6和逻辑图4.18所示的电路可知,水 平型微指令能减少产生控制信号所需的逻辑,对 于DRLOAD和MEMBUS信号来说这种减少尤其 明显。水平型微指令直接在此产生(见表5.6), 硬布线分别用 DRLOAD=FETCH2+ADD1+AND1和 MEMBUS= FETCH2+ADD1+AND1两个逻辑电 路生成(见图4.18),这就增加了硬件的开销。
信号使CPU执行期望的微操作,从而实现正确的 顺序取指、译码和执行处理器ISA的指令。
5.1 微程序控制器设计基础
要学会用微程序的方法设计CPU的控 制器,首先要知道微程序控制器组成的逻 辑框图,然后理解这个逻辑框图的物理意 义。这样较容易地掌握用微程序的方法设 计CPU控制器的全过程。
5.1.1 典型微程序控制器的组成
3.控制信号的直接生成
从控存中直接输出非常简单CPU所需要的全 部控制信号(共12个)。然后利用这些控制信号 直接控制有关的部件。例如,状态FETCH1的 RTL代码如下:
FETCH1:AR←PC
根据非常简单CPU图4.14所示,要完成 AR←PC,就需要有PCBUS和ARLOAD两控制信 号才能实现这一功能。从表5.9可知,在FETCH1 状态中只有PCBUS和ARLOAD为逻辑值“1” (真或发生)。其余控制信号的逻辑值均为“0” (假、无发生)。同理可分析其余的状态。
请注意:对于“控制信号值直接存贮”的设 计方法,只有ARLOAD、ACLOAD、DRBUS这 三个信号是需要由组合逻辑电路产生的(见表 5.6)。
2. 用垂直型微指令生成微操作

计算机组成原理(3.6微程序控制器设计)

计算机组成原理(3.6微程序控制器设计)

微地址形成表:
SC=0010 按操作码分支(4路)
表内单元地址 (断定依据): 单元内容 (微地址)
MOV
03H 取源数、目的地

0CH 取源数、目的数
3) 微程序事先存放在控制存储器中,执行机 器指令时再取出。
引入了程序技术,使设计规整; 优点
引入了存储逻辑,使功能易于扩展。
哈尔滨工程大学计算机科学与技术学院 姚爱红 2010秋季学期
2
2. 逻辑组成(框图)
IR PSW PC
微地址 形成电路
微地址寄存器 µAR
微命令序列
译码器 微命令字段 微地址字段 µIR
(1)一级功能转移 各操作码的位置、位数固定,一次转换成功。 入口地址=页号,操作码
哈尔滨工程大学计算机科学与技术学院 姚爱红 2010秋季学期
19
例. 机器指令1
0F(8位)
入口地址=000FH 0页
机器指令2
10(8位)
入口地址=0010H
CM
000F 无条件转 微地址1 0010 无条件转 微地址2
微地址字段:
(顺序控制字段) 提供微地址的给定部分。
哈尔滨工程大学计算机科学与技术学院 姚爱红 2010秋季学期
4
2. 逻辑组成(续)
(3)微地址形成电路
功能: 提供两类微地址。 微程序入口地址:由机器指令操作码形成。 后续微地址:由微地址字段、现行微地 址、运行状态等形成。
哈尔滨工程大学计算机科学与技术学院 姚爱红 2010秋季学期
微指令中通常只有个别位采用直接控制法。
哈尔滨工程大学计算机科学与技术学院 姚爱红 2010秋季学期
13
(2)分段直接编译法 微命令由字段编码直接给出。

计组-微程序控制器设计报告

计组-微程序控制器设计报告

实验10 微程序控制器设计实验报告姓名:X XX 学号:X XX 专业:计算机科学与技术课程名称:计算机组成同组学生姓名:无实验时间:实验地点:指导老师:XXX一、实验目的和要求1.掌握微程序控制原理2.掌握微程序控制器的设计方法二、实验内容和原理实验内容:1.设计一个微程序控制单元并进行仿真实验原理:1.微程序的原理:●在多时钟CPU设计的实验中,所有的控制信号均根据操作码以及所处的时钟周期,由组合逻辑的方式产生各个状态下的控制信号。

●微程序是将CPU每条指令和所有时钟的控制信号,预先以二进制形式写在控制存储器中。

●多时钟周期的每个状态都对应一组控制信号。

●每条指令都有若干个状态对应若干组控制信号。

●微指令按一定顺序存放在控制存储器中。

2.工作原理图3.微程序控制逻辑图4.微指令及其控制码5.控制存储器内容三、主要仪器设备1.Spartan-III开发板1套2.装有ISE的PC机1台四、操作方法与实验步骤实验步骤:1.创建新的工程和新的源文件2.编写verilog代码(包括以下模块top,MicroCtrl,pbdebounce,time_1ms)3.对程序进行波形仿真4.编写UCF引脚文件,通过编译。

5.. 生成FPGA代码,下载到实验板上并调试,看是否与实现了预期功能实验代码:Top.vmodule top(input system_clk,input clk_i,input rst_i,output [3:0] anode4,output [7:0] segment4,output reg [7:0] led);wire clk;wire rst;reg [2:0] pc;reg [5:0] opcode;wire [17:0] rom_out;pbdebounce p0(system_clk, clk_i, clk);pbdebounce p1(system_clk, rst_i, rst);initial beginpc=0;endalways @ (posedge clk or posedge rst) beginif (rst==1)pc=0;else if (rom_out[1:0]==0)pc=pc+1;endalways @ * begincase (pc)0: opcode = 6'b000000; //R-type1: opcode = 6'b100011; //LW2: opcode = 6'b101011; //SW3: opcode = 6'b000100; //BEQ4: opcode = 6'b000010; //Jdefault: opcode = 6'b000000;endcaseendMicroCtrl MicroCtrl(clk, rst, opcode, rom_out);display display(system_clk, rom_out[17:2], anode4, segment4); always @ * beginled[1:0] = rom_out[1:0];led[2]=0;case (pc)0: led[7:3] = 5'b10000; //R-type1: led[7:3] = 5'b01000; //LW2: led[7:3] = 5'b00100; //SW3: led[7:3] = 5'b00010; //BEQ4: led[7:3] = 5'b00001; //Jdefault: led[7:3] = 5'b11111;endcaseendendmodulempc=0;endalways @ * begincase (mpc)0: rom_out={16'h0851,2'b11};1: rom_out={16'h1800,2'b01};2: rom_out={16'h3000,2'b10};3: rom_out={16'h00C0,2'b11};4: rom_out={16'h0300,2'b00};5: rom_out={16'h00A0,2'b00};6: rom_out={16'hA000,2'b11};7: rom_out={16'h0500,2'b00};8: rom_out={16'h6006,2'b00};9: rom_out={16'h0009,2'b00};default: rom_out=0;endcaseendalways @ (posedge clk or posedge rst) begin if (rst==1)mpc=0;else begincase (rom_out[1:0])0: mpc=0;3: mpc=mpc+1;1: case (opcode)6'b000000: mpc=6; //R-type6'b100011: mpc=2; //LW6'b101011: mpc=2; //SW6'b000100: mpc=8; //BEQ6'b000010: mpc=9; //Jdefault: mpc=0;endcase2: case (opcode)6'b100011: mpc=3; //LW6'b101011: mpc=5; //SWdefault: mpc=0;endcaseendcaseendendendmoduleDisplay.vmodule display(input wire clk,input wire [15:0] digit,//显示的数据output reg [ 3:0] node, //4个数码管的位选output reg [ 7:0] segment);//七段+小数点reg [3:0] code = 4'b0;reg [15:0] count = 15'b0;always @(posedge clk) begincase (count[15:14])//与(count[1:0])的不同?起到分频的作用2'b00 : beginnode <= 4'b1110;code <= digit[3:0];end2'b01 : beginnode <= 4'b1101;code <= digit[7:4];end2'b10 : beginnode <= 4'b1011;code <= digit[11:8];end2'b11 : beginnode <= 4'b0111;code <= digit[15:12];endendcasecase (code)4'b0000: segment <= 8'b11000000;4'b0001: segment <= 8'b11111001;4'b0010: segment <= 8'b10100100;4'b0011: segment <= 8'b10110000;4'b0100: segment <= 8'b10011001;4'b0101: segment <= 8'b10010010;4'b0110: segment <= 8'b10000010;4'b0111: segment <= 8'b11111000;4'b1000: segment <= 8'b10000000;4'b1001: segment <= 8'b10010000;4'b1010: segment <= 8'b10001000;4'b1011: segment <= 8'b10000011;4'b1100: segment <= 8'b11000110;Timer_1ms.vmodule timer_1ms(input wire clk,output reg clk_1ms);reg [15:0] cnt;initial begincnt [15:0] <=0;clk_1ms <= 0;endalways@(posedge clk)if(cnt>=25000) begincnt<=0;clk_1ms <= ~clk_1ms;endelse begincnt<=cnt+1;endendmodule五、实验结果与分析1. 仿真结果如下(仿真时间较长,分2张图展示):Ox00c00 0x0300 2’b003.程序运行成功后,将代码下载到实验板spartan3上验证按动按钮,发现数码管上显示的数值即仿真输出码的[17:2]位,且出现顺序一致,说明程序成功。

微程序控制器的设计与实现

微程序控制器的设计与实现

微程序控制器的设计与实现微程序控制器的设计原理是基于指令的操作码来进行控制的。

在计算机系统中,每个指令都有一个唯一的操作码,微程序控制器根据这个操作码来判断下一步应该执行的动作。

因此,微程序控制器的首要任务是建立一套指令操作码和对应控制动作的映射关系。

微程序控制器的设计可以分为两个阶段,即微程序的编写和微程序控制器的实现。

在微程序编写阶段,需要根据计算机系统的指令集架构和系统的需求来编写每一条指令的微程序。

在微程序控制器的实现阶段,先将每条指令的微程序编码成微指令,然后将这些微指令存储在微程序存储器中。

当执行一条指令时,微程序控制器会根据指令的操作码在微程序存储器中找到对应的微指令,并执行相应的控制动作。

微程序控制器的实现方法有多种,其中最常见的是使用ROM(只读存储器)作为微程序存储器。

ROM的每个地址存储一个微指令,可以根据操作码的位数确定ROM的大小。

此外,还可以使用RAM(随机存储器)作为微程序存储器,以便在微程序运行中修改微指令。

为了提高微程序控制器的执行效率,还可以采用流水线技术,将微程序的执行过程划分为多个阶段,并在流水线中同时执行多条指令的微程序。

微程序控制器的设计与实现对计算机系统的性能有着重要的影响。

首先,微程序控制器可以将指令执行过程分解成多个微指令,使得每个微指令只包含一个简单的控制动作,从而提高了指令执行的精确性和可靠性。

其次,微程序控制器对指令执行的控制粒度更细,可以实现更灵活的指令调度和并行处理,提高了指令级并行性。

此外,微程序控制器还可以根据指令的类型、频率和资源需求等特点,进行自适应的指令调度和资源分配,进一步提高系统的性能。

在评价微程序控制器的效果时,需要考虑其控制精确性、执行效率、资源利用率等方面的指标。

控制精确性是指微程序控制器是否能够准确执行指令的操作,以及是否能够正确处理异常情况和中断请求。

执行效率是指微程序控制器每秒钟能够执行多少条指令,衡量了微程序控制器的性能优劣。

微程序控制器设计

微程序控制器设计

EDA第六次实验日志微程序控制器实验实验预习:1.微程序控制器的组成和工作原理是什么?2.微程序、微指令、微命令之间有什么关系?3.微指令、微程序如何设计与调试?预习解答:1. 微程序控制器的组成和工作原理是什么?微程序控制器的原理图如图所示。

微程序控制器主要由控制存储器、微指令寄存器和地址转移逻辑三大部分组成,其中微指令寄存器分为微地址寄存器和微命令寄存器两部分。

(1)控制寄存器控制寄存器用来存放实现全部指令系统的所有微程序,它是一种只读型存储器。

一旦微程序固化,机器运行时则只读不写。

其工作过程是:读出一条微指令并执行;重复上面动作知道微程序结束。

读出一条微指令并执行微指令的时间总和称为一个微指令周期。

通常在串行方式的微程序控制器中,微指令周期就是只读寄存器是的工作周期。

控制存储器的字长就是微指令字的长度,其存储容量视机器指令系统而定,即取决于微程序的数量。

对控制寄存器的要求是读出周期要短,因此通常采用双极型半导体只读寄存器。

(2)微指令寄存器微指令寄存器用来存放由控制器读出的一条微指令信息。

其中微指令寄存器决定将要访问的下一条微指令的地址,而微命令寄存器则保存一条微指令的操作控制字段和判别测试字段的信息。

(3)地址转移逻辑在一般情况下,微指令由控制存储器读出后直接给出下一条微指令的地址,通常简称为微地址,这个微地址信息就存放在微地址寄存器中。

如果微程序不出现分支,那么下一条微指令的地址就直接由微地址寄存器给出,当程序出现分支时,意味着微程序出现条件转移,在这种情况下,通过判别测试字段P和执行内部的“状态条件”反馈信息,去修改微地址寄存器的内容;并按照改好的内容去读下一条微指令。

地址转移逻辑就承担自动完成修改微地址的任务。

其工作原理分为:一、将程序和数据通过输入设备送入存储器;二、启动运行后,从存储器中取出程序指令送到控制器去识别,分析该指令要求什么事;三、控制器根据指令的含义发出相应的命令(如加法、减法),将存储单元中存放的操作数据取出送往运算器进行运算,再把运算结果送回到存储器指定的单元中;四、运算任务完成后,就可以根据指令将结果通过输出设备输出。

第三章第三讲微程序控制器的微程序设计

第三章第三讲微程序控制器的微程序设计

5 0 0
0 0 0
1 0 0
3 1 0
0 0 0
第 1 条微指令和第 2 条微指令用于完成读取指令,具体操作 功能是: PCAR ,PC+1PC;PC 是 R5,A口 和 B口 均选5, B口内容+1 送 B口;输出A口的内容送AR寄存器。读主存, 读 出内容 IR ; 微指令都是顺序执行,故 2910选 14# 命令。 第 3 条微指令按读出的指令的操作码,形成相应微指令的地 址,读出该条微指令并将其写入微指令寄存器, 2910选 2# 命令, 控制运算器的 I8~I6 选 001 码,保证运算器的各寄存器内容不变 化。 无存储器和IO读写,故/MIO REQ /WE 选 100 码。
SAI8~6 SBI5~3
/MAP MAPROM 指令 操作码 下地址
B口 A口 0SST SSHSCI 0DC2 0DC1
连接 设备
地址总线 指令寄存器 外部总线 标志位电路 开关门 双向三态门 内存储器 开关门 串行接口
地址寄存器
运算器 PC SP
最低 位进 位、 移位 信号
开关门
内部总线
教学计算机的数据通路与微命令的控制作用
. 20 /CE MPROM3 .
20 25 A8
18~16 13~11 D6~D0
A8 A7 ~ A0 25 3~10
.
IRH7 ~ IRH0
.
20 25 3~10 A8 A7 ~ A0 /CE MPROM5 D7~D0 19~15 13~11 B3~B0 A3~A0 20
.
25 3~10 A8 A7 ~ A0 /CE MPROM6 D7~D0 19~15 13~11 SST SSH SCI
控制存储器( ROM)

微程序控制器的设计与实现

微程序控制器的设计与实现

微程序控制器的设计与实现微程序控制器是一种基于微程序的控制器,它通过微指令序列来控制计算机的执行流程。

本文将详细介绍微程序控制器的设计与实现。

一、引言微程序控制器是计算机中重要的控制单元之一,它负责将指令转换为微指令序列,并控制计算机的执行流程。

微程序控制器的设计与实现是计算机体系结构中的关键问题之一,本文将从微程序控制器的设计原理、设计方法和实现步骤等方面进行详细介绍。

二、微程序控制器的设计原理1. 微程序控制器的基本原理微程序控制器是一种通过微指令序列来控制计算机的执行流程的控制器。

它将指令的操作码作为输入,通过查找微程序存储器中的微指令序列,生成控制信号,控制计算机的各个部件进行相应的操作。

2. 微程序控制器的工作原理微程序控制器的工作原理是将指令的操作码作为输入,通过查找微程序存储器中的微指令序列,生成控制信号,控制计算机的各个部件进行相应的操作。

微程序存储器中存储了一系列微指令,每个微指令对应一个操作,通过顺序执行这些微指令,实现对计算机的控制。

三、微程序控制器的设计方法1. 微程序控制器的设计流程微程序控制器的设计流程包括以下几个步骤:(1)确定指令集和操作码:根据计算机的需求确定指令集和操作码。

(2)设计微指令格式:根据指令集和操作码设计微指令的格式,包括操作类型、操作数等。

(3)设计微指令序列:根据指令集和操作码设计微指令序列,确定每个微指令对应的操作。

(4)设计微程序存储器:根据微指令序列设计微程序存储器,将微指令序列存储在微程序存储器中。

(5)生成控制信号:根据微指令序列和输入的操作码,通过查找微程序存储器,生成相应的控制信号。

(6)验证和调试:对设计的微程序控制器进行验证和调试,确保其正常工作。

2. 微程序控制器的设计方法微程序控制器的设计方法包括水平微程序控制器和垂直微程序控制器两种。

(1)水平微程序控制器:水平微程序控制器将微指令序列分为多个水平层次,每个水平层次对应一个微指令。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

微程序控制和设计
成绩:实验报告
计算机组成原理实验
课程名
称:
微程序控制和设计
实验项
目:
姓名:舒鹏
专业:网络工程
班级:11-3
学号:1104020321
计算机科学与技术学院
实验教学中心2013 年 6月 24日
实验项目名称:微程序控制和设计
一、实验目的
综合运用所学计算机原理知识,设计微程序实现题目规定的指令。

二、实验内容
在做综合实验时,可以用COP2000计算机组成原理实验软件输入、修改程序,汇编成机器码并下载到实验仪上,由软件控制程序实现单指令执行、单微指令执行、全速执行,并可以在软件上观察指令或微指令执行过程中数据的走向、各控制信号的状态、各寄存器的值。

COP2000软件的使用方法见第七章“COP2000集成开发环境使用”。

也可以用实验仪自带的小键盘和显示屏来输入、修改程序,用键盘控制单指令或单微指令执行,用LED或用显示屏观察各寄存器的值。

实验仪上的键盘使用方法见第六章“实验仪键盘使用”。

在用微程序控制方式做综合实验时,在给实验仪通电前,拔掉实验仪上所有的手工连接的接线,再用8芯电缆连接J1和J2,控制方式开关拨到“微程序控制”方向。

若想用
COP2000软件控制组成原理实验仪,就要启动软件,并用快捷图标的“设置”功能打开设置窗口,选择实验仪连接的串行口,然后再按“连接COP2000实验仪”按钮接通到实验仪。

微指令格式:
模型机的指令码为8 位,根据指令类型的不同,可以有0 到2 个操作数。

指令码的最低两位用来选择R0-R3 寄存器,在微程序控制方式中,用指令码做为微地址来寻址微程序存储器,找到执行该指令的微程序。

而在组合逻辑控制方式中,按时序用指令码产生相应的控制位。

在本模型机中,一条指令最多分四个状态周期,一个状态周期为一个时钟脉冲,每个状态周期产生不同的控制逻辑,实现模型机的各种功能。

模型机有24 位控制位以控制寄存器的输入、输出,选择运算器的运算功能,存储器的读写。

2)完成对R0,R1,R2,R3这四个寄存器的排序工作,按R0-R3降序排序。

3)排序采用冒泡排序法,分别对于R0和R1,R1和R2,R2和R3,三个关系进行判断。

若一个关系的前者小于后者,则通过stack寄存器交换两者的值,若前者大于后者,则继续进行下一个关系的大小判断。

三个关系依次判断一遍之后,可以保证四个数的最小的数在R3中。

再对于三个关系依次判断一遍之后,可以保证第二小的数在R2中,再对于三个关系依次判断一遍之后,可以保证第三小的数在R1中,此时最大的数就在R0中,排序完成。

4)循环执行了三次,用一个数记住循环计数,这个数存在EM中。

每次执行一次循环之后就减1,当循环计数为0时,程序结束。

指令/微指令表:
指令表
三、实验用设备仪器及材料
COP2000实验仪、导线若干、系统计算机。

四、实验原理
在综合实验中,模型机作为一个整体来工作的,所有微程序的控制信号由微程序存储器uM输出,而不是由开关输出。

在做综合实验之前,先用8芯电缆连接J1和J2,这样实验仪的监控系统会自动打开uM的输出允许,微程序的各控制信号就会接到各寄存器、运算器的控制端口。

此综合实验使用的指令是模型机的缺省指令/微指令系统。

六、实验结果分析
实验1:数据传送实验/输入输出实验
1.在COP2000软件中的源程序窗口输入下列程序
2.将程序另存为EX1.ASM,将程序汇编成机器码,反汇编窗口会显示出程序地址、机器码、反汇编指令。

3.按快捷图标的F7,执行“单微指令运行”功能,观察执行每条微指令时,寄存器的输入/输出状态,各控制信号的状态,PC及uPC如何工作。

给出EX1.ASM程序跟踪结果。

实验2:数据运算实验(加/减/与/或)
1.在COP2000软件中的源程序窗口输入下列程序
2.将程序另存为EX2.ASM,将程序汇编成机器码,反汇编窗口会显示出程序地址、
机器码、反汇编指令。

3.按快捷图标的F7,执行“单微指令运行”功能,观察执行每条微指令时,寄存器的输入/输出状态,各控制信号的状态,PC及uPC如何工作。

给出EX2.ASM程序跟踪结果。

4.在了解数据运算的原理,可以加上一些数据传输指令给累加器A或寄存器R?赋值,再运算,并观察运算结果。

练习:综合运用实验1与实验2的相关功能操作完成任务。

将立即数44H,77H,33H,55H分别送入寄存器R0,R1,R2,R3中,立即数11H 送入累加器A中,并完成下面的运输操作:
MOV R0, #44H
MOV R1, #77H
MOV R2, #33H
MOV R3, #55H
MOV A, #11H
ADDC A, R1
SUB A, @R1
AND A, #55H
OR A, 02H
IN
OUT
END
1)按快捷图标的F7,执行“单微指令运行”功能,观察执行下面每条微指令时,寄存器的输入/输出状态,各控制信号的状态,PC及uPC如何工作。

给出EX2.ASM程序跟踪结果。

ADDC A, R1
SUB A, @R1
AND A, #55H
OR A, 02H
5)实现寄存器R0,R1,R2,R3的数据相加。

MOV R0, #44H
MOV R1, #77H
MOV R2, #33H
MOV R3, #55H
MOV A, R1
ADD A, R2
ADD A, R3
ADD A, R0
IN
OUT
END
试验二:
对于存放在R0~R3中的数进行排序,有序的存回R0~R3。

分析:
对待比较两个数采用减法比较大小,然后按照顺序存回。

针对排序过程可采用不同排序方法,如:冒泡排序,快速排序等。

并可以查看不同排序方法在实验仪器上的效率。

这个实验过程涉及到数大小比较,数据存储,程序跳转控制,这些过程均能在
COP2000计算机组成原理实验仪上完成。

在数据结构中,我们学习了对数字排序的不同算法,并详细学习了算法复杂度。

但是针对我们使用的计算机不能体会到不同算法在时间上的不同。

此次试验能够具体体会算法之间在时间复杂度上的区别。

有一定的实验意义。

综上所述:本次试验目标至少做出一种排序方法,并在此基础之上比较各种排序方法的效率。

试验代码为:
MOV R0 , #37H
MOV R1 , #17H MOV R2 , #29H MOV R3 , #41H MOV A , #03H MOV 02H, A LOOP:
MOV A ,R0
SUB A , R1
JC S0
M1:
MOV A ,R1
SUB A , R2
JC S1
M1:
MOV A ,R2
SUB A , R3
JC S2
M3:
SUB A ,#01H
JC S3
JMP LOOP
S0:
MOV A ,R0
PUSH R0 MOV R1 , A
POP R1
DCY
JMP M1
S1:
MOV A ,R1 PUSH R1 MOV R2 , A
POP R2
DCY
JMP M2
S2:
MOV A ,R2 PUSH R2 MOV R3 , A
POP R3
DCY
JMP M3
S3:
IN
OUT
END。

相关文档
最新文档