微程序设计

微程序设计
微程序设计

重庆大学课程设计报告

课程设计题目:微程序设计

学院:计算机学院

专业班级:计算机科学与技术专业二班

年级:

姓名:

学号:

完成时间:年月日成绩:

指导教师:黄仁

重庆大学教务处制

指导教师评定成绩:

指导教师签名:年月日

指导教师评定成绩:

指导教师签名:年月日

重庆大学本科学生课程设计任务书

说明:学院、专业、年级均填全称,如:计算机学院、计算机科学与技术、2010。

目录

封面 (1)

评定成绩表 (1)

课程设计任务书 (4)

目录 (5)

课程设计正文 (6)

一、总体设计 (6)

二、微指令设计 (7)

1、数据通路 (7)

2、指令格式以及编码 (9)

3、微指令格式以及编码 (10)

三、机器指令设计 (13)

四、联机调试 (13)

1、接线 (13)

2、联机写入程序 (14)

3、联机运行程序 (16)

4、结论 (18)

参考文献 (18)

课程设计总结 (19)

课程设计正文

一、总体设计()

本次课程设计的内容为基于微程序控制器的基本原理,设计并实现相应指令格式及编码,并实现各指令的微指令代码,最终用自己编写的机器指令验证。

微程序控制器的基本任务是完成当前指令的翻译和执行,即将当前指令的功能转换成可以控制的硬件逻辑部件工作的微命令序列,完成数据传送和各种处理操作。它的执行方法就是将控制各部件动作的微命令的集合进行编码,即将微命令的集合仿照机器指令一样,用数字代码的形式表示,这种表示称为微指令。这样就可以用一个微指令序列表示一条机器指令,这种微指令序列称为微程序。微程序存储在一种专用的存储器中,称为控制存储器,微程序控制器原理框图如图1所示。

图1 微程序控制器组成原理框图

微程序控制器的组成见图2,其中控制存储器采用3 片2816 的E2PROM,具有掉电保护功能,微命令寄存器18 位,用两片8D 触发器(273)和一片4D(175)触发器组成。微地址寄存器6 位,用三片正沿触发的双D 触发器(74)组成,它们带有清“0”端和预置端。在不判别测试的情况下,T2 时刻打入微地址寄存器的内容即为下一条微指令地址。当T4 时刻进行测试判别时,转移逻辑满足条件后输出的负脉冲通过强置端将某一触发器置为“1”状态,完成地址修改。

计算机执行机器指令的过程是:

1、从控制存储器中运行取指令微程序,完成从主存储器中取得机器指令的工作;

2、根据机器指令的操作码,得到相应机器指令的微程序入口;

3、逐条取出微指令,完成相关微操作控制;

4、执行下一条机器指令。

根据上述原理,我们确定了设计的步骤,首先设计机器指令的格式和编码,然后设计微程序指令的地址转移部分,其次设计微程序指令以及编码,最后设计机器指令测试程序并联机调试。

图2 微程序控制器原理图

二、微指令设计

1、数据通路()

本次课程设计采用的模型机的数据通路框图如图3所示。

图3 数据通路框图

由于复杂模型机实验指令多,寻址方式多,只用一种测试已不能满足设计要求,为此指令译码电路需要重新设计。如图4所示在IR 单元的INS_DEC 中实现。

图4 指令译码原理图

本实验中要用到四个通用寄存器R3…R0,而对寄存器的选择是通过指令的低四位,为此还设计一个寄存器译码电路,在IR 单元中实现,如图5所示。

图5 寄存器译码原理图

2、指令格式以及编码()

根据任务书要求,共有六条指令需要实现,分别是Call、Ret、Mov、Add、Addi、Load,同时为了测试方便我们加入了IN、HLT及OUT指令。本次设计指令字长为8位,每条指令具体格式如下:

(1)call ri;“满递增”堆栈,ri的内容为子程序入口地址:

该指令让程序需跳转进入子程序。其中我们用寄存器R2代表ri。但同时,我们分析发现,该指令还隐含了一个寄存器,其用来指示堆栈所在位置,故可让“满递增”堆栈用来返回地址。故我们指定了R3为此隐含的寄存器。同时,该堆栈为“满递增”,即是指堆栈首部是低地址,堆栈向高地址增长。栈指针总是指向堆栈最后一个元素。

故由上述可知,call指令的指令格式为: Call R2,(R3);

(2)ret;子程序返回:

该指令实现的内容是子程序返回,由call指令分析可知,子程序调用时的断点信息,即下一条指令的地址存放在R3中,因此该指令也隐含了R3堆栈寄存器,所以其指令格式为: Ret **,R3;

(3)HLT;停机:

该指令执行停机操作,为零地址指令,指令格式为: HLT **,**;

双字节指令有:ADD、ADDi、LOAD、IN ,其指令格式为

(1)Add ri,rj,n ;功能:R[i]=R[i]+(R[j]>>n) ,n=0-7

该指令实现的功能是带右移的加法运算,即是把Rj右移n为再相加,指令格式为:Add RS,RD,n;其中n为右移的位数;

(2)Addi ri,rj,imme ;功能:R[i]=R[j] +imme:

该指令为立即数加法运算,功能为将寄存器rj中的值加上立即数imme后送到ri 中,指令格式为:Addi rs,rd,imme;其中imm为8为立即数;

(3)load ri,rj,imme ;功能:R[i]=M[R(j)+ imme],imme为8位立即数该指令的功能为将内存单元地址(rj+imme)中的内容加载到寄存器ri中。该指令寻址方式为寄存器间接寻址。

(1)Mov addri,addrj ;功能:M[addrj]=M[addri ], i<>j:

Mov指令实现的功能是将内存单元addri中所存放的地址单元指向的内存单元的值移动到内存单元addrj中所存放的地址单元里,它的寻址方式为存储器间接寻址。

而编码后的指令格式为:(用两个**表示此寄存器没有用到,加个()表示为该

3、微指令格式以及编码()

根据机器指令系统要求,设计微程序流程图及确定微地址,如图6所示。

按照系统建议的微指令格式,见下表,参照微指令流程图,将每条微指令代码化,译成二进制代码表,并将二进制代码表转换为联机操作时的十六进制格式文件。

微指令格式表

图6 微指令流程图

三、机器指令设计()

我们根据课程设计的要求的六条指令,自己设计了一段机器指令来测试我们所设计的微指令能否实现特定的功能,机器指令如下:

$P 00 20 ;IN R0,01 把IN单元输入的值放入R0中

$P 01 01

$P 02 21 ;IN R1,01 把IN单元输入的值放入R1中

$P 03 01

$P 04 22 ;IN R2,01 把IN单元输入的值放入R2中

$P 05 01

$P 06 23 ;IN R3,01 把IN单元输入的值放入R3中

$P 07 01

$P 08 01 ;ADD R1,R0,1 R1=R1+R0>>1

$P 09 01

$P 0A 11 ;ADDi R1,R0,1 R1=R0+1

$P 0B 01

$P 0C 41 ;MOV 14,15 M[14]=M[15]

$P 0D 14

$P 0E 15

$P 0F 81 ;LOAD R1,R0,1 R1=M[R0+1]

$P 10 01

$P 11 6B ;CALL R2 子程序调用,入口地址为R2

$P 12 51 ;HLT 停机

$P 13 7B ;RET 子程序返回

$P 14 01 ;数据

$P 15 02 ;数据

$P 16 01 ;堆栈初值

$P 17 01

$P 18 01

四、联机调试()

1、接线

本次课程设计采用CISC模型机的数据通路图,按照CISC模型机的实验连线图接线,实验连线图如下:

图6 实验接线图

2、联机写入程序

选择联机软件的“【转储】—【装载】”功能将我们保存机器指令和微指令的文本文件写入机器中,文件内容如下:

;机器指令

$P 00 20 ;IN R0,01

$P 01 01

$P 02 21 ;IN R1,01

$P 03 01

$P 04 22 ;IN R2,01

$P 05 01

$P 06 23 ;IN R3,01

$P 07 01

$P 08 01 ;ADD R1,R0,1

$P 09 01

$P 0A 11 ;ADDi R1,R0,1

$P 0B 01

$P 0C 41 ;MOV 14,15

$P 0D 14

$P 0E 15

$P 0F 81 ;LOAD R1,R0,1

$P 10 01

$P 11 6B ;CALL R2

$P 12 51 ;HLT

$P 13 7B ;RET

$P 14 01 ;数据

$P 15 02 ;数据

$P 16 01 ;堆栈初值

$P 17 01

$P 18 01

;微指令

$M 00 000001 ; NOP

$M 01 006D43 ; PC->AR, PC加1 $M 03 107070 ; MEM->IR, P<1>

;ADD

$M 30 001404

$M 04 006D45

$M 05 102006

$M 06 032207

$M 07 001608

$M 08 04B201

;ADDi

$M 31 001409

$M 09 006D4A

$M 0A 10200B

$M 0B 04B201

;IN

$M 32 006D4C

$M 0C 10600D

$M 0D 183001

;OUT

$M 33 006D4E

$M 0E 10600F

$M 0F 280401

;MOV

$M 34 006D50

$M 10 106011

$M 11 102012

$M 12 006D53

$M 13 106014

$M 14 208201

;HLT

$M 35 000035

;CALL

$M 36 001615

$M 15 06B216

$M 16 006617

$M 17 200C18

$M 18 005541

;RET

$M 37 006619

$M 19 10515A

$M 1A 00161B

$M 1B 063201

;LOAD

$M 38 00141C

$M 1C 006D5D

$M 1D 10201E

$M 1E 04E21F

$M 1F 103001

3、联机运行程序

进入软件界面,选择菜单命令“【实验】—【CISC 模型机】”,打开CISC 模型机实验数据通路图,选择相应的功能命令,联机运行、监控、调试程序,由于步骤太多,我们在此选择部分截图如下:

(1)在IN指令中,将PC的值赋给AR,之后PC自增。

(2)ADDi指令中,微程序最后一步,将A+B的结果赋给RD,即此时的R1。

(3)Call指令中,将已经加1的栈指针SP(即此处的R3)赋给AR,以供内存寻到栈的位置。

4、结论

此次课程设计经过两天不断努力,我们根据模型计算机的数据路径以及微程序控制器的工作原理,设计出了各指令格式以及编码,并实现了各机器指令微代码,虽然过程中遇到了一些困难,但通过查阅资料和请教老师,最终解决了问题,完成了此次课程设计。

参考文献

《计算机组成原理实验指导书》重庆大学计算机学院

《计算机组成和设计硬件/软件接口》,David A.Patterson 编,第4版

课程设计总结

此次课程设计是这学期理论知识学习的一个实践环节,也是前面实验的一次综合训练。在此次课程设计中,通过对微程序指令的设计,用微程序控制器实现IN、OUT、ADD、ADDi、MOV、CALL、RET、LOAD等指令功能,使我对关于微程序控制器的知识有了比较系统以及深入的了解和掌握。同时,我对前面所进行的几次实验也有了更深的了解,以前在实验中一些似懂非懂的地方,这次全部都迎刃而解了。当然,这次课程设计也不是那么顺利,遇到了很多问题,但是最终都被我们一一解决了。

在课程设计一开始的时候,我们可谓是一筹莫展,不知从何下手,经过老师的初步讲解,我们开始从设计微指令流程图开始,我们首先观察实验指导书上的微指令流程图,了解一条机器指令是怎样分解为一步一步的微指令的,每一步微指令都有什么功能,在对每一步微指令有了一定的了解后,我们开始设计我们自己的微指令,对于已经存在的指令功能,如IN、OUT等指令功能,我们保持不变,对于其他不存在的指令,如CALL、RET等指令功能,我们自己设计,画出每一步指令功能的流程图。

完成微指令流程图后,微指令格式及其编码设计又是另外一个难题,在前面的微指令控制器和简单模型机实验中,虽然我们已经接触过微指令,但是那时的指令是已经设计好的,我们只是简单的输入到实验机中,然后观察结果,并不了解指令中每一位的含义,现在,我们只好分析每一条微指令,通过分析及讨论,我们明白了微指令的24位控制信息是怎样实现的,高五位是控制读写等功能的,S3-S0是控制运算类型的,A、B、C为译码字段,MA5-MA0六位是后续微地址,指向下一跳微指令的地址,弄清楚了这些,我们开始设计我们的微指令,虽然过程比较繁琐,但最终还是完成了微指令的设计。

除此之外,机器指令的设计以及线路的连接也遇到了一些问题,但最后我们都一一解决了,通过这次课程设计,我懂得了一些在理论课上关于微程序体系没有明白的知识,对实验的动手能力和与伙伴之间的协作能力也有了提高。

12级计算机科学与技术2班

2014年12月30日

本次课程设计可谓是让我收获颇丰。课程设计,其意便是让你把一学期所学融会贯通,让你对知识有更深的掌握。对于一个工科——计算机行业学生来说,动手实践是检验自己所学的最好途径。

一开始,拿到这个课题的时候,当真是一头雾水,什么都搞不懂。但幸好老师细心指导,先是为我们讲解了一下所需的知识点,指导了大致的流程。同时,在我们之后遇到问题时,也是乐于为我们解答。感谢老师!

这次课程设计也同时暴露了我们对所学的一些知识点掌握的还是不够好,其中我们重点遇到了如下问题:

(1)搞不清微程序流图中的每个地址所代表的含义,即该怎么自己设计?

(2)不能理解微程序的每个A、B、C字段所代表的含义。

(3)搞不懂微程序与机器指令的关系。

但同时,遇到的问题虽然多,但我们也没有放弃。我们小组两人通力合作,一起查阅相关资料,相互交流,印证各自的想法,同时,如果真无法想通的,便向老师和同学请教,最后终于把问题搞清楚。

如我们通过老师的讲解和自己的讨论、分析,终于明白微程序流图中的地址就是每个微程序存储的地址,其是通过上一个微程序指令的最后6位2进制来确定的。而最开始则是通过机器指令来执行的,机器指令顺序存储。从00H开始执行,同时明白了机器指令即是汇编指令翻译成二进制。而机器指令通过其OPCode指定接下来将要执行的微程序指令。而A、B、C字段的含义我们便直接参照了实验八。如:A字段的LDA,其便是代表将结果存入A中,而其余也是类似。

同时,通过本次实验,我不仅收获到了丰富的专业知识,还明白了团队合作的重要性。一个人的思维难免有局限性,但若大家一起合作,相互映证各自的想法,那么大家相互补充,困难自然迎刃而解!

12级计算机科学与技术2班

2014年12月30日

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

《计算机组成原理》课程设计报告 ——微程序设计 指导老师:丁伟 学院:计算机学院 班级:软件 1501 姓名: 学号:

一、项目任务 本项目的任务是针对第2章所述的OpenJUC-II教学机模型机,设计控制器的微程序,实现该模型机的指令系统。通过课程设计理解指令的执行过程,指令系统与硬件的关系,进而加深对计算机的结构和工作原理的理解。 二、项目设计 本项目预期分为6个上机设计步骤: Day1:熟悉微程序的设计和调试方法 Day2:双操作数指令的设计与调试 Day3:条件转移指令的设计与调试 Day4:移位指令的设计与调试 Day5:堆栈相关指令的设计与调试 Day6:中断系统的设计与调试 通过上述实践步骤,初步达成微程序设计要求,针对不同产品提出的不同要求,通过编写相应符合的微程序汇编指令,达到预期效果和收益。 三、项目需求 OpenJUC-II模型机、Quartus II软件、虚拟实验板软件、Windows计算机、预先编写完成的.sof和.scc文件。

取指令字段 取目的操作数入口取源操作数 寄存器寻址入口 寄存器间接 寄存器自增间接 立即寻址 直接寻址 间接寻址 变址寻址 相对寻址 进入取目阶段

取目的操作数阶段 从微地址028至02F依次为寄存器寻址,寄 存器间接寻址,寄存器自增间接寻址,02B 为空,直接寻址,间接寻址,变址寻址,相 对寻址 进入执行阶段 从41开始为 MOV,ADD,ADDC,SUB,SUBB,AND,OR,XOR,CMP, TEST的入口地址

保存结果的控存 SAR,SHL,SHR,ROL,ROR,RCL,RCR控存 JC,JNC,JO,JNO,JZ,JNZ,JS,JNS控存 转移的控存

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

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

目录 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上的寄存器。具体如下: X2 X1 X0 输出寄存器 0 0 0 IN_OE 外部输入门 0 0 1 IA_OE 中断向量 0 1 0 ST_OE 堆栈寄存器 0 1 1 PC_OE PC寄存器

微机原理实验三子程序设计实验

实验三 子程序设计实验 一、实验目的 1.学习子程序的定义和调用方法。 2.掌握子程序的程序设计、编制及调用。 二、实验设备 TDN86/88教学实验系统一台 三、实验内容及步骤 1.求无符号字节序列中的最大值和最小值 设有一字节序列,其存储首址为3000H ,字节数为08H 。利用子程序的方法编程求出该序列中的最大值和最小值。实验程序及流程如下: 主程序 STACK1 SEGMENT STACK DW 64 DUP(?) STACK1 ENDS CODE SEGMENT ASSUME CS:CODE START: MOV SI,3000H MOV CX,0008H CALL branch A1: JMP A1 branch: JCXZ A4 PUSH SI PUSH CX PUSH BX

子程序 实验步骤 (1)输入源程序,进行编译、链接和加载。 (2)在调试区键入E0000:3000↙,输入8个字节的数据:D9、07、8B、C5、EB、04、9D、F9。 (3)运行程序,查看结果,在调试区键入R AX↙,显示结果应为AX=F9 04,AH中为最大值,AL中为最小值。 2.数组求和 设有一字节序列(存储地址和字节数可自定义),编写程序,求出该序列的和,求和工MOV BH,[SI] MOV BL,BH A1: LODSB CMP AL,BH JBE A2 MOV BH,AL JMP A3 A2: CMP AL,BL JAE A3 MOV BL,AL A3: LOOP A1 MOV AX,BX POP BX POP CX POP SI A4: RET CODE ENDS END START

计算机程序设计技术证书考试大纲

二维动画设计工程师技术水平证书( Flash) 考试大纲 一、考试性质、目的和要求: (1) 考试性质和目的 本考试的目的在于使合格人员熟悉运用Flash 软件进行二维动画设计的基础知识、基本概念、基本制作与应用等方面的基础知识,掌握计算机二维动画设计(FLASH)基本技能,以便考生达到计算机二维设计工程师的水平。 (2) 考试的基本要求 1) 掌握计算机二维动画制作的基本概念 2) 熟悉计算机二维动画的发展前景与市场需求,制作软件的操作原理,应熟练掌握。 3) 以动态动画为基础,掌握主要Flash 的功能及应用特点 4) 熟练掌握基础动画的制作方法,能够根据实际应用进行影视动画和网页动画的制作。 5) 熟悉场景应用特点,能够根据相应的动画效果进行制作。 6) 熟悉场景动画主要特点,能够根据需要制作出基本的场景动画。 7) 掌握动作和基本脚本工作原理,能够根据应用需要选择、配置动画交互效果。 8) 根据网站动画的需要,能熟练制作出相应的网页动画与Flash 按钮,以达到为网页增强视觉效果。 二、适应岗位 二维动画工程师/网页动画工程师 1. 具备Flash 动画制作的基本知识; 2. 可以完成场景动画元素的规划、设计、绘制与调试; 3. 可对网页的实际需求,制作出相应风格的动画、按钮。 三、考试说明 1.考试形式: 应用工业和信息化部电子教育与考试中心考试系统,上机考试。 2.考试分值比例: 二维动画设计(Flash)工程师技术水平证书考试试卷由理论考试和实践考试两部分组成。试卷总分值为 100 分,其中理论题占25 分,实践题占75 分。 3.考试时间:150 分钟。 4.考核目标: 全面考察学生对于计算机二维动画基础知识、时间轴、逐帧动画、位移动画、形变动画、蒙版动画、脚本动画,以及与原画创作思想等知识的掌握程度。 四、考试内容 一:基本操作与移位动画 1、软件的概述 2、操作界面 3、椭圆工具的使用 4、更改椭圆的颜色 5、如何将散件装换为元件 6、帧的概念 7、帧速率 8、矩形工具与多边形工具的使用 9、圆角矩形的调整

微程序控制器实验报告记录

微程序控制器实验报告记录

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

计算机科学与技术系 实验报告 专业名称计算机科学与技术 课程名称计算机组成与结构 项目名称微程序控制器实验 班级 学号 姓名 同组人员无 实验日期 2015-11-11

一、实验目的 1.掌握微程序控制器的组成原理; 2.掌握微程序的编制、写入、观察微程序的运行情况。 二、实验逻辑原理图与分析 2.1 实验逻辑原理图及分析 微程序控制器的基本任务是完成当前指令的翻译和执行,即将当前指令的功能转换成可以控制硬件逻辑部件工作的微命令序列,以完成数据传输和各种处理操作。它的执行方法就是将控制各部件动作的微命令的集合进行编码,即将微命令的集合仿照机器指令一样,用数字代码的形式表示,这种表示称为微指令。这样就可以用一个微指令序列表示一条机器指令,这种微指令序列称为微程序。微程序存储在一种专用的存储器中,该存储器称为控制存储器,如图所示: 微程序控制器组成原理框图 控制器是严格按照系统时序来工作的,因而时序控制对于控制器的设计是非常重要的,从前面的实验可以很清楚地了解时序电路的工作原理。本实验所用的时序单元来提供,分为四拍TS1、TS2、TS3、TS4。 在微程序控制器的组成中,控制器采用3片2816的E^2PROM,具有掉电保护功能,微命令寄存器18位,用两片8D触发器(273)和一片4D(175)触发器组成。为地址寄存器6位,用三篇正沿触发的双D触发器(74)组成,他们带有清“0”端和预置端。在不判别测试的情况下,T2时刻打入微地址寄存器的内容即为吓一条微指令地址。当T4时刻惊醒测试判别式,转移逻辑满足条件后输出的负脉冲通过强置端将某一触发器置为“1”状态,完成地址修改。

实验3 子程序设计

实验3子程序设计实验 [实验目的] 1.掌握利用堆栈传递参数的子程序调用方法。 2.掌握子程序递归调用方法。 3.过程调用伪指令: PROC,ENDP,NEAR和FAR。 4.8088指令: CALL,RET,RET n。 5.利用RET指令退出EXE文件的方法。 [实验重点和难点] 1.利用堆栈传递参数的子程序调用方法; [实验课时] 2学时 [实验仪器] 联想启天2400微型计算机。 [实验原理] 1.参考教材的汇编语言程序设计 2. [实验内容与步骤] 1.利用堆栈传递参数的子程序调用(求累加和) 程序内容: STACK SEGMENT STACK DB 256 DUP(0) STACK ENDS DATA SEGMENT ARY1 DB 1,2,3,4,5,6,7,8,9,10 COUNT1 EQU $-ARY1 SUM1 DW ? ARY2 DB 10,11,12,13,14,15,16,17,18 COUNT2 EQU $-ARY2 SUM2 DW ? DATA ENDS MAIN SEGMENT ASSUME CS:MAIN,DS:DATA,SS:STACK START PROC FAR PUSH DS XOR AX,AX PUSH AX MOV AX,DATA MOV DS,AX MOV AX,COUNT1 PUSH AX LEA AX,ARY1 PUSH AX CALL FAR PTR SUM MOV AX,COUNT2 PUSH AX LEA AX,ARY2 PUSH AX CALL FAR PTR SUM RET START ENDP MAIN ENDS PROCE SEGMENT ASSUME CS: PROCE SUM PROC FAR MOV BP,SP MOV CX,[BP+6] MOV BX,[BP+4] XOR AX,AX ADN: ADD AL,[BX] ADC AH,0 INC BX LOOP ADN MOV [BX],AX RET 4 SUM ENDP PROCE ENDS END START 操作步骤: (1)输入,汇编并将此程序连接成EXE文件。

实验一 多道程序设计技术

实验一多道程序设计技术 一.实验内容步骤 1.首先观看DOS单道运行方式 MS-DOS是个单用户、单任务的操作系统。主机任何时候只能接纳和运行一个程序。在Windows中保留了MS-DOS。从桌面的“开始”→“程序”→“附件”→“命令提示符”,便进入了MS-DOS。该系统以命令提示符为交互界面。显示命令提示符C:\>,读者可以逐条地写出程序名字,要求系统为之执行。比如发CD,要求系统报告用户的当前目录。发DIR,要求报告当前目录所包含的文件(包括子目录)名。发DATE,要求系统报告当天日期,等等。 系统将会以一问一答的方式跟用户交互。用户以命令提示符作为发命令的依据;系统则以用户发作为命令结束符的“回车符”开始执行程序。当前程序没有执行完就不会给提示符,因而不能输入另一条命令。程序单道地、串行地执行。 最后,在命令提示符下发命令exit,退出MS-DOS,回到Windows桌面。 2. 观看多道程序同时执行 在Windows环境下可以有多种方式同时启动多个程序执行。比如,我现在用word在写文档,同时又启动了“媒体播放器”在播放音乐,word和“媒体播放器”都在工作。也可以先后启动word执行两次,一次帮我编辑第1章文稿,另一次让word调出初版时的第1章,以便对照修改。可以让两个word的窗口平铺在显示屏幕上,由此可以确信一个word 程序同时对应两个任务。不过两个窗口都要交互输入,所谓“输入焦点”只有一个。只要用鼠标点击当前需要输入的窗口,就可以激活它,从而取得输入焦点。 许多同学都有陆续启动3个以上程序同时执行的体验,一面看新闻,一面听音乐,一面还要与朋友QQ。

微程序控制实验报告 北京交通大学

微程序控制器实验报告 北京交通大学 一、实验目的 通过看懂教学计算机中已经设计好并正常运行的数条基本指令(例如:ADD、MVRR、RET等指令)的功能、格式和执行流程,然后自己设计几条指令的功能、格式和执行流程,并在教学计算机上实现、调试正确。其最终要达到: 1.深入理解计算机微程序控制器的组成和运行原理; 2.深入地学习计算机各类典型指令的执行流程; 3.对指令格式、寻址方式、指令系统、指令分类等建立具体的总体概念; 4.学习微程序控制器的设计过程和相关技术。 二、实验内容 综合型实验 思考题1:在进行56页到59页的实验时,你可能已经发现不同指令在执行的过程中都会经过相同的微地址,也就是说,不同指令的微程序也有公用部分。请你找出这些公共的微指令,说明它们所做的工作。 答:公共指令如下: (1)微址为00下址为00的指令,所做工作为:给出微程序的首地址并在启动时执行; (2)微址为30下址为3A的指令,所做工作为:完成检查中断请求。 思考题2:总结机器指令和微程序之间的关系。 答:机器指令和微程序之间的关系总结如下: (1)一条机器指令对应一个微程序,这个微程序是由若干条微指令构成的。即,一条机器指令所完成的操作划分成若干条微指令来完成,由微指令编成的微程序进行解释和执行; (2)从指令与微指令,程序与微程序,地址与微地址的一一对应关系上看,前者与内存储器有关,

而后者与控制存储器有关,与此相关也有相对应的硬设备; (3)机器指令是把程序员编写的程序经编译以后成为机器能执行的以二进制码形式表示的指令;在微程序控制的计算机中通过执行一串微指令完成一条指令的功能; 思考题3:总结指令的一般流程。 答:流程如下图:

微机原理子程序设计

实验三子程序设计 1、实验目的: (1)熟悉汇编语言的编辑、汇编、连接、运行的全过程。 (2)了解汇编语言的程序结构、学习调用过程实现输入输出及用INCLUDE 命令包含文件的方法。 (3)子程序设计 2.实验步骤: (1)用编辑软件记事本或EDIT 编辑一个扩展文件名为ASM的汇编语言源程序。 (2)用汇编程序TASM 汇编上述的汇编语言源程序,形成目标代码文件。 (扩展名为OBJ) (3)用连接程序TLINK连接目标代码文件,形成可执行文件。(扩展名为EXE) (4)运行可执行文件。观察执行结果,以验证其正确性。 3.实验内容: (1)从键盘上输入若干个十进制数(-32767

again1: mov ax,[si] cmp ax,[si+2] jle next1 xchg ax,[si+2] xchg ax,[si] next1: add si,2 loop again1 mov cx,di loop again2 mov ah,9 lea dx,out_message int 21h mov cx,count ;输出(升序) lea si,array again3: mov bx,[si] call write call dpcrlf inc si inc si loop again3 mov ax,4c00h int 21h INCLUDE out_B_D.ASM INCLUDE in_D_B.ASM END (2)从键盘上输入若干个十进制数(-32767

程序设计技术复习提纲

《程序设计技术B》复习提纲(2013) 第1章C语言与程序设计 1.学习“C语言程序设计”主要包括哪两个方面? 语法规则、程序设计方法; 2.计算机解题的过程大致分为哪四个阶段? 分析问题、设计算法、编写程序、运行验证; 3.什么是算法?算法有哪些表示方法?传统流程图的常用图形符号有哪些? 4.结构化程序设计思想的要点是什么?有哪三种基本结构? 自顶向下、逐步求精;顺序、选择、循环; 5.习题一:一题 第2章C语言基本概念 6.C程序的构成?C语句以什么结束?如何为程序加注释? 一个main函数和若干其它函数; 7.何谓关键字?ANSI C定义的关键字有哪些? 语言中被赋予特定含义的单词符号;32个…… 8.什么是标识符?标识符的命名规则? 程序中的变量、符号常量、数组、函数、类型、文件等对象的名字;在C语言中,标识符只能由字母、数字和下划线组成,且第一个字符必须为字母或下划线; 9.C语言的基本类型有哪几种?写出类型名? 整型、浮点型、字符型、枚举型;int、float、char、enum; 10.什么是常量?什么是变量?C语言中有哪四种常量,如何表示? 整数常量、浮点数常量、字符常量、字符串常量;

11.C语言的变量要“先定义,后使用”,如何定义变量?变量有哪3个要素? 变量名、存储单元、变量值; 12.掌握常用的运算符(算术运算符、赋值运算符、逗号运算符、条件运算符、关 系运算符和逻辑运算符)的运算优先级和结合性以及表达式的计算过程? 13.了解混运算时数据类型的转换? 14.习题二:一题 第3章程序控制结构 15.C语言语句可以分为哪五种类型? 达式语句、函数调用语句、控制语句、复合语句、空语句; 16.赋值语句的一般形式?赋值语句的功能?什么情况下要使用赋值语句? 17.掌握字符输入输出函数:getchar()和putchar()的使用? 18.掌握格式输入输出函数:scanf()和printf()的使用?格式说明:%d、%f、%c 和%s的含义? 19.掌握if语句和switch语句的语法结构和使用? 20.掌握while语句、do-while语句和for语句的语法结构和使用? 21.了解break语句和continue语句的作用? 22.例题:3-17、3-19、3-21、3-26、3-31 23.习题三:一、1,2,3,4,6,7,9,11,12,14,15,20,21,22,24,26,27,28,29,30二、 1,2,3,4,6,7,10,12,15,20三、1,4 四、1,4,6,8 第4章数组和字符串 24.什么是数组?程序设计中数组的作用?数组下标是从几开始的整数? 25.掌握一维数组和二维数组的定义和初始化方法? 26.掌握字符数组初始化和使用?(字符数组主要用来存储字符串)

简单模型机的微程序设计

课程设计报告 课程设计名称:简单模型机的微程序设计 系:三系 学生姓名: 班级:软件二班 学号: 成绩: 指导教师: 开课时间: 2012学年 2 学期 一、设计题目 计算机组成原理课程设计——简单模型机的微程序设计

二、主要内容 1.通过使用作者开发的微程序分析和设计仿真软件,熟悉本文介绍的为基本模型机而设计的微程序的执行过程。必须充分理解并正确解释下列问题: ⑴微程序中的微指令的各个字段的作用。哪些字段是不译码的,哪些字段是直接译码的,哪些字段又可以看成是字段间接编码的。 ⑵微程序中的微指令是否是顺序执行的,如果不是,那么次地址是如何产生的。什么情况下,次地址字段才是将要执行的微指令的地址。 ⑶在微程序中如何根据机器指令中的相关位实现分支,据此,在设计机器指令时应如何避免和解释其它指令的微指令的微地址冲突。 ⑷哪些微指令是执行所有指令都要用到的。 ⑸解释一条机器指令的微程序的各条微指令的微地址是否连续这些微指令的微地址的安排的严重原则是什么 ⑹为什么读写一次内存总要用两条微指令完成 ⑺机器程序中的用到的寄存器是R0,是由机器指令中哪些位决定的如果要用R1或R2,是否要改写微程序或改写机器指令如果要,应如何改写 2.在原有5条机器指令的基础上增加实现下述各功能的机器指令,试设计相应的机器指令的格式并改写原来的微程序使其可以运行所有的机器指令。新增加的机器指令的功能是: ①或指令OR RD,RS:(RS)或(RD)→(RD) ②减法指令SUB RD,(addr):(RD)减(addr)→(RD) ③异或指令XOR (addr1),(addr2):(addr1)异或(addr2)→(RD) ④与指令AND RD,RS:(RS)与(RD)→(RD) ⑤求反指令 NOT RD:/(RD) →(RD) 其中的RS、RD可以是R0、R1、R2中的任何一个。

宏指令及子程序设计实验

实验五:宏指令及子程序设计实验 院系名称:电子工程学院 学生姓名:李倩(33) 专业名称:电子信息工程 班级:电子0808

宏指令及子程序设计实验 5.5.1 实验目的 1、熟悉宏指令、宏定义、宏调用以及宏展开的概念;掌握宏指令的定义与调用的方法。 2、掌握子程序的定义、调用以及调用程序与子程序之间参数的传递方法。 3、了解宏指令与子程序的异同以及各自的适用场合。 5.5.2 实验预习要求 1、复习宏指令的定义与调用方法。 2、复习过子程序的定义与调用方法。 3、根据“2.5.3 实验内容”中给出的流程图和程序框架编写源程序,以便上机调试。 4、从“2.5.4 实验习题”中任选一道题目,编写源程序,以便上机调试。 5.5.3 实验内容 从键盘输入10个无符号十进制数(小于256),将其转换为二进制数并存放在NUM字节型变量中,找出其中的最大数,并将找出的最大数在 屏幕上显示出来。 要求: ①在屏幕上显示字符串提示信息的 功能由宏指令DSTRING实现; ②将键盘输入的十进制数转换成二 进制数由子程序DTOB实现; ③在N个无符号字节型二进制数中 找出最大数的功能由子程序FMAX实现; ④将一个无符号字节型二进制数转 换为十进制数并在屏幕上显示的功能由子 程序BTOAD实现。 程序运行结果如右图所示。 1、编程指导 (1)显示提示信息的宏指令DSTRING的编写 宏指令通常用于在程序中需要反复使用但所需指令条数又不是很多的情形;而对于需要经常使用且需要较多指令才能完成的功能通常通过子程序调用来实现。这是因为,从执行速度上看,由于子程序调用涉及到保护断点的操作,因此,子程序调用比宏调用执行时间相对要稍长一些;但从生成的可执行文件的大小方面考虑,子程序调用生成的文件要小一些。读者在进行汇编语言程序设计时,应综合考虑两者的利弊,以便进行合理选择。 下面给出实现提示信息显示的宏指令的定义: DSTRING MACRO STRING PUSH DX PUSH AX MOV DX,OFFSET STRING MOV AH,09H INT 21H POP AX POP DX ENDM 请读者注意,宏指令应该先定义,后调用。因此,宏定义通常紧跟在代码段中段寄存器赋值指令之

实验五微程序设计实验

实验五微程序设计实验 一、实验目的: 深入学懂计算机各种指令的设计和执行过程,掌握微程序设计的概念。 二、预习要求: .复习微程序控制器工作原理; .复习计算机各种指令和微程序的有关知识。 三、实验设备: 型计算机组成原理实验系统一台,连接线若干。 四、微程序的设计: .微指令格式 设计微指令编码格式的主要原则是使微指令字短、能表示可并行操作的微命令多、微程序编写方便。 微指令的最基本成份是控制场,其次是下地址场。控制场反映了可以同时执行的微操作,下地址场指明下一条要执行的微指令在控存的地址。微指令的编码格式通常指控制场的编码格式,以下几种编码格式较普遍。 )最短编码格式 这是最简单的垂直编码格式,其特点是每条微指令只定义一个微操作命令。采用此格式的微指令字短、容易编写、规整直观,但微程序长度长,访问控存取微指令次数增多从而使指令执行速度慢。 )全水平编码格式 这种格式又称直接编码法,其特点是控制场每一位直接表示一种微操作命令。若控制场长位,则至多可表示个不同的微操作命令。 采用此格式的微指令字长,但可实现多个允许的微操作并行执行,微程序长度短,指令执行速度快。 )分段编码格式是将控制场分成几段。若某段长位,则经译码,该段可表示个互斥的即不能同时有效的微操作命令。 采用这种格式的微指令长度较短,而可表示的微操作命令较多,但需译码器。 .微程序顺序控制方式的设计 微程序顺序控制方式指在一条指令对应的微程序执行过程中,下一条微指令地址的确定方法,又叫后继地址生成方式。下面是常见的两种。 )计数增量方式

这种方式的特点是微程序控制部件中的微地址中的微地址产生线路主要是微地址计数器。的初值由微程序首址形成线路根据指令操作码编码形成。在微程序执行过程中该计数器增量计数,产生下一条微指令地址。这使得微指令格式中可以不设置“下地址场”。缩短了微指令长度,也使微程序控制部件结构较简单。但微程序必须存放在控存若干连续单元中。 微操作控制信号 加 图 )断定方式 微指令中设有“下地址场”,它指出下条微指令的地址,这使一条指令的微程序中的微指令在控存中不一定要连续存放。在微程序执行过程中,微程序控制部件中的微地址形成电路直接接受微指令下地址场信息来产生下条微指令地址,微程序的首址也由此微地址形成线路根据指令操作码产生。见图。 .本系统的微指令格式 微程序设计的关键技术之一是处理好每条微指令的下地址,以保证程序正确高效地进行。在本系统中,为位的后续微地址,、、为三个译码字段,分别由三个控制位译码出多位。字段中的 是四个测试字位。其功能是根据机器指令 微操作控制信号

程序设计技术总复习

“程序设计技术”总复习 一、Simple Choice Questions((每题2分,16题共32 分) 1. Which of the following function declarations are illegal? a. void t1(int x, int y = 0, int z); b. void t4(int x = 0, int y = 0, int z = 0); c. void t2(int x = 0, int y = 0, int z); d. void t3(int x, int y = 0, int z = 0); e. a and c Key:e # 2. What is the printout of the following code? #include using namespace std; void f(int &p1, int p2) { p1++; p2++; } int main() { int x1 = 1; int x2 = 1; f(x1, x2); cout <<"x1 is "<< x1 <<" x2 is "<< x2; } a. x1 is 2 x2 is 2 b. x1 is 1 x2 is 2 c. x1 is 1 x2 is 1 d. x1 is 2 x2 is 1 Key:d # 3. The following program invokes p() three times. What is the printout from the last call of p()? #include using namespace std;

(完整word版)微程序控制器实验

计算机科学与技术系 实验报告 专业名称计算机科学与技术 课程名称计算机组成原理 项目名称微程序控制器实验 班级 学号 姓名 同组人员 实验日期

一、实验目的与要求 实验目的 (1)掌握微程序控制器的组成原理 (2)掌握微程序控制器的编制、写入,观察微程序的运行过程 实验要求 (1)实验之前,应认真准备,写出实验步骤和具体设计内容,否则实验效率会很低,一次实验时间根本无法完成实验任务,即使基本做对了,也很难说懂得了些什么重要教学内容; (2)应在实验前掌握所有控制信号的作用,写出实验预习报告并带入实验室; (3)实验过程中,应认真进行实验操作,既不要因为粗心造成短路等事故而损坏设备,又要仔细思考实验有关内容,把自己想不明白的问题通过实验理解清楚; (4)实验之后,应认真思考总结,写出实验报告,包括实验步骤和具体实验结果,遇到的问题和分析与解决思路。还应写出自己的心得体会,也可以对教学实验提出新的建议等。实验报告要交给教师评阅后并给出实验成绩; 二、实验逻辑原理图与分析 画实验逻辑原理图 逻辑原理图分析 地址转移逻辑 微地址寄存器 控制存储器 地址译码 P 字段 控制字段 状态条 ... ... 微命令信号 指令寄存器IR OP

微程序控制器的基本任务是完成当前指令的翻译个执行,即将当前指令的功能转换成可以控制的硬件逻辑部件工作的微命令序列,完成数据传送和各种处理操作。 它的执行方法就是将控制各部件动作的微命令的集合进行编码,即将微命令的集合仿照机器指令一样,用数字代码的形式表示,这种表示成为微指令。这样就可以用一个微指令序列表示一条机器指令,这种微指令序列称为微程序。微程序存储在一种专用的存储器中,称为控制存储器。 三、数据通路图及分析(画出数据通路图并作出分析) (1)连接实验线路,检查无误后接通电源。如果有警报声响起,说明有总线竞争现象,应关闭电源,检查连线,直至错误排除。 (2)对微控制器进行读写操作,分两种情况:手动读写和联机读写。 1、手动读写 手动对微控制器进行编程(写) 1.将时序与操作台单元的开关KK1置为“停止”档,KK3置为“编程”档,KK4置为“控存”档,KK5置为“置数”档 2.使用CON单元的SD05——SD00给出微地址,IN单元给出低8位应写入的数据,连续两次按动时序与操作台单元的ST,将IN单元的数据写到该单元的低8位。 3.将时序与操作台单元的开关KK5置为“加1”档。 4.IN单元给出中8位应写入的数据,连续两次按动时序与操作台单元的开关ST,将IN单元的数据写到该单元的中8位。IN单元给出高8位应写入的数据,连续两次按动时序与操作台单元的开关ST,将IN单元的数据写到该单元的高8位。 5.重复1.2.3.4.四步,将下表的微代码写入到2816芯片中。 手动对微控制器进行校验(读)

微机实验 子程序设计

微机实验三分支和循环程序设计实验 一、分支程序设计实验 1.实验目的 1.掌握分支程序的结构。 2掌握分支程序的设计、调试方法。 2.实验设备 微机一台 3.内容 设计一数据块间的搬移程序 设计思想: 程序要求把内存中一数据区(称为源数据块)传送到另一存贮区(称为目的数据块)。源数据块和目的数据块在存贮中可能有三种情况。 对于两个数据块分离的情况,数据的传送从数据块的首址开始,或者从数据块的末址开始均可,但对于有部分重叠的情况,则要加以分析,否则重叠部分会因“搬移”而遭破坏。 可以得出以下结论:当源数据块首址〉目的块首址时,从数据块首址开始传送数据。当源数据块首址〈目的块首址时,从数据块末地址开始传送数据。 流程图: 结果: 在源数据块中存入6个数,分别使SI大于、等于、小于DI均发觉数据正确传送。可见程序正确。

实现代码如下: DATA SEGMENT ORG 3500H SRC_MESS DB 1,2,3,4,5,6 ORG 3510H NEW_LOC DB 20 DUP(0) DATA ENDS ; CODE SEGMENT ASSUME CS:CODE,DS:DATA,ES:DATA START: MOV AX,DATA MOV DS,AX MOV ES,AX LEA SI,SRC_MESS LEA DI,NEW_LOC MOV CX,6 CLD ;DF置0 CMP SI,DI ;源数据块首址〈目的块首址时,从数据块末地址开始传送数据。 JL NEXT1 ;如果SI小于DI,则跳转到NEXT1(否则直接执行NEXT2) NEXT2: REP MOVSB NEXT1: ADD SI,CX ; SI=SI+CX-1 从末地址开始传递数据 DEC SI ; ADD DI,CX ;DI+=DI+CX-1 DEC DI ; STD ; DF置1 JMP NEXT2 ; CODE ENDS END START 结果显示:将3500H开始的1,2,3,4,5,6复制到3510H开始的地址。 DATA SEGMENT

实验六、微程序设计实验

实验六、微程序设计实验 一、实验目的 了解模型机中微程序控制器的结构、工作原理和控制方法,掌握微程序和微指令的概念,掌握微指令周期和T周期的概念。 二、实验要求 使用CP226实验平台,完成若干条指令的执行,理解微命令和微指令如何控制指令的执行。 三、实验内容 利用模型机的“单微指令运行”功能,分析数据传输、算术运算、逻辑运算、分支转移等指令的微指令控制方法(模型机的微指令集见附件3),并跟踪程序和填写表6-1的内容。 实验用代码如下(说明:下面的指令之间没有必然的逻辑性,只是让大家理解指令与微指令之间的内在关系,以及微命令对微指令的控制作用): MOV A,#12 ;将12存入累加器A ADD A,R1 ;寄存器R1的内容和累加器A的内容相加后,结果送入累加器A中 L1: AND A,@R1 ;累加器A的内容和由R1指向的存储单元的内容相“与”后送入A RL A ;累加器A的内容左移一位 JMP L1 ;无条件跳转到L1的地址处 END 表6-1:程序跟踪结果

下图为模型机CP226微程序控制器的结构图 图6-1 微程序控制器的结构图 四、模型机的状态周期和微控制信号 在本模型机中,一条指令最多分四个状态周期,一个状态周期为一个时钟脉冲,每个状 态周期产生不同的控制逻辑,实现模型机的各种功能。 模型机有24 位控制位以控制寄存器的输入、输出,选择运算器的运算功能,存储器的 读写。24 位控制位分别介绍如下: 控制字段位D23 D22 D21 D20 D19 D18 D17 D16 微控制命令XRD EMWR EMRD PCOE EMEN IREN EINT ELP 控制字段位D15 D14 D13 D12 D11 D10 D9 D8 微控制命令MAREN MAROE OUTEN STEN RRD RWR CN FEN 控制字段位D7 D6 D5 D4 D3 D2 D1 D0 微控制命令X2 X1 X0 WEN AEN S2 S1 S0 微控制命令的含义如下: XRD :外部设备读信号,当给出了外设的地址后,输出此信号,从指定外设读数据。

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

微程序控制器的设计与实现 一、设计目的 1、巩固和深刻理解“计算机组成原理”课程所讲解的原理, 加深对计算机各模块协同工作的认识。 2、掌握微程序设计的思想和具体流程、操作方法。 3、培养学生独立工作和创新思维的能力,取得设计与调试的 实践经验。 4、尝试利用编程实现微程序指令的识别和解释的工作流程。 二、设计内容 按照要求设计一指令系统,该指令系统能够实现数据传送,进行加、减运算和无条件转移,具有累加器寻址、寄存器寻址、寄存器间接寻址、存储器直接寻址、立即数寻址等五种寻址方式。 三、设计具体要求 1、仔细复习所学过的理论知识,掌握微程序设计的思想,并根、 据掌握的理论写出要设计的指令系统的微程序流程。指令系统至少要包括六条指令,具有上述功能和寻址方式。 2、根据微操作流程及给定的微指令格式写出相应的微程序 3、将所设计的微程序在虚拟环境中运行调试程序,并给出测试思 路和具体程序段 4、撰写课程设计报告。

四、设计环境 1、伟福COP2000型组成原理实验仪,COP2000虚拟软件。 2、VC开发环境或者Java开发环境。 五、设计方案 (1)设计思想 编写一个指令系统,根据所编写的指令的功能来设计相应的微程序。首先利用MOV传送指令来给寄存器和累加器传送立即数,实现立即数寻址;利用寄存器寻址方式,用ADDC指令对两者进行相加运算;利用寄存器间接寻址方式,用SUB指令实现减运算;利用累加器寻址方式,用CPL指令实现对累加器寻址;利用存储器寻址方式,用JMP 指令实现程序的无条件跳转。这样,所要设计的指令系统的功能就全部实现了。 (2)微指令格式 采用水平微指令格式的设计,一次能定义并执行多个并行操作微命令的微指令,叫做水平型微指令。其一般格式如下: 按照控制字段的编码方法不同,水平型微指令又分为三种:全水平型(不译法)微指令,字段译码法水平型微指令,以及直接和译码相混合的水平型微指令。 (3)24个微指令的意义 COP2000 模型机包括了一个标准CPU 所具备所有部件,这些部件包括:运算器ALU、累加器A、工作寄存器W、左移门L、直通门D、右

北京理工大学汇编语言实验报告实验五 子程序设计实验

实验五子程序设计实验(设计性实验) 一、实验要求和目的 1.熟悉汇编语言程序设计结构; 2.熟悉汇编语言子程序设计方法; 3.熟悉利用汇编语言子程序参数传递方法; 4.熟悉汇编语言字符串处理基本指令的使用方法; 5.掌握利用汇编语言实现字符串的输入输出程序设计方法; 6.掌握数制转换程序实现方法。 二、软硬件环境 1、硬件环境:计算机系统windows; 2、软件环境:装有MASM、DEBUG、LINK、等应用程序。 三、实验涉及的主要知识 A)子程序知识要点: 1、掌握子程序的定义语句; 过程名 PROC [near/far] 过程体 RET 过程名 ENDP 2.子程序结构形式 一个完整的子程序一般应包含下列内容: 1. )子程序的说明部分 在设计了程序时,要建立子程序的文档说明,使用户能清楚此子程序的功能和调用方法. 说明时,应含如下内容: .子程序名:命名时要名中见意. .子程序的功能:说明子程序完成的任务; .子程序入口参数:说明子程序运行所需参数及存放位置; .子程序出口参数:说明子程序运行结果的参数及存放位置; .子程序所占用的寄存器和工作单元; .子程序调用示例; 2、)掌握子程序的调用与返回 在汇编语言中,子程序的调用用CALL,返回用RET 指令来完成。 .段内调用与返回:调用子程序指令与子程序同在一个段内。因此只修改IP; .段间调用与返回:调用子程序与子程序分别在不同的段,因此在返回时,需同时修改CS:IP。 3.)子程序的现场保护与恢复 保护现场:在子程序设计时,CPU 内部寄存器内容的保护和恢复。 一般利用堆栈实现现场保护和恢复的格式: 过程名PROC [NEAR/FAR]

可编程控制技术试题库及答案共7页word资料

一、填空 1、可编程控制器的硬件组成与微型计算机相似,其主机由CPu、存储器、输入偷出接口、电源等几大部分组成。 2、输入输出信号有开关量、模拟量、数字量三种类型。 3、可编程控制器的输出有三种形式:一种是晶闸管输出、一种是继电器输出、晶体管输出。 4、一般将输入/输出总点数在128点以内的PLC称为小型PLC;输入/输出总点数大于128点、小于1024点的PLC称为中型PLC;输入/输出总点数超过1024点的PLC 称为大型PLC。 5、FX2系列PLC基本单元和扩展单元均采用开关电源。开关电源输出DC5V、DC12V、DC24V三种电压等级的直流电 6、5V的一路供内部IC用,12V的一路用以驱动输出继电器,24V的一路提供给用户以作传感器的电源。 7、SET指令称为“置位指令”,其功能是驱动线圈,使其具有自锁功能,维持接通状态。 8、置位指令的操作元件为输出继电器Y、辅助继电器M和状态继电器S。 9、NOP指令又称为“空操作指令”。 10、END指令称为“结束指令”。 11、“OUT”称为“输出指令”和“驱动指令”。 12、“LD”为取指令的助记符。“LDI”为取反指令的助记符。 13、双向计数器就是即可设置为增计数,又可设置为减计数的计数器。 14、计数器的设定值除了可由常数K直接设定外,还可通过指定数据寄存器的元件号来间接设定。 15、状态元件S在步进顺控程序的编程中是一类非常重要的软元件,它与后述的步进顺控指令STL组合使用。 16、辅助继电器的线圈与输出继电器一样,由PLC内部各元件的触点驱动。。 17.辅助继电器的电子常开和常闭触点使用次数不限,在PLC内可自由使用。 18.辅助继电器不能直接驱动外部负载,外部负载只能由输出继电器驱动。 19.ANB指令是电路块与指令,ORB是电路块或指令,与and、or指令不同 20.MC指令是多路输出指令中的主控指令,MCR与其配合使用称为主控复位指令。 21.在PLC栈操作中,有进栈指令MPS,出栈指令MPP和读盏指令MRD。 22.栈操作必须MPS与MPP成队出现,MRD指令可以根据应用随意出现。 23. 置位指令SET驱动线圈,具有自锁功能。RST为复位指令。 24.PLS为上升沿脉冲指令,PLF为下降沿脉冲指令,皆输出一个扫描周期的脉冲信号。 二、判断 1.一类特殊辅助继电器的线圈由PLC自动驱动,用户只能利用其触点。例如: M8000——运行(RUN)监控(PLC运行时即自动接通) 2.M8002——初始脉冲(仅在运行开始瞬间接通)。 3、M8012——100 ms时钟脉冲。 4 这类特殊辅助继电器的线圈可由用户驱动,而线圈被驱动后,PLC将作特定动作。例如:M8030——使BATT LED(后备锂电池欠电压指示灯)熄灭 5.M8033——PLC停止运行时输出保持 6.M8034——禁止全部输出 7.M8039——定时扫描 8.状态元件初始状态SO--$9共10点

相关文档
最新文档