计算机组成原理课程设计说明书_第1页
计算机组成原理课程设计说明书_第2页
计算机组成原理课程设计说明书_第3页
计算机组成原理课程设计说明书_第4页
计算机组成原理课程设计说明书_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、计算机组成原理课程设计说明书题目:设计求负数平方和的CISC模型计算机院(系):计算机科学与工程学院专业:计算机科学与技术学生姓名: 学号: 指导教师:陈智勇 目 录1课程设计的题目与内容11.1题目11.2内容12系统总体设计22.1CISC模型机数据通路框图的设计22.2操作控制器的逻辑框图的设计22.3模型机的指令系统和所有指令的指令格式的设计32.4时序产生电路的设计62.5机器指令的微程序流程图以及微指令的设计72.6地址转移逻辑电路的设计92.7软件清单92.8嵌入式CISC模型计算机的顶层电路图283汇编语言源程序294机器语言源程序305机器语言源程序的功能仿真波形图及结果分析

2、316故障现象和故障分析337心得体会341 课程设计的题目与内容1.1 题目设计一台嵌入式CISC模型计算机(采用定长CPU周期、联合控制方式),并运行能完成一定功能的机器语言程序进行验证,机器语言源程序功能如下:连续输入5个有符号整数(用8位二进制补码表示,十六进制数输入),求所有负数的平方和并输出显示。说明: 5个有符号数从外部输入; 一定要使用符号位(比如说SF),并且要使用负的时候转移(比如说JS)或不为负的时候转移(比如说JNS)指令; 采用三数据总线结构的运算器,采用RAM,先将输入数据依次存放在RAM的某一连续的存储区域内,再依次读出判断是否为负数,若为负数再求其平方和。1.2

3、 内容(1) 完成系统的总体设计,画出模型机数据通路框图;(2) 设计微程序控制器(CISC模型计算机)的逻辑结构框图; (3) 设计机器指令格式和指令系统; (4) 设计时序产生器电路; (5) 设计所有机器指令的微程序流程图; (6) 设计操作控制器单元;在CISC模型计算机中,设计的内容包括微指令格式(建议采用全水平型微指令)、微指令代码表(根据微程序流程图和微指令格式来设计)和微程序控制器硬件电路(包括地址转移逻辑电路、微地址寄存器、微命令寄存器和控制存储器等。具体电路根据微程序控制器的逻辑结构框图、微指令格式和微指令代码来设计)。(7) 设计模型机的所有单元电路,并用VHDL语言(也

4、可使用GDF文件-图形描述文件)对模型机中的各个部件进行编程,并使之成为一个统一的整体,即形成顶层电路或顶层文件; (8) 由给出的题目和设计的指令系统编写相应的汇编语言源程序;(9) 根据设计的指令格式,将汇编语言源程序手工转换成机器语言源程序,并将其设计到模型机中的ROM中去;(10) 使用EDA软件进行功能仿真,要保证其结果满足题目的要求;(其中要利用EDA软件提供的波形编辑器,选择合适的输入输出信号及中间信号进行调试。)(11) 器件编程,并在EDA实验平台上进行操作演示。2 系统总体设计2.1 CISC模型机数据通路框图的设计2.2 操作控制器的逻辑框图的设计2.3 模型机的指令系统

5、和所有指令的指令格式的设计1) I/O指令输入指令(IN1)格式:15 14 13 1211 109 87 6 5 4 3 2 1 0操作码 Rd输出指令(OUT1)格式:15 14 13 1211 109 87 6 5 4 3 2 1 0操作码Rs2) 转移指令非零条件转移指令(JNZ)格式:15 14 13 1211 109 87 6 5 4 3 2 1 0操作码 地址addr非负条件转移指令(JNS)格式:15 14 13 1211 109 87 6 5 4 3 2 1 0操作码 地址addr无条件转移指令(JMP)格式:15 14 13 1211 109 87 6 5 4 3 2 1

6、0操作码 地址addr3) MOV指令MOV指令格式:15 14 13 1211 109 87 6 5 4 3 2 1 0操作码 Rd立即数im4) 相加指令相加指令(ADD)格式:15 14 13 1211 109 87 6 5 4 3 2 1 0操作码RsRd5) 有符号乘法指令乘法指令(IMUL)格式:15 14 13 1211 109 87 6 5 4 3 2 1 0操作码Rd6) 加1指令加1指令(INC)格式:15 14 13 1211 109 87 6 5 4 3 2 1 0操作码Rd7) 减1指令减1指令(DEC)格式:15 14 13 1211 109 87 6 5 4 3

7、2 1 0操作码Rd8) 相与指令相与指令(AND)格式:15 14 13 1211 109 87 6 5 4 3 2 1 0操作码Rd9) 字符串存储指令乘法指令(STO)格式:15 14 13 1211 109 87 6 5 4 3 2 1 0操作码Rs地址addr10) 字符串存储指令乘法指令(STOI)格式:15 14 13 1211 109 87 6 5 4 3 2 1 0操作码RsRd11) 取数指令取数指令(LAD)格式:15 14 13 1211 109 87 6 5 4 3 2 1 0操作码RsRd指令系统表:指令助记符 指令格式 功能 15-12 11 10 9 8 7-0

8、 IN1 Rd 0001 Rd 输入设备Rd MOV Rd,im 0010 Rd im 立即数Rd LAD (Rs),Rd 0011 Rs Rd (Rs)Rd ADD Rs,Rd0100RsRd(Rs)+(Rd)RdINC Rd 0101 Rd (Rd)+1Rd DEC Rd 0110 Rd (Rd)-1Rd JNZ addr 0111 addr 若不等,则addrPC STO Rs,addr 1000 Rs addr (Rs)addr JMP addr 1001 addr addrPC OUT1 Rs 1010 Rs (Rs)输出设备 STOI Rs,(Rd) 1011 Rs Rd (Rs)

9、(Rd) IMUL Rd,Rd1100Rd(Rd) (Rd)RdAND Rd,Rd1101Rd(Rd) (Rd)RdJNS addr1110addr若不为正,则addrPC 其中,对源寄存器Rs与目的寄存器Rd的规定如下:Rs或Rd选定的寄存器00R001R110R211R3模型机规定数据的表示采用定点整数补码表示,单字长为8位,其格式如下: 76 5 4 3 2 1 0符号位尾数2.4 时序产生电路的设计T1、T2、T3、T4与CLR、Q之间的关系图如图 1所示。QCLRT1T2T3T4一个CPU周期图 12.5 机器指令的微程序流程图以及微指令的设计要设计微程序控制器,首先要设计微程序流程

10、图以及微指令,其次再设计地址转移逻辑电路以及其它逻辑单元电路,设计步骤如下:1. 根据指令格式和指令系统设计所有机器指令的微程序流程图,并确定每条微指令的微地址和后继微地址;2. 设计微指令格式和微指令代码表;3. 设计地址转移逻辑电路;4. 设计微程序控制器中的其它逻辑单元电路,包括微地址寄存器、微命令寄存器和控制存储器。其中,微程序流程图设计如下图所示:微指令流程图设计完成后,开始设计微指令格式和微指令代码表,按照要求,CISC模型机系统使用的微指令采用全水平型微指令,字长为28位,其中微命令字段为19位,P字段为3位,后继微地址为6位,其格式如下:LOAD LDPC LDAR LDIR

11、LDRi LDPSW RS_B S2 S1 S0 ALU_B SW_B LED_B RD_D CS_D RAM_B CS_I ADDR_B CS_I P1 P2 P3 u5-uO按照以上格式,依据自身设计的微指令流程图,可以得到以下的微指令代码表:2.6 地址转移逻辑电路的设计地址转移逻辑电路是根据微程序流程图中的棱形框部分及多个分支微地址,利用微地址寄存器的异步置“1”端,实现微地址的多路转移。由于微地址寄存器中的触发器异步置“1”端低电平有效,与A5A0对应的异步置“1”控制信号SE6SE1的逻辑表达式为:SE6= ZFP(3)T4SE5=ZFP(2)T4SE4=I15P(1)T4SE3=

12、I14P(1)T4SE2=I13P(1)T4SE1=I12P(1)T42.7 软件清单l ALU设计:其中S2,S1,S0表示的是算术逻辑运算单元ALU,其功能表为:S2S1S0功能000X+Y001X-Y010X+1011X-1100YY101XY110Y111YYVHDL源程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_SIGNED.all;ENTITY ALU ISPORT( X: IN STD_LOGIC_VECTOR(7 DOWNTO 0); Y:

13、IN STD_LOGIC_VECTOR(7 DOWNTO 0); S2,S1,S0: IN STD_LOGIC; ALUOUT: OUT STD_LOGIC_VECTOR(7 DOWNTO 0) ; SF,ZF: OUT STD_LOGIC );END ALU;ARCHITECTURE A OF ALU ISSIGNAL AA,BB,TEMP:STD_LOGIC_VECTOR(7 DOWNTO 0);BEGIN PROCESSBEGIN IF(S2=0 AND S1=0 AND S0=0) THEN-ADD AA=X; BB=Y; TEMP=AA+BB;ALUOUT=TEMP(7 DOWNTO

14、 0); SF=TEMP(7); IF (TEMP=10000000 OR TEMP=00000000)THEN ZF=1; ELSE ZF=0; END IF;ELSIF(S2=0 AND S1=0 AND S0=1) THEN -CMP(SUB) ALUOUT=X-Y;IF(XY) THEN SF=1; ZF=0; ELSIF(X=Y) THEN SF=0; ZF=1; ELSE SF=0; ZF=0; END IF; ELSIF(S2=0 AND S1=1 AND S0=0) THEN -INC AA=Y; TEMP=AA+1; ALUOUT=TEMP(7 DOWNTO 0); SF=T

15、EMP(7); IF (TEMP=10000000 OR TEMP=00000000) THEN ZF=1; ELSE ZF=0; END IF; ELSIF(S2=0 AND S1=1 AND S0=1) THEN -DEC AA=Y; TEMP=AA-1; ALUOUT=TEMP(7 DOWNTO 0); SF=TEMP(7); IF (TEMP=10000000 OR TEMP=00000000) THEN ZF=1; ELSE ZF=0; END IF; ELSIF(S2=1 AND S1=0 AND S0=0) THEN -AND TEMP=Y AND Y; ALUOUT=TEMP;

16、 SF=TEMP(7); IF (TEMP=10000000 OR TEMP=00000000) THEN ZF=1; ELSE ZF=0; END IF; ELSIF(S2=1 AND S1=0 AND S0=1) THEN -OR TEMP=X OR Y; ALUOUT=TEMP; SF=TEMP(7); IF (TEMP=10000000 OR TEMP=00000000) THEN ZF=1; ELSE ZFBUS ALUOUT=Y; SF=Y(7); ELSIF(S2=1 AND S1=1 AND S0=1) THEN -IMUL TEMP=Y *Y; SF=TEMP(7); ALU

17、OUT=TEMP; IF (TEMP=10000000 OR TEMP=00000000) THEN ZF=1; ELSE ZF=0; END IF;ELSE ALUOUT=00000000 ; ZF=0; END IF; END PROCESS;END A;算术逻辑单元ALU电路图如图 2所示:图 2l 4选1数据选择器MUX4VHDL源程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY MUX4_1 ISPORT(R0,R1,R2,R3:IN STD_LOGIC_VECTOR(7 DOWNTO 0);X:OUT STD_LOGIC_VECTO

18、R(7 DOWNTO 0);I11,I10:IN STD_LOGIC);END MUX4_1;ARCHITECTURE A OF MUX4_1 ISBEGIN PROCESS BEGIN IF(I11=0 AND I10=0) THEN X=R0; ELSIF(I11=0 AND I10=1)THEN X=R1; ELSIF(I11=1 AND I10=0)THEN X=R2; ELSEX=R3; END IF; END PROCESS;END A;4选1选择器MUX4电路图如图 3所示:图 3l 5选1数据选择器MUX5VHDL源程序:LIBRARY IEEE; USE IEEE.STD_L

19、OGIC_1164.ALL;ENTITY MUX5 ISPORT( SW_B,RS_B,RAM_B,ADDR_B,ALU_B : IN STD_LOGIC; SW,RS,RAM,ADDR,ALU: IN STD_LOGIC_VECTOR(7 DOWNTO 0); W: OUT STD_LOGIC_VECTOR(7 DOWNTO 0) );END MUX5;ARCHITECTURE A OF MUX5 ISSIGNAL SEL:STD_LOGIC_VECTOR(4 DOWNTO 0);BEGIN SEL=SW_B&RS_B&RAM_B&ADDR_B&ALU_B; PROCESS(SEL) BEG

20、IN IF(SEL=01111)THEN W=SW; ELSIF(SEL=10111)THEN W=RS; ELSIF(SEL=11011)THEN W=RAM; ELSIF(SEL=11101)THEN W=ADDR; ELSIF(SEL=11110)THEN W=ALU; ELSE NULL; END IF; END PROCESS;END A;5选1数据选择器电路图如图 4所示:图 4l 状态字器存器PSWVHDL源程序:LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL;ENTITY PSW ISPORT( LDPSW : IN STD_LOGIC; Z

21、I,SI: IN STD_LOGIC; FZ,FS: OUT STD_LOGIC );END PSW;ARCHITECTURE A OF PSW ISBEGIN PROCESS(LDPSW) BEGIN IF(LDPSWEVENT AND LDPSW=1)THEN FZ=ZI; FS=SI; END IF; END PROCESS;END A;状态字寄存器PSW电路图如图 5所示:图 5l 微程序控制器CROMCROM的电路图如图 6所示:图 6其内部电路图如图 7所示:图 7其组成的部件有以下: 地址转移逻辑ADDRLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.A

22、LL;ENTITY ADDR IS PORT( I15,I14,I13,I12:IN STD_LOGIC; FZ,FS,T4,P1,P2,P3:IN STD_LOGIC; SE6,SE5,SE4,SE3,SE2,SE1:OUT STD_LOGIC);END ADDR;ARCHITECTURE A OF ADDR ISBEGIN SE6=NOT (NOT FS) AND P3 AND T4); SE5=NOT (NOT FZ) AND P2 AND T4); SE4=NOT ( I15 AND P1 AND T4); SE3=NOT (I14 AND P1 AND T4); SE2=NOT (I

23、13 AND P1 AND T4); SE1=NOT (I12 AND P1 AND T4);END A;地址转移逻辑ADDR电路图如图 8所示:图 8 微命令寄存器MCOMMANDVHDL源程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_SIGNED.ALL;ENTITY MCOMMAND ISPORT( T2,T3,T4:IN STD_LOGIC; D:IN STD_LOGIC_VECTOR(20 DOWNTO 0); LOAD,LDPC,LDAR,LDI

24、R,LDRI,LDPSW,RS_B,S2,S1,S0:OUT STD_LOGIC; ALU_B,SW_B,LED_B,RD_D,CS_D,RAM_B,CS_I,ADDR_B,P1,P2,P3:OUT STD_LOGIC );END MCOMMAND;ARCHITECTURE A OF MCOMMAND ISSIGNAL DATAOUT:STD_LOGIC_VECTOR(20 DOWNTO 0);BEGIN PROCESS(T2) BEGIN IF(T2EVENT AND T2=1) THEN DATAOUT(20 DOWNTO 0)=D(20 DOWNTO 0); END IF; LOAD=D

25、ATAOUT(20); LDPC=DATAOUT(19) AND T4; LDAR=DATAOUT(18) AND T3; LDIR=DATAOUT(17) AND T3; LDRI=DATAOUT(16) AND T4; LDPSW=DATAOUT(15) AND T4; RS_B=DATAOUT(14); S2=DATAOUT(13); S1=DATAOUT(12); S0=DATAOUT(11); ALU_B=DATAOUT(10); SW_B=DATAOUT(9); LED_B=DATAOUT(8); RD_D=NOT(NOT DATAOUT(7) AND (T2 OR T3); CS

26、_D=NOT(NOT DATAOUT(6) AND T3); RAM_B=DATAOUT(5); CS_I=DATAOUT(4); ADDR_B=DATAOUT(3); P1=DATAOUT(2); P2=DATAOUT(1); P3=DATAOUT(0); END PROCESS;END A;微命令寄存器MCOMMAND电路图如图 9所示:图 9 微地址寄存器aaVHDL源程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY MMM IS PORT( SE:IN STD_LOGIC; T2:IN STD_LOGIC; D:IN STD_LOGIC

27、; CLR:IN STD_LOGIC; UA:OUT STD_LOGIC );END MMM;ARCHITECTURE A OF MMM ISBEGIN PROCESS(CLR,SE,T2) BEGIN IF(CLR=0) THEN UA=0; ELSIF(SE=0)THEN UA=1; ELSIF(T2EVENT AND T2=1) THEN UA=D; END IF; END PROCESS;END A;微程序寄存器内部电路图如图 10所示:图 10微地址寄存器aa合成图如图 11所示:图 11 微地址转换器F1VHDL源程序:LIBRARY IEEE;USE IEEE.STD_LOGIC

28、_1164.ALL;ENTITY F1 IS PORT( UA5,UA4,UA3,UA2,UA1,UA0: IN STD_LOGIC; D:OUT STD_LOGIC_VECTOR(5 DOWNTO 0);END F1;ARCHITECTURE A OF F1 ISBEGIN D(5)=UA5; D(4)=UA4; D(3)=UA3; D(2)=UA2; D(1)=UA1; D(0)=UA0;END A;微地址转换器F1电路图如图 12所示:图 12 控制存储器CONROMVHDL源程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD

29、_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_SIGNED.ALL;ENTITY CONTROM ISPORT(ADDR: IN STD_LOGIC_VECTOR(5 DOWNTO 0); UA:OUT STD_LOGIC_VECTOR(5 DOWNTO 0); O:OUT STD_LOGIC_VECTOR(20 DOWNTO 0) );END CONTROM;ARCHITECTURE A OF CONTROM ISSIGNAL DATAOUT: STD_LOGIC_VECTOR(26 DOWNTO 0);BEGIN PROCESS BEGIN CASE ADDR I

30、S END CASE; UA(5 DOWNTO 0)=DATAOUT(5 DOWNTO 0); O(20 DOWNTO 0)PC110不装入,也不计数11PC+1VHDL源程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_SIGNED.ALL;ENTITY PC ISPORT(LOAD,LDPC,CLR:IN STD_LOGIC;D:IN STD_LOGIC_VECTOR(7 DOWNTO 0);O:OUT STD_LOGIC_VECTOR(7 DOWNTO 0

31、);END PC;ARCHITECTURE A OF PC ISSIGNAL QOUT:STD_LOGIC_VECTOR(7 DOWNTO 0);BEGINPROCESS(LDPC,CLR,LOAD) BEGINIF(CLR=0)THENQOUT=00000000;ELSIF(LDPCEVENT AND LDPC=1)THENIF(LOAD=0)THENQOUT=D;ELSEQOUT=QOUT+1;END IF;END IF;END PROCESS;O=QOUT;END A; 程序计数器PC电路图如图 15所示:图 15l RAM芯片的设计RAM芯片功能表:CS_DRD_D功能1选择0()0写

32、0()1读VHDL源程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_SIGNED.ALL;ENTITY RAM IS PORT(RD_D,CS_D:IN STD_LOGIC;DIN:IN STD_LOGIC_VECTOR(7 DOWNTO 0);ADDR:IN STD_LOGIC_VECTOR(7 DOWNTO 0);DOUT:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);END RAM;ARCHITECTURE A OF RAM ISTY

33、PE MEMORY IS ARRAY(0 TO 31) OF STD_LOGIC_VECTOR(7 DOWNTO 0);BEGIN PROCESS(CS_D) VARIABLE MEM:MEMORY; BEGIN IF(CS_DEVENT AND CS_D=0) THEN IF(RD_D=0) THEN MEM(CONV_INTEGER(ADDR(4 DOWNTO 0):=DIN; ELSE DOUT=MEM(CONV_INTEGER(ADDR(4 DOWNTO 0); END IF; END IF; END PROCESS;END A;lRAM芯片的设计电路图如图 16所示:图 16l 1:

34、2分配器单元FEN2VHDL源程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY FEN2 ISPORT(LED_B:IN STD_LOGIC;DBUS:IN STD_LOGIC_VECTOR(7 DOWNTO 0);FENOUT,OUTBUS:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);END FEN2;ARCHITECTURE A OF FEN2 ISBEGIN PROCESS BEGIN IF(LED_B=0) THEN OUTBUS=DBUS; ELSE FENOUT=DBUS; END IF; END PROCE

35、SS;END A;l1:2分配器单元FEN2电路图如图 17所示:图 17l 时序产生器COUNTERVHDL源程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_SIGNED.ALL;ENTITY COUNTER IS PORT(CLK,CLR:IN STD_LOGIC;T2,T3,T4:OUT STD_LOGIC);END COUNTER;ARCHITECTURE A OF COUNTER ISSIGNAL X: STD_LOGIC_VECTOR(1 DOWN

36、TO 0);BEGIN PROCESS(CLK,CLR) BEGIN IF(CLR=0) THEN T2=0; T3=0; T4=0; X=00; ELSIF(CLKEVENT AND CLK=1)THEN X=X+1; T2=(NOT X(1)AND X(0); T3= X(1)AND (NOT X(0); T4=X(1)AND X(0); END IF; END PROCESS;END A;l时序产生器COUNTER电路图如图 18所示:图 182.8 嵌入式CISC模型计算机的顶层电路图3 汇编语言源程序MOV R1,11H ;寄存器R1用于存放RAM的某个连续区域的首地址MOV R2,

37、5H ;寄存器R2用于存放循环次数L0: IN1 R0 ;寄存器R0用于接收外部输入的数据STOI R0,(R1);将R0中的数存放入R1中RAM的地址处INC R1 ;将地址加1,跳到下一个地址DEC R2 ;将循环次数减1JNZ L0 ;循环不结束再重新跳回接收外部数据,循环结束则继续下面操作MOV R0,0 ;寄存器R0用于存放结果MOV R1,11H ;寄存器R1用于存放数据已存入RAM的某个连续区域的首地址MOV R2,5H ;寄存器R2用于存放循环次数L1: LAD (R1),R3;寄存器R3用于存放刚才存入RAM的数据INC R1 ;将地址加1,跳到下一个地址AND R3,R3

38、;取出的数自身相与,改变符号标志位SF,判断其是否为负数JNS L2 ;若不为负则跳转,取出下一个数IMUL R3,R3 ;若为负则将该数求平方和ADD R3,R0 ;将平方和加入R0L2:DEC R2 ;将循环次数减1JNZ L1 ;循环次数没有完成,则跳回去再取数STO R0,10H ;将R0存放的结果放回到RAM中10H的地址处END:OUT1 R0;输出R0的结果内容JMP END ;不断循环4 机器语言源程序地址(十六进制)汇编语言源程序机器代码00MOV R1,11H 01MOV R2,5H02L0: IN1 R003STOI R0,(R1)04INC R105DEC R206JN

39、Z L007MOV R0,008MOV R1,11H09MOV R2,5H0AL1: LAD (R1),R30BINC R10CAND R3,R30DJNS L20EIMUL R3,R30FADD R3,R010L2:DEC R211JNZ L112STO R0,10H13END:OUT1 R014JMP END5 机器语言源程序的功能仿真波形图及结果分析从外部输入5个数据,分别为01(1),FF(-1),00(0),FF(-1),00(00),得出以下波形图,结果分析如下: 当前执行的是指令MOV R2,5H,R2的值变为05 当前执行的是指令DEC R2;R2的值即将从04变成03,而之前

40、R0已从外部接收FF,R1的地址也加1,从12变成13。 当前执行的是指令LAD (R1),R3;R1此时为14,则将14H的地址中的内容传给R3,R3从00变成FF。 当前执行的是指令AND R3,R3;R3中的内容与自身相与,内容不变,所以R3还是FF。 当前执行指令IMUL R3,R3;当前R3的内容为FF,自身相乘变为01,所以R3从FF变成01。 当前执行的是指令ADD R3,R0;R0之前的值是01,R3的值是01,两者相加后存入R0,R0的值从01变成02。 R0将结果传出到输出总线,最终结果输出为02。6 故障现象和故障分析在进行课程设计的时候,遇到了很多问题,出现了故障,以下是我在课程设计出现的故障现象以及故障分析及解决:(1) 在进行波形仿真图分析的时候,我把INBUS即全部输入FF的时候,没有得出结果,并且OP一直在01到07之间不断重复,R1一直从11递减,R0一直为00,R3一直为00,R2则出现05,FF,04,FF.,这时我意识到它正在进行死循环。我再一次进行了各个寄存器的值的分析,发现R2与R0中的值不是自己想要的结果,我知道了问题出在了寄存器的使用上,我再一次核查了自己的汇编程序,结果发现,R2本身就是用来存循环次数的,在接收外部数据的时候应该用R0接收,却写成R2。将错误改正后,波形图不再进行死循环,故障解决。(2) 将死循环的问题解决后

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论