文档库 最新最全的文档下载
当前位置:文档库 › TEC2000 16位机指令设计

TEC2000 16位机指令设计

TEC2000 16位机指令设计
TEC2000 16位机指令设计

目录

一、设计题目 (1)

二、设计内容 (1)

三、16位机微程序控制器指令系统的设计 (1)

3.1 tec-2000A的指令功能与格式的设计 (1)

3.2 tec-2000A的指令步骤及功能设计 (4)

3.3微指令地址的设计 (7)

3.4微指令设计 (8)

四、16位机微程序控制器指令系统的实现 (13)

五、16位机微程序控制器指令系统的测试 (15)

六、结论 (19)

6.1问题及解决 (19)

6.2心得体会 (20)

七、小组分工 (21)

八、参考文献 (21)

一、设计题目

16位机微程序控制器指令系统的设计与实现

二、设计内容

1.完成微程序控制器指令系统的设计,设计29条基本指令和1条扩展指令的功能、格式和执行流程,并在教学计算机上实现、运行、调试正确。

2.在TEC—2000实验机上能够清楚的认识各芯片之间的联系,工作过程中各芯片的运行状态及其功能的实现过程。

3.对29条基本指令的认识清楚,明确每个编码的含义,以及在实验机上进行调试时各条指令的运行状态,能够对扩展指令LDAN [ADR],N的功能、格式、指令流程进行设计,并且能够在教学机上进行调试,实现其功能。

4.使用E命令往芯片中输入相关的指令信息,并且设计相关的测试程序对设计的指令进行调试。

三、 16位机微程序控制器指令系统的设计

3.1 tec-2000A的指令功能与格式的设计

指令操作码的设计

根据要求需设计完成的30条指令包含无地址指令、一地址指令和二地址码指令,操作数寻址方式包括立即数、寄存器、内存单元、共设计三种字长指令:

1、单字长指令,指令格式如下:

表1 单指令字长格式

2、双字长指令,指令格式如下:

表2双指令字长格式

3、三字长指令,指令格式如下:

表3 三字长指令格式

其中操作码的设计方案为:

IRH7-6:用来区分指令组,0X表示A组,10表示B组,11表示C、D组;IRH3:用于区分C、D组,IR3=0时为C组,IR3=1时为D组;

IRH5:用于区分基本指令与扩展指令,基本指令为0,扩展指令为1;IRH4:用于简化控制器实现,恒为0;

IR2-IR0:用于区分同一指令组的不同指令。

<30条指令格式和功能设计如表1所示>

● 指令JRNZ 和LDAN 设计方案:

1)JRNZ 是单字、单操作数指令,当Z=0时跳转到ADR ,ADR=PC 值+Offset 编码01000111,A

组基本指令

2)LDAN 是三字、双操作数指令,把立即数N 传送给内存单元[ADR] 编码11101001,是D 组的扩展指令 对LDAN 的设计主要两大类思想:

(1)先取到立即数N ,再寻访ADR 的地址,进行传送; (2)先寻访ADR 的地址,再取到立即数N ,进行传送。

表5 LDAN 指令设计格式

3.2 tec-2000A 的指令步骤及功能设计

● 经分析,在取指后,30条指令按照指令执行步骤设计为四类,

1)A 组指令:除公指进行一步的操作,指令包含:ADD 、SUB 、AND 、OR 、XOR 、MVRR 、CMP 、TEST 、INC 、DEC 、SHL 、SHR 、JR 、JRC 、JRNC 、JRZ 、JRNZ ,指令流程框图见图1

2)B 组指令:除公指进行两步的操作,指令包含:JMPA 、LDRR 、IN 、OUT 、STRR 、PSH/F 、POPF 、MVRD 、RET 、PUSH 、POP ,指令流程框图见图2

3)D组指令:除公指进行四步的操作,指令包含:CALA、LDAN,指令流程框图见图2

4)扩展指令LDAN的微码设计与实现主要是先取立即数N再寻访ADR,最后进行传送来设计的,设计了两种思路,一种是四步实现,另一种是五步实现。

图1 A组流程图

图2 B、D组流程图

●JRNZ流程图

11

图3 JRNZ组流程图

判断是否进行跳转,跳转时,跳转至ADR,ADR=PC+Offset

●LDAN流程图——方案一

图4 LDAN设计方案一流程图

1.PC→AR,PC+1→PC

2.MEM→Q

3.PC→AR,PC+1→PC

4.Q→AR

先取到立即数N ,将N传送给暂存寄存器Q;再取到ADR,存入AR,将Q 传送给AR。

LDAN流程图——方案二

图5LDAN设计方案二流程图

1.PC→AR,PC+1→PC

2.MEM→Q

3.PC→AR,PC+1→PC

4.MEM→AR

5.Q→MEM

先取到立即数N ,将N传送给寄存器Q;再取到ADR,将地址存入AR,将Q 传送给MEM,即将立即数N传送给[ADR]。

3.3微指令地址的设计

每条指令微程序入口地址设计见表3

表6 微地址映射表

3.4微指令设计

TEC-2000A系统的微指令共包含56个控制信号,分别是:CI3-0、SCC3-0、MRW、I2-0、I8-6、I5-3、A口、B口、SA、SB、SST、SCI、SSH、DC2、DC1,56个控制信号的功能如表7至表16所示

CI3-0:对指令执行的判断,初始化、必转移、顺序执行

SCC3-0:对转移的判断,在CI3-0=0011的情况下

MRW:对读写的判断信号

I2-0:选择ALU的8种输入数据组合

I8-6:选择运算器的8种结果的处置方案

I5-3:对8种运算进行选择

A口、 B口:输入从A口、B口对内部寄存器组的寄存器进行读写操作的地址SST:选择运算器的操作结果对状态标志寄存器的影响

SCI:选择最低位进位输入信号C0的形成

SSH:选择移位器左移、右移时最高位或最低位的移入信号

表7 CI3-0功能选择 表8 MRW 功能选择

表9控制信号I8~I0

表10 控制信号SCC

SCC (CI3~CI0=0011) 功能

16位机

0000 必转 0010 /INT=0时,转 0100 JRC 、JRNC 、JRZ 、JRNZ 条件不成立时,转 0101 JRS 、JRNS 条件不成立时,转 0110 IRH2=0时,转 0111 IRH1=0时,转

表11 控制信号SA 、SB 表12 控制信号SCI

表13控制信号SST 表14控制信号SSH

表15控制信号DC2 表16控制信号DC1

经分析设计,30条指令的微指令设计见表17

表17 微指令设计表

指令JRNZ ADR微指令设计分析: Offset+PC→PC

表18JRNZ微指令设计表

1.编码47:01000111 IRH7-6:01,A组命令;IRH5:基本指令;

IRH4简化控制器恒为0;IRH3-0:0111,组内进行分辨;

2.当前微址为10,下址为30;A组命令,Offset+PC→PC一步可实现功能;

3.CI3-0:由10跳转到30,条件微转移;

4.SCC3-0:在条件微转移的条件下,JRNZ条件不成立时转移;

5.MRW:当前命令执行下无读写;

6.I2-0:数据来源PC 从端口A传入,Offset从寄存器Q中传入;

7.SA、I8-6:运算结果传入PC,SA为0时A口起作用;

8.SB、I5-3:实现Offset+PC的运算过程,SB为0时B口起作用;

9.在指令执行的过程中,对程序计数器PC进行操作,B口:0101 A口:0101

10.SST:用于控制状态标志位的状态变化;

11.SSH、SCI:SCI控制产生运算器最低标志位的状态变化,SSH控制产生运算

器最高、最低位移位输入信号;

12.DC2:不进行任何操作;

13.DC1:送开关内容到内部总线。

指令LDAN[ADR],N微指令设计

1、方案一:微程序包含五条微指令

1.PC→AR,PC+1→PC

2.MEM→Q

3.PC→AR,PC+1→PC

4.MEM→AR

5.Q→MEM

先取到立即数N ,将N传送给寄存器Q;再取到ADR,将地址存入AR,将Q 传送给MEM,即将立即数N传送给[ADR]。

表19 LDAN 5节拍微指令设计表

2、方案二:微程序包含四条微指令

1.PC→AR,PC+1→PC

2.MEM→Q

3.PC→AR,PC+1→PC

4.Q→AR

先取到立即数N ,将N传送给暂存寄存器Q;再取到ADR,存入AR,将Q 传送给AR。

表20 LDAN 4节拍微指令设计表

<因5节拍指令是在4节拍指令的基础上改进的,所以存在地址覆盖的情况>

四、 16位机微程序控制器指令系统的实现

1、微程序控制器由一片58C65 E2PROM芯片实现地址映射,控制存储器由七片58C65 E2PROM芯片实现,各芯片和控制信号的对应关系如下:

第0块芯片写入映射地址;第1块芯片写入下址字段;第2块芯片写入CI3-0、SCC3-0信号;第3块芯片写入0MRW、0I2~0信号;第4块芯片写入SAI8~6,SBI5~3信号;第5块芯片写入B口、A口信号;第6块芯片写入0SST、SSHSCI信号;第7块芯片写入DC2、DC1信号

2、映射芯片单独写入,后七块芯片两块一起写入,扩展芯片的内存单元地址置为4000H~5FFF:

将端口地址写入映射芯片MPROM0,

图5 MPROM0芯片内容

●MPROM1产生下址信号,MPROM2产生CI3~0、SCC3~0信号

图6MPROM1、MPROM2芯片内容

●MPROM3产生0MRW、0I2~0信号,MPROM4产生SAI8~6,SBI5~3信号

图7MPROM3、MPROM4芯片内容

●MPROM5产生B口、A口信号,MPROM6产生0SST、SSHSCI信号

图8MPROM5、MPROM6芯片内容

MPROM7产生DC2、DC1信号

图9MPROM7芯片内容

五、 16位机微程序控制器指令系统的测试

1、指令TEST的测试

1)测试汇编源程序

2100:MVRD R0,0000 对R0进行赋值

2102:MVRD R1,0001 对R1进行赋值

2104:MVRD R3,0022 对R3进行赋值

2106:TEST R0,R1 对R0,R1进行与运算

2107:JRC 210A 对R0,R1与运算的结果进行判断,结果为1时,

跳转,结果为0时,不跳转,顺序执行2108:MVRD R3,0023 对R3再次赋值,若跳转则R3值为0022,不跳转

R3值为0023

210A: RET

2)程序运行结果

图10 指令测试结果1

2、对基本指令INC、STRR、IN、SHR、JRNC、JRNZ、LDRR、DEC、OUT进行测试1)测试汇编源程序:实现A-F写到内存单元中,并实现从内存单元中读取,并倒序输出。

2020:MVRD R3,06 给出写内存操作的次数

2022:MVRD R6,06 用来判断是否进行6次操作

2024:MVRD R2,203F

2026:MVRD R1,40 写入的“A”的ASCII码

2028:INC R2 给出写内存操作的地址

2029:INC R1 给出写内存操作的数据内容

202A:STRR[R2],R1 写寄存器R1的内容到有R2指定地址的内存单元202B:IN 81 状态寄存器的内容

202C:SHR R0 R0右移一位,最低位移入C

202D:JRNC 202B C为0时跳转,C为1时顺序执行

202E:DEC R3 检查六次写内存操作是否完成

202F:JRNZ 2028 判断Z是否为0,否则进行下一次的写内存操作2030:LDRR R0,[R2] 读出内容单元的数据到R0寄存器

2031:DEC R2 对R2自减,实现倒序输出

2032:OUT 80

2033:IN 81

2034:SHR R0

2035:JRNC 2033 用来判断是否输出完成

2036:DEC R6

2037:JRNZ 2030 输出未完成,跳转至2030继续执行

2038:RET

2)程序运行结果

图11指令测试结果2

3、对基本指令PUSH、POP、CALA、SUB进行验证

输入任意小写字母,实现该小写字母的对应大写字母的输出,并且输出该小写字母对应的前一个小写字母。

2000:IN 81

2001:SHR R0 R0寄存器内容右移一位,最低位的值移入标志位C 2002:SHR R0

2003:JRNC 2000 条件转移,当标志位C不是一时跳转至2000 2004:IN 80

2005:PUSH R0 保存R0寄存器的内容到堆栈中

2006:DEC R0

2007:OUT 80

2008:POP R0 从堆栈中回复R0寄存器的内容

2009:CALA 2010 转移指令,转移至2010

200B: RET

2010:MVRD R1,20

2012:SUB R0,R1 修改输入的字符编码,将大写字母转换成小写字母2013:OUT 80 将修改后的字符输出到显示器

2014:RET 子程序返回

图12指令测试结果3

4、对指定指令JRNZ的测试

2000:MVRD R0,0001 对R0进行赋值

2002:MVRD R1,0001 对R1进行赋值

2004:MVRD R2,0002 对R3进行赋值

2005:CMP R0,R1 对R0,R1进行与运算

2007:JRNZ 200A 对R0,R1与运算的结果进行判断,结果为1时,

跳转,结果为0时,不跳转,顺序执行

2008:MVRD R2,0003 对R3再次赋值,若跳转则R3值为0022,不跳转

R3值为0023

200A: RET

图13 JRNZ指令测试结果

5、对扩展指令LDAN的测试

E2000:

2000:E900 2001:0036 2002:2010

A2003:

2003:RET

G2000

实现功能要求内存单元2010存入该立即数0036。

在G2000执行该指令后,使用D2010查看2010内存单元中的值。

图14 LDAN 5节拍指令测试结果

<4节拍指令的设计写入芯片后在测试时无法实现>

六、结论

6.1问题及解决

1.对基本指令的分组节拍实现的理解存在疑惑。通过组内讨论,并且查阅相关书籍解决了该问题,学习到A、B、D组命令的分组和指令的执行步骤有关,并且学习了各条指令的编码的依据。

2.对微指令格式的设计存在疑惑。通过书籍的学习,老师的解答及组内成员的共同学习,了解到微命令中,各个编码的相关作用。

3.在映射芯片的写入过程中,因不理解映射芯片的具体实现方法使得映射芯片在写入时出现了错误。通过组内同学的讨论,认识到在映射写入时必须包括所有的基本指令及扩展指令,不能像微址设计时一样,因为入口地址相同,就不写入。

4.在芯片写入完成进行测试时,对TEST测试存在的疑惑。通过向老师请教,及向同学学习,了解到可以仿照比较指令测试的书写,在命令后添加一条跳转指令,满足条件时进行跳转。

5.对LDAN[ADR],N 扩展指令的理解存在疑惑。通过老师的解答,和同学们的组内讨论,认识到LDAN指令将立即数N送入[ADR]寄存器中,并且在参考其它类似命令的基础上,充分的认识学习微码,对LDAN命令的微码进行了设计。

6.对LDAN指令的设计。在设计过程中,小组考虑了两大类设计思路:(1)先取到立即数N,再寻访寄存器的地址,将立即数N传送给寄存器;(2)先取到寄存器地址,第二步寻访立即数N,最后将N传送给寄存器。但由于先取寄存器,再取立即数N进行操作,对寄存器的储存过程要求比较复杂,并且进行传送时过程比较复杂,所以重点对第一大类进行了设计。

首先小组经过探讨与向老师的学习,确定了LDAN命令的前三步节拍过程:a)取立即数N,PC→AR,PC+1→PC,此时将立即数N的地址存入AR地址寄存器;b)将立即数N传送给寄存器Q,MEM→Q,此时Q寄存器中存储立即数N;c)取到寄存器ADR的地址,此时将ADR的地址传送给地址寄存器AR,PC→AR,PC+1→PC。

在对将立即数N传送给[ADR]小组提出了两种解决方法:1)直接将寄存器Q中所存储的立即数N传送给AR;2)分两步执行,将N传送给[ADR],首先将ADR的内存单元的值传送给AR,MEM→AR,然后将寄存器Q中所存储的立

汇编实验五条件转移指令

汇编实验五条件转移指令

————————————————————————————————作者:————————————————————————————————日期: 1

实 验 报 告 ── 学年 第 学期 实 验 课 程 汇编语言 学 生 姓 名 123 实 验 项 目 条件转移指令 学 院 计算机科学技术 实 验 性 质 专业选修课 班 级 学 号 实 验 地 点 同 组 人 数 1 第 组 实 验 日 期 第周 星期 第 节 成 绩 5 环 境 参 数 Dosbox-0.74 Masm 5.0 一、实验目的及要求 二、实验原理、实验内容 三、实验仪器设备及材料 四、操作方法与实验步骤 五、实验数据记录及处理 六、实验结果分析及讨论 一、实验目的: 1.8088指令:JZ,JNZ,JC,JNC,CMP,SHR 。 2.程序:用字符搜索法确定字符串长度。 3.程序:16进制数化为ASCII 码的一般方法。 二:实验任务 1.自编程序:修改实验准备程序(二),使除了以16进制数形式显示内存内容外,还能在其右边显示该16进制码所对应的ASCII 字符,07-0D 的控制字符用'.'代替。 源代码:

DATA SEGMENT DATA ENDS STACKS SEGMENT STACK STACKS ENDS CODE SEGMENT 'code' ASSUME CS:CODE,DS:DATA,SS:STACKS START: MOV AX,DATA MOV DS,AX MOV SI,0H MOV BL,10H LOP:MOV DL,[SI] ;先处理高四位 MOV CL,4H SHR DL,CL ;右移四位 CMP DL,0AH ;判断是‘0’-‘9’还是‘a'-’f‘ JC J1 ;是0-9 跳转 ADD DL,7H ;是a-f 要多加7 因为‘9’为 390h ‘A' 为41h 相差7h J1: ADD DL,30H ;以'0'为基址 MOV AH,2H ;输出高四位的ASCII码 INT 21H MOV DL,[SI] ;处理第四位 AND DL,0FH CMP DL,0AH ;同上

16位模型机的设计

16位CPU的设计 要求: 此模型机的功能是将存储区的数据块复制到另一个存储区。 汇编代码如下: START:LOADI R1,0010H ;源操作数地址送R1 LOADI R2,0030H ;目的操作数地址送R2 LOADI R6,002FH ;结束地址送R6 NEXT:LOAD R3,[R1] ;取数 STORE [R2],R3 ;存数 BRANCHGTI START ;如果R1>R6,则转向START INC R1 ;修改源地址 INC R2 ;修改目的地址 BRANCHI NEXT ;转向NEXT 1.16位CPU的组成结构

2.指令系统的设计 一、指令格式 1)单字指令格式 2)双字指令格式 操作码指令功能 00001 LOAD 装载数据到寄存器 00010 STORE 将寄存器的数据存入到存储器 00100 LOADI 将立即数装入到寄存器 00101 BRANCHI 无条件转移到由立即数指定的地址 00110 BRANCHGTI 如果源寄存器容大于目的寄存器的容,则转移到由 立即数指定的地址 00111 INC 寄存器容加1指令 依据以上设计的指令系统,则完成数据块复制的程序如下: 地址机器码指令功能说明 0000H 0001H 2001H 0010H LOADI R1,0010H 源操作数地址送R1

一、程序包:说明运算器的功能、移动寄存器的操作、比较器的比较类型和用于CPU控 制的状态类型。 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; package cpu_lib is subtype t_shift is unsigned (3 downto 0); constant shftpass :unsigned(3 downto 0):="0000"; constant sftl :unsigned(3 downto 0):="0001"; constant sftr:unsigned(3 downto 0):="0010"; constant rotl :unsigned(3 downto 0):="0011"; constant rotr :unsigned(3 downto 0):="0100"; subtype t_alu is unsigned(3 downto 0); constant alupass :unsigned(3 downto 0):="0000";

简易计算器的设计与实现

沈阳航空航天大学 课程设计报告 课程设计名称:单片机系统综合课程设计课程设计题目:简易计算器的设计与实现 院(系): 专业: 班级: 学号: 姓名: 指导教师: 完成日期:

沈阳航空航天大学课程设计报告 目录 第1章总体设计方案 (1) 1.1设计内容 (1) 1.2设计原理 (1) 1.3设计思路 (2) 1.4实验环境 (2) 第2章详细设计方案 (3) 2.1硬件电路设计 (3) 2.2主程序设计 (7) 2.2功能模块的设计与实现 (8) 第3章结果测试及分析 (11) 3.1结果测试 (11) 3.2结果分析 (11) 参考文献 (12) 附录1 元件清单 (13) 附录2 总电路图 (14) 附录3 程序代码 (15)

第1章总体设计方案 1.1 设计内容 本设计是基于51系列的单片机进行的十进制计算器系统设计,可以完成计算器的键盘输入,进行加、减、乘、除1位无符号数字的简单四则运算,并在6位8段数码管上显示相应的结果。 设计过程在硬件与软件方面进行同步设计。硬件方面从功能考虑,首先选择内部存储资源丰富的8751单片机,输入采用4×4矩阵键盘。显示采用6位8段共阳极数码管动态显示。软件方面从分析计算器功能、流程图设计,再到程序的编写进行系统设计。编程语言方面从程序总体设计以及高效性和功能性对C语言和汇编语言进行比较分析,最终选用汇编语言进行编程,并用protel99se涉及硬件电路。 1.2 设计原理 在该课程设计中,主要用到一个8751芯片和串接的共阳数码管,和一组阵列式键盘。作为该设计的主要部分,下面将对它们的原理及功能做详细介绍和说明。 1)提出方案 以8751为核心,和数码管以及键盘用实验箱上已有的器件实现计算器的功能。 2) 总体方案实现 (1)要解决键值得读入。先向键盘的全部列线送低电平,在检测键盘的行线,如果有一行为低电平,说明可能有按键按下,则程序转入抖动检测---就是延时10ms再读键盘的行线,如读得的数据与第一次的相同,说明真的有按键按下,程序转入确认哪一键按下的程序,该程序是依次向键盘的列线送低电平,然后读键盘的行线,如果读的值与第一次相同就停止读,此时就会的到键盘的行码与列码

基本模型机设计及实现

基本模型机设计及实现文件排版存档编号:[UYTR-OUPT28-KBNTL98-UYNN208]

课程设计任务书课程名称:计算机组成原理 设计题目:(共3个课题,最多3人一组,每组任选一题) 1.基本模型机设计与实现; 2.带移位运算的模型机的设计与实现; 3.复杂模型机的设计与实现。 已知技术参数和设计要求: 内容和技术参数: 利用所学过的理论知识,特别是微程序设计的思想,写出要设计的指令系统的微程序。设计环境为TDN-CM+计算机组成原理教学实验系统,微机,虚拟软件。将所设计的微程序在此环境中进行调试,并给出测试思路和具体程序段。最后撰写出符合要求的课程设计说明书、完成答辩。 1.基本模型机设计与实现 指令系统至少要包括六条不同类型指令:如一条输入指令,一条减法指令,一条加法指令,一条存数指令,一条输出指令和一条无条件转移指令。 2. 带移位运算的模型机的设计与实现 在基本模型机的基础上增加左、右循环和左、右带进位循环四条指令 3. 设计不少于10条指令的指令系统。其中,包含算术逻辑指令,访问内存指令,程序控制指令,输入输出指令,停机指令。重点是要包括直接、间接、变址和相对寻址等多种寻址方式。 以上数据字长为8位,采用定点补码表示。指令字长为8的整数倍。微指令字长为24位。

具体要求: 1、确定设计目标 确定所设计计算机的功能和用途。 2、确定指令系统 确定数据的表示格式、位数、指令的编码、类型、需要设计哪些指令及使用的寻址方式。确定相对应指令所包含的微操作。 3、总体结构与数据通路 总体结构设计包括确定各部件设置以及它们之间的数据通路结构。在此基础上,就可以拟出各种信息传输路径,以及实现这些传输所需要的微命令。 综合考虑计算机的速率、性能价格比、可靠性等要求,设计合理的数据通路结构,确定采用何种方案的内总线及外总线。数据通路不同,执行指令所需要的操作就不同,计算机的结构也就不一样。 4、设计指令执行流程 数据通路确定后,就可以设计指令系统中每条指令所需要的机器周期数。对于微程序控制的计算机,根据总线结构,需考虑哪些微操作可以安排在同一条微指令中,哪些微操作不能安排在同一条微指令中。 5、确定微程序地址 根据后续微地址的形成方法,确定每个微程序地址及分支转移地址。 6、微指令代码化 根据微指令格式,将微程序流程中的所有微指令代码化,转化成相应的二进制代码写入到控制存储器中的相应单元中。

计算机组成原理课程设计,跳转,转移指令的实现

1、课程设计的题目 基本模型机的设计——跳转、转移指令的实现 2、设计的目的及设计原理 2.1课程设计目的 运用所学的知识,通过使用软件HKCPT掌握各个单元模块的工作原理将其组成完整的系统,并了解程序编译、加载的过程,以及通过微单步、单拍调试理解模型机中的数据流向。此次课程设计主要目的有两个:其一,掌握各个单元模块的工作的原理,进一步将其组成完整的系统,构造一台基本的模型计算机;其二,是学会规划读/写内存、寄存器、数值计算等功能,并且编写相应的微程序,在具体上机的过程中,高度各个模块单元以便掌握整机的概念。 2.2课程设计原理 计算机中CPU是核心,它的实现是通过指令和微指令实现的,指令对应一段微程序,而且微程序是用微指令来实现的,微指令是有几个微命令组成,从而能够保证指令的实现。 在本实验平台中,模型机从内存中取出、解释、执行机器指令都将由微指令和之配合的微指令来实现的,即每条机器指令都对应一个微程序。 在各个模块实验中,各模块的控制信号都是由实验者手动模拟产生的。而在真正的实验系统中模型机的运行是在微程序的控制下进行的,可实现指定的指令功能。在本实验平台中,模型机从内存中取出、解释、执行机器指令都将由微指令和与之相配合的时序来完成,即1条机器指令对应一个微程序。 部件实验过程中,各部件单元的控制信号是以人为模拟产生为主,而这次实验将能在微程序控制下自动产生各部件单元的控制信号,实现特定指令的功能。这里,计算机数据通路的控制将由微程序控制器来完成,CPU从内存中取出一条机器指令到指令执行结束的一个指令周期全部由微指令组成的序列来完成,即一条机器指令对应一个微程序。

实验七基本模型机的设计与实现

实验七 基本模型机的设计与实现 一、实验目的 ⒈在掌握部件单元电路实验的基础上,进一步将其组成系统地构造 一台基本模型计算机。 ⒉为其定义5条机器指令,并编写相应的微程序,上机调试掌握整机 概念。 二、实验设备 Dais-CMH+/CMH 计算器组成原理教学实验系统一台,实验用扁平 线、导线若干。 三、实验原理 部件实验过程中,各部件单元的控制信号是以人为模拟产生为主,而 本次实验将能在微程序控制下自动产生各部件单元的控制信号,实现特 定指令的功能。这里,计算机数据通路的控制将由微程序控制器来完 成,CPU从内存中取出一条机器指令到指令执行结束的一个指令周期全 部由微指令组成的序列来完成,即一条机器指令对应一个微程序。 本实验采用五条机器指令:IN(输入)、ADD(二进制加法)、 STA(存数)、OUT(输出)、JMP(无条件转移),其指令格式如下 (前三位为操作码): ==========================================================助记符 机器指令码 说 明 -------------------------------------------------- ------------- IN R0,SW 0010 0000 数据开关状态 →R0 ADD R0,[addr] 0100 0000 XXXXXXXX R0+[addr]→R0 STA [addr],R0 0110 0000 XXXXXXXX R0→[addr] OUT [addr],LED 1000 0000 XXXXXXXX [addr]→LED JMP addr 1010 0000 XXXXXXXX addr→PC ==========================================================其中IN为单字节(8位),其余为双字节指令,XXXXXXXX为addr对 应的二进制地址码。 根据以上要求设计数据通路框图,如图7-10-1所示。系统涉及到的 微程序流程见图7-7-3,当拟定“取指”微指令时,该微指令的判别测试 字段为P(1)测试。由于“取指”微指令是所有微程序都使用的公用微指 令,因此P(1)的测试结果出现多路分支。本机用指令寄存器的前3位 (IR7~IR5)作为测试条件,出现8路分支,占用8个固定微地址单元。 当全部微程序设计完毕后,应将每条微指令代码化,表7-10-1即为 将图7-10-2的微程序流程图按微指令格式转化而成的“二进制微代码

巧记汇编语言中的转移指令

巧记汇编语言中的转移指令 8086汇编语言中的转移指令条数虽多,但都是以J字符打头,这是转移指令的特征,J即是英语JUMP 的缩写。 后面的字符大致可分为两类: 一、标志寄存器的标志位符号: C(进位标志位)、Z(零标志位) P(奇偶标志位)。 S(符号标志位)、O(溢出标志位)。 二、逻辑判断条件的英文缩写: N.非(NOT) E.等于(EQUAL) A.高于(ABOVE)用于无符号数的比较结果 B.低于(BELOW)用于无符号数的比较结果 G.大于(GREAT)用于带符号数的比较结果 L.小于(LESS)用于带符号数的比较结果 这些字符的组合即综述了相应的比较或运算结果。 例如:NC即为C标志位的否定,即标志位C=0 JNC即表示标志位C=0时转移。 NBE表示不低于等(即相当于“大于”) 利用这个规律,就可以非常简单地理解大多数条件转移指令的含义了。从另一个角度,这些指令还可以作如下分类: 一、以标志位的内容作为转移条件,有肯定的表示(标志位=1)和否定的表示(标志位=0): 1.肯定的表示: JC C=1 转移进位转移 JP P=1 转移偶转移 JS S=1 转移负转移 JZ Z=1 转移零转移 2.否定的表示: JNC C=0 转移非进位转移 JNP P=0 转移奇转移 JNS S=0 转称非负转移 JNZ Z=0 转移非零转移 要注意,对P(奇偶)标志位还加上奇(000)、偶(EVEN)字符缩写的表示方法(这是两个特例): JPO P=0 转移奇转移,相当于 JNP JPE P=1 转移偶转移,相当于 JP 二、以比较或运算结果作为转移条件,也分肯定的表示和否定的表示,不过还要区分是否是对带符号数进行操作: 1.肯定的表示: 用于无符号数: JA 高于 JAE 高于等于 JB 低于

设计一条条件转移指令

实验报告 实验人:赵汝鹏学号: 09381052 日期: 2010-12-15 院(系):计算机科学系专业(班级):网络工程 实验题目:设计一条条件转移指令 一.实验目的 1.了解和掌握微程序控制器的组成和工作原理; 2.进一步了解和掌握计算机各部分的组成及相互关系; 3.了解微指令的执行过程,掌握微程序的设计方法,理解动态微程序设计的概念; 4.进一步认识和掌握计算机各指令的执行过程,搞清楚计算机的运行原理。 二.实验内容 设计一条指令,实现的功能是: 当DR=SR时,则原PC(IP)+OFFSET->PC; 当DRPC。 否则执行下条汇编指令。(注:OFFSET为位移量;ADDR为某内存单元地址) 三.实验器材 TEC-2实验计算机、电脑各一台 四.实验分析与设计 (2)指令功能 功能:设计一条指令,实现的功能是: 当DR=SR时,则原PC(IP)+OFFSET->PC; 当DRPC。 否则执行下条汇编指令。(注:OFFSET为位移量;ADDR为某内存单元地址) (3)设计分析 由于要根据DR与SR运算结果进行跳转,所以在110先让DR-SR产生DR与SR 的信息在状态寄存器。在111这里如果Z=1,则跳转至114进行下一步操作,否则 继续执行下一条;在112这里如果S=1,则转115进行下一步操作,否则执行下一 条。如果111与112都没有跳转,证明DR-SR>0,则让PC等于下一条指令的地址。 操作码选择DB,因为如此IR8-10位是011,CC非的值等于S非的值。

(4) 微程序 110:DR-SR 0000 0E01 9110 0088 111:PC->AR, 如果DR=SR转114 0045 0370 9030 5002 112:PC+1->AR,如果DRPC,转4A 0029 0300 B030 5400 114:IP+OFFSET->PC 0029 0300 30D6 5000 115:ADDR->PC 0029 0300 30F0 5000 (5) 加载到微控存程序段 A800 800:MOV R1, 900 802:MOV R2, 6 804:MOV R3, 110 806:LDMC 807:RET 808: G800 (6) 运行程序段 A820 820:MOV R7, 7 822:MOV R8, 8 824:MOV R9, 0 826:NOP 827:NOP 828:NOP 829:MOV R9, 1 82B:RET 82C:MOV R9, 2 82E:RET 82F:MOV R9, 3 831:RET 832: E826 DB78 0006 082F G820 第一种情况是DRSR

基本模型机设计与实现.

课程设计 课程名称:计算机组成原理 设计题目:基本模型机设计与实现 学院:信息工程与自动化 专业:计算机科学与技术 年级: 学生姓名: 指导教师:王海瑞 日期: 教务处制

课程设计任务书 信息工程与自动化学院计算机专业年级 学生姓名: 课程设计题目:基本模型机设计与实现 课程设计主要内容: 利用所学过的理论知识,特别是微程序设计的思想,写出要设计的指令系统的微 程序。将所设计的微程序在计算机组成原理教学实验系统环境中进行测试,并给出测试思路和具体程序段。最后撰写出符合要求的课程设计报告。 首先要确定所设计计算机的功能和用途,设计中根据功能和用途确定指令系统, 数据的表示格式,位数,指令的编码,类型,需要设计那些指令和寻址方式。确定相 对应指令所包含的微操作以及总体结构设计之间的数据通路结构,在此基础上,就可以拟出各种信息传输路径,以及实现这些传输所需要的微指令。 设计指导教师(签字): 教学基层组织负责人(签字): 年月日

目录 一、基本模型机的设计,,,,,,,,,,,,,,,, 4 1、程序设计目的,,,,,,,,,,,,,,,, 4 2、程序设计任务和基本要求,,,,,,,,,,,, 4 3、实验原理,,,,,,,,,,,,,,,,,,,,,,, 5 二、实验内容及步骤,,,,,,,,,,,,,,,8 1.实验内容,,,,,,,,,,,,,,,,,,,8 2.实验步骤,,,,,,,,,,,,,,,,,10 3.实验情况及记录,,,,,,,,,,,,,,,14 三、总结体会,,,,,,,,,,,,,,,,,,15 四、参考文献,,,,,,,,,,,,,,,,,,16 一、基本模型机的设计 1、程序设计目的 (1)掌握计算机系统组成及内部工作机制、理解计算机各功能部件工作原理的基础上,深入掌握信息流和控制信息流的流动过程,

单片机简易计算器课程设计

单片机简易计算器课程设计 课程设计 题目名称________________ 简易计算器设计____________ 课程名称_____________ 单片机原理及应用____________ 学生姓名________________

班级学号________________ 2018年6月20日

目录 一设计目的 (2) 二总体设计及功能介绍 (2) 三硬件仿真图 (3) 四主程序流程图 (4) 五程序源代码 (5) 六课程设计体会 (28)

设计目的 本设计是基于51系列单片机来进行的简单数字计算器设计,可以完成计算器的键盘输入,进行加、减、乘、除六位整数数范围内的基本四则运算,并在LED上显示相应的结果。软件方面使用C语言编程,并用PROTUE仿真。 二总体设计及功能介绍 根据功能和指标要求,本系统选用MCS-51 系列单片机为主控机,实现对计算器的设计。具体设计及功能如下: 由于要设计的是简单的计算器,可以进行四则运算,为了得到较好的显示效果,采用LED显示数据和结果; 另外键盘包括数字键(0?9)、符号键(+、-、x、十)、清除键和等号键,故只需要16个按键即可,设计中采用集成的计算键盘;

执行过程:开机显示零,等待键入数值,当键入数字,通过LED显示出来,当键入+、-、*、/运算符,计算器在内部执行数值转换和存储,并等待再次键入数值,当再键入数值后将显示键入的数值,按等号就会在LED上输出运算结果。 三硬件仿真图 硬件部分比较简单,当键盘按键按下时它的那一行、那一列的端口为低电平。因此,只要扫描行、列端口是否都为低电平就可以确定是哪个键被按下。

汇编指令无条件转移指令JMP

[汇编指令]无条件转移指令JMP 2009-08-16 18:43 无条件转移指令JMP 指令格式:JMP OPRD 其中OPRD为转移的目的地址。程序转移到目的地址所指向的指令继续往下执行。 指令功能:JMP指令将无条件地控制程序转移到目的地址去执行。当目的地址仍在同一个代码段内,称为段内转移;当目标地址不在同一个代码段内,则称为段间转移。这两种情况都将产生不同的指令代码,以便能正确地生成目的地址,在段内转移时,指令只要能提供目的地址的段内偏移量即够了;而在段间转移时,指令应能提供目的地址的段地址及段内偏移地址值。 本组指令对标志位无影响。 <1>段内直接转移指令:JMP NEAR 标号 即:JMP NEAR 标号; (IP)<--disp16+(IP) JMP SHORT 标号; (IP)<--disp8+(IP) <2>段内间接转移指令:JMP OPRD 例如:JMP BP; 转向(SS):(BP) JMP JNEAR[BX]; 转向(CS):(BX)+JNEAR JMP WORD PTR[BX][DI]; 转向(CS):(BX)+(DI) <3>段间直接转移指令:JMP FAR 标号 由于标号之前用FAR说明为远的属性,因而只能是一条段间转移指令。执行该指令时,将把标号所在的段的值送CS,将标号在所属段内的偏移量送IP,从而形成新的转移地址CS:IP <4>段间间接转移指令:JMP OPRD其中的OPRD为存储器双字操作数。段间间接转移只能通过存储器操作数来实现。 例如:指令JMP DWORD PTR[BX],其操作数是一个双字类型的存储器操作数,它指向数据段DS,段内偏移为(BX)。从这个DS:BX开始的前两个字节中,存放了目标地址的段内偏移值,后两个字节中,存放了目标地址所在的新的段的段基址,分别将它们送至IP及CS,便形成了新的转移地址

条件转移指令

条件转移指令 条件转移指令是指在满足一定条件时进行相对转移。 1.判A内容是否为0转移指令 JZ rel JNZ rel 第一指令的功能是:如果(A)=0,则转移,否则顺序执行(执行本指令的下一条指令)。转移到什么地方去呢?如果按照传统的方法,就要算偏移量,很麻烦,好在现在我们可以借助于机器汇编了。因此这第指令我们可以这样理解:JZ 标号。即转移到标号处。下面举一例说明: MOV A,R0 JZ L1 MOV R1,#00H AJMP L2 L1: MOV R1,#0FFH L2: SJMP L2 END 在执行上面这段程序前如果R0中的值是0的话,就转移到L1执行,因此最终的执行结果是R1中的值为0FFH。而如果R0中的值不等于0,则顺序执行,也就是执行 MOV R1,#00H指令。最终的执行结果是R1中的值等于0。 第一条指令的功能清楚了,第二条当然就好理解了,如果A中的值不等于0,就转移。把上面的那个例子中的JZ改成JNZ试试吧,看看程序执行的结果是什么? 2.比较转移指令 CJNE A,#data,rel CJNE A,direct,rel CJNE Rn,#data,rel

CJNE @Ri,#data,rel 第一条指令的功能是将A中的值和立即数data比较,如果两者相等,就顺序执行(执行本指令的下一条指令),如果不相等,就转移,同样地,我们可以将rel理解成标号,即:CJNE A,#data,标号。这样利用这条指令,我们就可以判断两数是否相等,这在很多场合是非常有用的。但有时还想得知两数比较之后哪个大,哪个小,本条指令也具有这样的功能,如果两数不相等,则CPU还会反映出哪个数大,哪个数小,这是用CY(进位位)来实现的。如果前面的数(A中的)大,则CY=0,否则CY=1,因此在程序转移后再次利用CY就可判断出A中的数比data大还是小了。 例: MOV A,R0 CJNE A,#10H,L1 MOV R1,#0FFH AJMP L3 L1: JC L2 MOV R1,#0AAH AJMP L3 L2: MOV R1,#0FFH L3: SJMP L3 上面的程序中有一条指令我们还没学过,即JC,这条指令的原型是JC rel,作用和上面的JZ类似,但是它是判CY是0,还是1进行转移,如果CY=1,则转移到JC后面的标号处执行,如果CY=0则顺序执行(执行它的下面一条指令)。 分析一下上面的程序,如果(A)=10H,则顺序执行,即R1=0。如果(A)不等于10H,则转到L1处继续执行,在L1处,再次进行判断,如果(A)>10H,则CY=1,将顺序执行,即执行MOV R1,#0AAH指令,而如果(A)<10H,则将转移到L2处指行,即执行MOV R1,#0FFH指令。因此最终结果是:本程序执行前,如果(R0)=10H,则(R1)=00H,如果(R0)>10H,则(R1)=0AAH,如果(R0)<10H,则(R1)=0FFH。 弄懂了这条指令,其它的几条就类似了,第二条是把A当中的值和直接地址中的值比较,第三条则是将直接地址中的值和立即数比较,第四条是将

模型机课程设计

哈尔滨理工大学 软件学院 课程设计报告 课程片上计算机系统 题目 CPU模型机设计 班级集成12-1班 专业集成电路设计与集成系统学生张铭 学号 1214020130 指导教师崔林海 2014年07 月02日

索引: 1.课程设计的目的及要求 (3) 2.处理器的设计思想和设计内容 (3) 3.设计处理器的结构和实现方法 (3) 4.模型机的指令系统 (4) 5.处理器的状态跳转操作过程 (4) 6. CPU的VHDL代码 (7) 7. 模型机在Quartus II环境下的应用 (32) 8. 仿真波形 (33) 9. 课程设计的总结 (35)

一.课程设计的目的及要求: 1.目的:了解Quartus II软件的应用,学习Quartus II环境下设计CPU的基本过程;掌握CPU设计代码的含义以及CPU的工作原理;了解CPU与内存RAM 间的连接数据的传输过程;学习在Quartus II环境下建立模型机的具体过程。融会贯通本课程各章节的内容,通过知识的综合运用,加深对计算机系统各模块的工作原理及相互联系的认识。学习设计和调试计算机的基本步骤和方法,提高使用软件仿真工具和集成电路的基本技能。培养科学研究的独立工作能力,取得工程设计与组装调试的实践和经验。 2.要求:以《计算机组成与设计》书中123页的简化模型为基础,更改其指令系统,形成设计者的CPU,在Quartus II环境下与主存连接,调试程序,观察指令的执行是否达到设计构想。 二.处理器的设计思想和设计内容: 处理器的字长为16b;包括四种指令格式,格式1、格式2、格式3的指令字长度为8b,格式4的指令字长度为16b;处理器内部的状态机包括6个状态。 关于CPU: 操作码5位,一共设计20条指令,主要包括空操作指令、中断指令、加法指令、减法指令、三种逻辑运算指令、循环移位操作指令,数据传输指令,转移类指令,特权指令,取反,取绝对值等等。 关于RAM: 地址线设置成16bits,主存空间为64words。 书中原CPU的主要修改: (1)模型机CPU指令集中的逻辑左移与逻辑右移改成逻辑循环右移与逻辑循环左移。 (2)模型机CPU指令集中的or改成not。 (3)模型机CPU指令的执行流程及状态跳转。 三.设计处理器的结构和实现方法: (指令格式) 格式1:寄存器寻址方式 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

条件转移类指令范例

条件转移类指令范例——方案 将00H~0FH这16个数顺序地置入片内RAM20H~2FH单元中。 一、MOV R0,#20H CLR A LOOP:MOV @R0,A INC A INC R0 DJNZ R7,LOOP SJMP $ 三、MOV R0,#20H MOV A,#0FH MOV 30H,#00H LOOP:MOV @R0,30H INC 30H INC R0 DEC A JNZ LOOP SJMP $ 四、MOV R0,#20H MOV A,#0FH MOV 30H,#00H LOOP:MOV @R0,30H INC 30H INC R0 SUBB A,#01H JNC LOOP SJMP 【例】设(SP)=30H,符号地址PROG1指向程序存储器的5678H单元,当前PC值为0123H。从0123H处执行指令“LCALL PROG1”,分析执行后PC、SP的值和相关存储器的内容。 解:执行过程为: (PC)+3=0123H+3=0126H。 将PC内容压入堆栈:向(SP)+1=31H中压入26H,向(SP)+1=32H中压入01H,(SP)=33H。 将PROG1=5678H送入PC,即(PC)=5678H。程序转向以5678H为首地址的子程序执行。最终执行结果是:(PC)=5678H、(SP)=33H、(31H)=26H、(32H)=01H。 【例】利用DJNZ指令和NOP指令编写一循环程序,实现延时1ms(晶振频率为12MHz)。解:程序如下: DELAY: MOV R1,#0AH ;1μs LOOP: MOV R2,#30H ;1μs DJNZ R2,$ ;2×48μs DJNZ R1,LOOP ;1μs×(1+2×48+2)×10 NOP ;1μs NOP ;1μs NOP ;1μs

基本模型机的设计与实现

南京晓庄学院 信息工程学院 计算机组成原理课程 实 验 报 告 实验名称:基本模型机的设计与实现 年级专业班级:14 级计算机专业专本1班班级 学号:14131521 姓名:殷宇翔 学号:姓名: 学号:姓名: 时间:2016 年12 月10 日

一、实验目的、要求: 1、在掌握部件单元电路实验的基础上,进一步将其组成系统以构造一台基本模型实验计算机。 2、设计五条机器指令,并编写相应的微程序,具体上机调试,掌握整机软硬件组成概念。 二、实验仪器设备、器件及环境: 三、实验方法、原理: 部件实验过程中,各部件单元的控制信号是人为模拟产生的,而本次实验将能在微程序控制下自动产生各部件单元控制信号,实现特定指令的功能。这里,实验计算机数据通路的控制将由微程序控制器来完成,CPU从内存中取出一条机器指令到指令执行结束的一个指令周期全部由微指令组成的序列来完成,即一条机器指令对应一个微程序。 ⑴有关微控制器部分在前一实验中已详细介绍 ⑵主存储器的读、写和运行 为了向主存储器RAM中装入程序或数据,并且检查写入是否正确以及能运行主存储器中的程序,必须设计三个控制操作微程序。 ·存储器读操作:拨动总清开关后,置控制开关SWC、SWA为“0 0”时,按要求连线后,连续按“启动运行”开关,可对主存储器RAM连续手动读操作。 ·存储器写操作:拨动总清开关后,置控制开关SWC、SWA为“0 1”时,按要求连线后,再按“启动运行”开关,可对主存储器RAM进行连续手动写入。 ·运行程序:拨动总清开关后,置控制开关SWC、SWA为“1 1”时,按要求连线后,再按“启动运行”开关,即可转入到第01号“取址”微指令,启动程序

最简单的程序设计

《程序设计语言 C1》随机作业题 做作业时间:2013-4-23 8:00:00至2013-5-23 8:00:00 1、以下合法的赋值语句是(3分) B A、B、C、D、 A、x=y=100 B、d--; C、x+y; D、c=int(a+b); 2、以下程序的输出结果是 main() { int a=3; printf("%d\n",(a+=a-=a*a));} } (3分) D A、B、C、D、 A、-6 B、12 C、0 D、-12 3、请选出以下语句的输出结果____ printf("%d\n",strlen("\t\ 065\xff\n")) (3分) B A、B、C、D、

A、5 B、4 C、8 D、输出项不合法,无正常输出 4、下面程序的输出是______ main() { int k=11; printf("k=%d,k=%o,k=%x\n",k,k,k); } (3分) D A、B、C、D、 A、k=11,k=12,k=13 B、k=11,k=13,k=13 C、k=11,k=013,k=oXb D、k=11,k=13,k=b 5、若有以下定义和语句: int u=010,v=0x10,w=10; printf(″%d,%d,%d\n″,u,v,w); 则输出结果是: (3分) A A、B、C、D、 A、8,16,10 B、10,10,10 C、8,8,10 D、8,10,10 6、以下程序的输出结果是 main( ) { int k=17; printf("%d,%o,%x \n",k,k,k); }(3分) D A、B、C、D、 A、17,021,0x11 B、17,17,17 C、17,0x11,021 D、17,21,11 7、下面程序的输出是____

七基本模型机的设计与实现

实验七基本模型机的设计与实现 一实验目的 (1) 在掌握部件单元电路实验的基础上,进一步将其组成系统,构造一台基本模型计 算机。 (2) 为其定义五条机器指令,并编写相应的微程序,具体上机调试掌握整机概念 二实验设备 TDN—CM++计算机组成原理教学实验系统一台,排线若干。 三实验内容 1) 实验原理 部件实验过程中,各部件单元的控制信号是人为模拟产生的,而本次实验将能在微程序 控制下自动产生各部件单元控制信号,实现特定指令的功能。这里,计算机数据通路的控制 将由微程序控制器来完成,CPU从内存中取出一条机器指令到指令执行结束的一个指令周 期全部由微指令组成的序列来完成,即一条机器指令对应一个微程序。 本实验采用五条机器指令:IN(输入),ADD(二进制加法),STA(存数),OUT(输出),JMP(无条件转移)。其指令格式如下(前4位为操作码): 助记符机器指令码说明 IN 00000000 “INPUT DEVICE”中的开关状态→R0 ADD addr 0001 0000 ××××××××R0+[addr] →R0 STA addr 0010 0000 ××××××××R0 →[addr] OUT addr 0011 0000 ××××××××[addr] →LED JMP addr 0100 0000 ××××××××addr →PC 其中::IN为单字长(8位),其余为双字长指令,××××××××为addr对应的二进制地址码。 为了向RAM中装入程序和数据,检查写入是否正确,并能启动程序执行,还必须设计 三个控制台操作微程序。 * 存储器读操作(KRD):拨动总清开关CLR后,控制台开关SWB、SWA为“0 0”时,按START微动开关,可对RAM连续手动读操作。 * 存储器写操作(KWE):拨动总清开关CLR后,控制台开关SWB、SWA置为“0 1”时,按START微动开关可对RAM进行连续手动写入。 * 启动程序:拨动总清开关CLR后,控制台开关SWB、SWA置为“1 1”时,按START 微动开关,即可转入到第01号“取址”微指令,启动程序运行。 上述三条控制台指令用两个开关SWB,SWA的状态来设置,其定义如表4所示。 表4 控制台的开关设置 SWB SWA 控制台指令 0 0 1 0 1 1 读内存(KRD) 写内存(KWE) 启动程序(RP) 根据以上要求,可设计数据通路框图,如图19所示。微指令定义如表4所示。 系统涉及到的微程序流程如图21所示。当拟定“取指”微指令时,该微指令的判别测 试字段为P(1)测试。由于“取指”微指令是所有微程序都使用的公用微指令,因此P(1) 的测试结果出现多路分支。本机用指令寄存器的前4位(IR7一IR4)作为测试条件,出现5路分支,占用5个固定微地址单元。 控制台操作为P(4)测试,它以控制台开关SWB,SWA作为测试条件,出现了3路分支,

实验四---条件转移指令

实验四条件转移指令 实验目的: 通过实验掌握下列知识: 1、8086指令:JZ,JNZ,JC,JNC,CMP,SHR。 2、程序:用字符搜索法确定字符串长度。 3、程序:16进制数化为ASCII码的一般方法。 实验容及步骤: 一、用字符搜索法确定字符串长度: 1、用A命令在100H开始的存处键入下列程序: JMP START ;无条件调至Start 偏移地址为102 DB 'This is the program to measure' ;定义一个字符串长度为30 DB 'the length of a string!$' ;定义字符串,长度为23 不算字符串结束符$ START: MOV BX,102 ;容为102赋给bx MOV AL,24 ;24赋给al XOR CL,CL ;cl清零 LOP: CMP AL,[BX] ;地址[0102]的容和24表示的字符$比较大小 JZ EXIT ;遇到$,调至exit,程序结束 INC BX ;bx自增1 INC CL ;cl自增1 JMP LOP ;无条件转移至lop EXIT: INT 3 2、用G命令运行此程序,并检查CL的统计长度是否与你自己统计的实际长度是否一样?

二、16进制数化ASCII码的一般方法(显示存容) 1、用A命令在100H处键入下列程序: MOV SI,0 ;将容为0的十六进制数赋给si MOV BL,10 ;将容为10的十六进制数赋给bl LOP: MOV DL,[SI] ;将地址为[0]单元的容赋给dl MOV CL,4 ;将4赋给cl SHR DL,CL ;dl的容逻辑右移4次,最低位进入cf CMP DL,0A ;dl的容和0a比较大小 JC J1 ;判断有无进位,有了转向j1 ADD DL,7 ;无进位,将7和dl的容相加 J1: ADD DL,30 ;将30和dl的容相加 MOV AH,2 ;设置功能号:2赋给ah INT 21 ;dos功能调用:显示dl寄存器的容 MOV DL,[SI] ;将[0]的容赋给dl AND DL,0F ;dl的容和0f相加 CMP DL,0A ;dl的容和0a比较大小 JC J2 ;判断有无进位,有了转向j2 ADD DL,7 ;无进位,将dl的容和7相加放入dl中 J2: ADD DL,30 ;有进位,将dl的容和30相加放入dl中 MOV AH,2 ;设置功能号:2赋给ah INT 21 ;dos功能调用:显示dl寄存器的容 MOV DL,20 ;将20赋给dl 输入一个空格字符 MOV AH,2 ;设置功能号:2赋给ah INT 21 ;dos功能调用:显示dl寄存器的容 INC SI ;si自增1 DEC BL ;dl自减1 JNZ LOP ;判断结果,若为0调至lop INT 20 ;中断程序 将十六进制数AB A先显示再让B显示再有空格的显示所以执行后执行前结果一样了 0-9 A-F十六进制数转换为ASCII码31-39 41-46 2、用N,W命令将此程序用https://www.wendangku.net/doc/5b15030902.html,文件名存入磁盘。 3、用Q命令退出DEBUG。 4、在DOS命令状态下直接运行https://www.wendangku.net/doc/5b15030902.html,命令文件,应在屏幕上显示出存从0000H开始的16个字节的容,若有错误,用DEBUG检查之。 5、自编程序:修改上面程序,使除以16进制数形式显示存容外,还能在其右边显示该16进制码所对应的ASCII字符,07-0D的控制字符用'.'代替。

基本模型机设计及实现

课程设计任务书课程名称:计算机组成原理 设计题目:(共3个课题,最多3人一组,每组任选一题) 1.基本模型机设计与实现; 2.带移位运算的模型机的设计与实现; 3.复杂模型机的设计与实现。 已知技术参数和设计要求: 内容和技术参数: 利用所学过的理论知识,特别是微程序设计的思想,写出要设计的指令系统的微程序。设计环境为TDN-CM+计算机组成原理教学实验系统,微机,虚拟软件。将所设计的微程序在此环境中进行调试,并给出测试思路和具体程序段。最后撰写出符合要求的课程设计说明书、完成答辩。 1.基本模型机设计与实现 指令系统至少要包括六条不同类型指令:如一条输入指令,一条减法指令,一条加法指令,一条存数指令,一条输出指令和一条无条件转移指令。 2. 带移位运算的模型机的设计与实现 在基本模型机的基础上增加左、右循环和左、右带进位循环四条指令 3. 设计不少于10条指令的指令系统。其中,包含算术逻辑指令,访问内存指令,程序控制指令,输入输出指令,停机指令。重点是要包括直接、间接、变址和相对寻址等多种寻址方式。 以上数据字长为8位,采用定点补码表示。指令字长为8的整数倍。微指令字长为24位。

具体要求: 1、确定设计目标 确定所设计计算机的功能和用途。 2、确定指令系统 确定数据的表示格式、位数、指令的编码、类型、需要设计哪些指令及使用的寻址方式。确定相对应指令所包含的微操作。 3、总体结构与数据通路 总体结构设计包括确定各部件设置以及它们之间的数据通路结构。在此基础上,就可以拟出各种信息传输路径,以及实现这些传输所需要的微命令。 综合考虑计算机的速率、性能价格比、可靠性等要求,设计合理的数据通路结构,确定采用何种方案的内总线及外总线。数据通路不同,执行指令所需要的操作就不同,计算机的结构也就不一样。 4、设计指令执行流程 数据通路确定后,就可以设计指令系统中每条指令所需要的机器周期数。对于微程序控制的计算机,根据总线结构,需考虑哪些微操作可以安排在同一条微指令中,哪些微操作不能安排在同一条微指令中。 5、确定微程序地址 根据后续微地址的形成方法,确定每个微程序地址及分支转移地址。 6、微指令代码化 根据微指令格式,将微程序流程中的所有微指令代码化,转化成相应的二进制代码写入到控制存储器中的相应单元中。

相关文档