1112L1008《计算机组成原理》实验指导书_第1页
1112L1008《计算机组成原理》实验指导书_第2页
1112L1008《计算机组成原理》实验指导书_第3页
1112L1008《计算机组成原理》实验指导书_第4页
1112L1008《计算机组成原理》实验指导书_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

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

文档简介

计算机组成原理实验指导书(北京交通大学海滨学院计算机科学系)

编写教师:李济生刘音陈端君田春子实验一、寄存器实验一、实验目的了解模型机中各种寄存器的结构、工作原理及其控制方法,掌握运算器中寄存器的数据传输方法和基本控制原理,为后续学习CPU中数据在各寄存器之间的传输做必要的知识储备。二、实验要求使用CP226实验平台,将要求的数据写入相关的寄存器,并能得到准确的实验结果。三、实验内容利用CP226实验平台上的K23-K16开关作为DBUS的数据,K7..K0中的某些开关作为控制信号(控制方式见六),将K23-K16上的数据写入累加器A、工作寄存器W、数据寄存器组R0、R1、R2、R3中。其具体内容如下(本实验为脱机实验):将二位学生学号的最后2位以BCD码的方式分别写入累加器A和工作寄存器W中,并将实验结果的局部贴图粘贴在实验报告上;将二位学生学号的最后2位以BCD码的方式分别写入R0和R1、R2和R3工作寄存器中,并将实验结果的局部贴图粘贴在实验报告上。说明:假设某学生的学号是10112025,则最后两位是25,它的BCD码是25H,此时开关K23-K16提供的数据见表1-1所示。表1-1:学号后两位为25时,K23..K16的开关数据(开关拨到上方为1,拨到下方为0)开关名称K23K22K21K20K19K18K17K16开关信号值00100101四、模型机概况CP226模型机中包括了一个标准CPU所具备所有部件,这些部件包括:运算器ALU、累加器A、工作寄存器W、左移门L、直通门D、右移门R、寄存器组R0-R3、程序计数器PC、地址寄存器MAR、堆栈寄存器ST、中断向量寄存器1人、输入端口IN、输出端口寄存器OUT、程序存储器EM、指令寄存器IR、微程序计数器uPC、微程序存储器uM,以及中断控制电路、跳转控制电路。其中运算器和中断控制电路以及跳转控制电路用CPLD实现,其它电路都是由离散的数字电路组成。模型机为8位机,数据总线、地址总线都为8位,但其工作原理与16位机相同。相比而言8位机的实验减少了烦琐的连线,但其原理却更容易被学生理解、吸收(模型机的结构见附件1)。五、实验电路1,实验平台中累加器A和工作寄存器五、实验电路1,实验平台中累加器A和工作寄存器W的电路图OC>CLKID1Q2D2Q3D3Q4D4Q5D5Q6D6Q7D7Q8DSQ图1-1累加器A的电路图OC

>CLKQQQQQQQQ12345678OC

>CLKQQQQQQQQ12345678lD2Dm4D5D6D7D8D图1-2工作寄存器W的电路图2,工作寄存器R0-R3的电路图_/A¥9也E曰盅IDXII1PWEgBIJ?>D3^><I»CX5_/A¥9也E曰盅IDXII1PWEgBIJ?>D3^><I»CX5S<g^><DKJBL;■1403441趋,株Sf图1-3工作寄存器R0-R3的电路图六、实验接线与控制信号设置1.实验内容1从图1-1和1-2可见,要使K23-K16上的数据写入到累加器A和工作寄存器W,必须要使DBUS数据线与开关K23-K16相连,使AEN和WEN分别为低电平,并在CK信号产生上升沿(74HC574是上升沿触发)。由于CK内部已连接到STEP按键上,所以要用STEP按键提供写入累加器A和工作寄存器W的控制信号。写入寄存器A和W的实验连线如表1-2所示。表1-2:将学号的最后2位写入累加器A和工作寄存器W的连线与电平设置表连接信号孔接入孔作用状态说明1J1座J3座将K23-K16接入DBUS[7:0]实验模式:手动2AENK3选通A低电平有效3WENK4选通W低电平有效4CK已连ALU工作脉冲上升沿打入表1-2-1:写入累加器A的控制信号K4(WEN)K3(AEN)10表1-2-2:写入工作寄存器W的控制信号K4(WEN)K3(AEN)012,实验内容2按着对实验内容1的分析方法,写入寄存器R0..R3的实验连线如表1-3所示。表1-3:将学号的最后4位写入工作寄存器R0..R3的连线与电平设置表连接信号孔接入孔作用状态说明1J1座J3座将K23-K16接入DBUS[7:0]实验模式:手动2RRDK11寄存器组读使能高电平有效(不读)3RWRK10寄存器组写使能低电平有效4SBK1寄存器选择B5SAK0寄存器选择A6CK已连寄存器工作脉冲上升沿打入表1-3-1写入工作寄存器R0.,R3的控制信号寄存器K1(SB)K0(SA)写入寄存器R000写入寄存器R101写入寄存器R210写入寄存器R311六、实验步骤请按下述步骤操作:关闭实验箱的电源,分别按实验连线表(表1-2或表1-3)连接线路;将K23-K16开关置零(全部拨到下方),然后打开实验箱的电源,按[RST]钮,再按[TV/ME]键三次(不要过快),即进入“Hand......”手动状态;按输入数据要求改变波动开关K23.,K16位置(表1-1),形成不同学生学号的BCD码;分别按控制信号设置的要求(表1-2-1和表1-2-2或表1-3-1)改变控制值,然后按动STEP按键,此时数据被写入相应的寄存器中。实验二、运算器实验一、实验目的了解模型机中运算器的结构、工作原理及其控制方法,掌握运算器的数据源、算法选择和数据运算的控制方法,以便掌握运算器的算术运算和逻辑运算的功能。二、实验要求使用CP226实验平台中的运算器完成加、减、与、或、非等运算,并得到准确的实验结果。三、实验内容利用CP226实验平台上的K23-K16开关作为DBUS的数据,K7..K0中的某些开关作为控制信号(控制方式见五),将数据写累加器A和工作寄存器W,并用S0、S1、S2信号控制ALU的运算算法,实现运算器的加、减、与、或、非等运算功能。其具体内容如下(本实验为脱机实验):将二位学生学号的最后2位以BCD码的方式分别写入累加器A和工作寄存器W中,实现A+W、A-W、A或W、A与W、A+W+C、A-W-C、〜A等运算,并将运算结果(选择直通门D)填写在表2-1中。表2-1实验结果表K5(CyIN)K2(S2)K1(S1)K0(S0)结果(直通门D)注释X(任意)000加运算X001减运算X010或运算X011与运算0100带进位加运算1100带进位加运算0101带进位减运算1101带进位减运算X110取反运算X111输出A说明:假设某个学生的学号是10128025,则最后两位是25,它的BCD码是25H,此时开关K23-K16提供的数据表2-2示。

开关名称K23K22K21K20K19K18K17K16开关信号值00100101四、实验电路CP226中的运算器由一片CPLD实现,能完成8种运算,通过S0,S1,S2来选择,运算数据由寄存器A和寄存器W提供,运算结果输出到直通门D,运算器的基本电路如图2-1所示。图2-1运算器的电路图五、实验接线与控制信号设置实验连线要考虑下面两方面的内容:要使K23-K16上的数据写入到累加器A和工作寄存器W,必须要使DBUS数据线与开关K23-K16相连,使AEN和WEN分别为低电平,并在CK信号产生上升沿。由于CK内部已连接到STEP按键上,所以用STEP按键提供写入累加器A和工作寄存器W的控制信号。要控制运算器完成指定的运算,就必须选择运算算法,运算器的算法控制由信号S0、S1、S2产生,若再考虑到进位信号等,运算器的实验连线如表2-3所示。表2-3:运算器实验的连线与电平设置表连接信号孔接入孔作用状态说明1J1座J3将K23-K16接入DBUS[7:0]实验模式:手动2S0K0运算器功能选择3S1K1运算器功能选择4S2K2运算器功能选择5AENK3选通A低电平有效6WENK4选通W低电平有效7CyINK5运算器进位输入8CK已连ALU工作脉冲上升沿打入表2-4:运算方法选择的控制信号S2S1S0功能000A+W加001A-W减010AIW或011A&W与100A+W+C带进位加101A-W-C带进位减110〜AA取反111A输出A六、实验步骤请按下述步骤操作:关闭实验箱的电源,按实验连线表(表2-3)连接线路;将K23-K16开关置零(全部拨到下方),然后打开实验箱的电源,按[RST]钮,再按[TV/ME]键三次(不要过快),即进入“Hand..•••.”手动状态;按输入数据要求改变波动开关K23..K16位置(表2-2),形成不同学生学号的BCD码;按运算方法选择的控制信号的要求(表2-4)改变控制值,然后按动STEP按键,此时就得到了某种运算的结果;重复4的过程,直到表2-1的运算结果全部得到为止。实验三、运算器输出的移位门控制实验一、实验目的了解模型机中运算器的结构、工作原理及其控制方法,掌握运算器中算术运算和逻辑运算的数据源、算法和输出控制的选择,以便掌握运算器运算结果的传送方法。二、实验要求使用CP226实验平台,利用运算器数据选通功能,将运算器的输出数据做直通、左移和右移操作,或将累加器A的内容传送到工作寄存器W中,并能得到准确的实验结果。三、实验内容利用CP226实验平台上的K23-K16开关作为DBUS的数据,K7..K0中的某些开关作为控制信号,首先将数据写入累加器A中,然后利用运算器的选通功能(S0=1、S1=1、S2=1)直接输出,观测累加器A直通、左移和右移的输出结果;再将累加器A的内容传送到工作寄存器W中。其具体内容如下(本实验为脱机实验):将两位学生学号的最后2位以BCD码的方式写入累加器A中,经过运算器的直通或移位操作后,将实验结果填写在表3-1和表3-2中。表3-1第一位学生学号的实验结果表CNCy_INL(左移后的结果)D(直通后的结果)R(右移后的结果)0X(任意)将累加器A的内容经运算器传送到工作寄存器W中,提示如下:•在X2=X1=X0=1(运算器没有输出)和S2=S1=S0=1(运算器选择累加器A直通)的情况下初始化实验平台;将K23.,K16的数据输入到累加器A中(选择AEN=0,WEN=1后,按STEP键);X2=1、X1=X0=0(运算器选择直通门输出)和S2=S1=S0=1(运算器选择累加器A直通),且AEN=1、WEN=0,压STEP键。四、实验电路CP226中的运算器由一片CPLD实现,共有8种运算,通过S0,S1,S2来选择,运算数据由寄存器A和寄存器W提供,运算结果输出可以是直通、左移或右移。当S0=1、S1=1、S2=1时,累加器A的内容直接从运算器输出。运算器的基本电路如图3-1所示。图3-1运算器的电路图<11<X2VCCAY0BY1CY2Y3Y4eTY5E2Y6<11<X2VCCAY0BY1CY2Y3Y4eTY5E2Y6E3Y71514131210IN_OE>ia^oe>ST^QE>PCOE_>DjOT:>R^OE>Coe>图3-2运算器数据输出选择电路图五、实验接线与控制信号设置五、实验接线与控制信号设置请同学们结合前面的实验来考虑本实验的连线,并结合表3-4运算方法选择控制信号完成本实验的连线。表3-4:运算方法选择的控制信号X2X1X0输出寄存存器000IN_OE外部输入门001IA_OE中断向量010ST_OE堆栈寄存器011PC_OEPC寄存器100D_OE直通门101R_OE右移门110L_OE左移门111没有输出六、实验步骤请同学按下述步骤操作:关闭实验箱的电源,连线实验连接线路;将K23-K16开关置零(全部拨到下方),然后打开实验箱的电源,按[RST]钮,再按[TV/ME]键三次(不要过快),即进入“Hand..•••.”手动状态;按输入数据要求改变波动开关K23..K16位置,形成不同的学号BCD码;设定控制信号,按动STEP按键,此时A的内容就通过运算器做移位或直通操作;按着设定的控制方式完成累加器A的内容传送到工作寄存器W中。实验四、存储器EM读写实验一、实验目的一、实验目的了解模型机中存储器的结构、工作原理及其控制方法,掌握存储器的写地址、写数据和读数据的过程及信号控制方法。二、实验要求使用CP226实验平台,完成向存储器的地址寄存器MAR写地址、向存储器单元写数据和从存储器单元中读数据,并能得到准确的实验结果。三、实验内容利用CP226实验平台上的K23-K16开关作为DBUS的数据(存储器的地址和写入的数据都要通过K23.,K16传送到存储器里),K7..K0中的某些开关作为控制信号(控制方式见五),以完成模拟机中存储器的读写操作过程。其具体内容如下(本实验为脱机实验):将二位学生学号的最后2位以BCD码的方式写入存储地址为1开始的连续2个单元中;读取从存储地址为1开始的连续2个单元中的数据,并将实验结果的局部贴图粘贴在实验报告上。说明1:将学号25写入存储单元的0地址需要的操作如下:(1)将地址1写入地址寄存器MAR中•二进制开关K23-K16用于MAR的地址输入,置为01H;开关名称K23K22K21K20K19K18K17K16开关信号值00000001•设置控制信号,MAREN=0,其它为1;开关名称K6(IREN)K5(PCOE)K4(MAROE)K3(MAREN)K2(EMEN)K1(EMRD)K0(EMWR)开关信号值1110111•按动STEP键,则K23.,K16输入的地址就写入到MAR寄存器中。(2)将学号25以BCD码的方式写入存储器的1地址单元中EM[1]•二进制开关K23-K16用于学号的输入,置为25H;开关名称K23K22K21K20K19K18K17K16开关信号值00100101•设置控制信号,MAROE=0、EMEN=0、EMWR=0,其它为1;开关名称K6(IREN)K5(PCOE)K4(MAROE)K3(MAREN)K2(EMEN)K1(EMRD)K0(EMWR)开关信号值1101010•按动STEP键,则有K23.,K16输入的学号25H就写入到EM[1]中。说明2:从存储单元的1地址读取存储的学号,需要的操作如下:将地址1写入MAR寄存器中(同前);从存储器的1地址单元中读取数据,需要改变的控制命令是:MAROE=0、EMRD=0,其

它均为1,即。开关名称K6(IREN)K5(PCOE)K4(MAROE)K3(MAREN)K2(EMEN)K1(EMRD)K0(EMWR)开关信号值1101101此时存储单元1地址的内容EM[1]被读出。四、实验电路模型机CP226的存储器EM是由一片6116RAM构成(见图4-1所示),是用户存放程序和数据的地方。存储器EM通过一片74HC245与数据总线相连,存储器EM的地址可选择由PC或MAR提供(本实验中选用MAR)。存储器EM的数据输出直接接到指令总线IBUS,指令总线IBUS的数据还可以来自另一片74HC245。当ICOE为0时,这片74HC245输出中断指令B8H。<EK-IEN<EMRDP〈ABUSO〈ABUS1《ABUS2〉ABUS3〈ABUS4《<EK-IEN<EMRDP〈ABUSO〈ABUS1《ABUS2〉ABUS3〈ABUS4《ABUS5〈ABUS6.ABUS7<EMWR>AOBOAlBlA2B2A3B3A4B4A5B5A6B<5A7B7DIRAOB0AlB1A2B2A3B3A4B4A5B5A6B6A7B7EDIR74HC245DBUSO>DBUS1>——p-<DBUS2>——^-<DBUS3>―DBUS4>—p-<DBUS5>DBU喝〉——DBUS7>IBUSO>IBUS1>IBUS2>IBUS3>IBUS4>IBUS5>IBUS6>IBUS7>五、实验接线与控制信号设置存储器读写实验的连线见表4-1所示。表4-1:存储器读写实验的连线与电平设置表连接信号孔接入孔作用状态说明1J2座J3座将K23-K16接入DBUS[7:0]实验模式:手动2IRENK6IR,uPC写允许低电平有效3PCOEK5PC输出地址低电平有效4MAROEK4MAR输出地址低电平有效5MARENK3MAR写允许低电平有效6EMENK2存储器与数据总线相连低电平有效7EMRDK1存储器读允许低电平有效8EMWRK0存储器写允许低电平有效9CK已连PC工作脉冲上升沿打入10CK已连MAR工作脉冲上升沿打入

11CK已连存储器写脉冲上升沿打入12CK已连IR,uPC工作脉冲上升沿打入六、实验步骤请同学按下述步骤操作:1.2.关闭实验箱的电源,按实验连线表(表4-1)连接线路;将K23-K16开关置零(全部拨到下方),然后打开实验箱的电源,按[RST]钮,再按[TV/ME]键三次(不要过快),即进入“Hand......”手动状态;3.按“说明1”中描述的过程写入第1个学号;4.按“说明1”中描述的过程写入第1.2.3.按“说明1”中描述的过程写入第1个学号;4.按“说明1”中描述的过程写入第2个学号;5.按“说明2”中描述的过程读出第1个学号;6.按“说明2”中描述的过程读出第2个学号。实验五、指令系统实验一、实验目的一、实验目的理解模型机指令系统,包括指令类型、寻址方式等,掌握模型机指令集中相关指令的含义,为学习CPU的指令控制奠定基础。二、实验要求使用CP226实验平台,完成一段程序的执行,理解不同寻址方式指令和不同指令类型指令的执行过程,并得到准确的实验结果。三、实验内容三、实验内容模型机指令系统包括五种寻址方式,分别是立即数寻址、累加器寻址、寄存器寻址、寄存器间接寻址和存储器间接寻址。本实验针对不同指令类型的寻址方式和类型得到程序中各条指令的执行结果(模型机的指令集见附件2),其内容如下(联机实验):将一位学生学号的最后2位以BCD码放到累加器A中,另一位的学生学号的最后2位以BCD码放到存储器的01H地址单元中,请将两个学号相减,通过R1寄存器的内容提示两个学号之间的大小关系。上述描述的内容可以用下面的程序实现(假设第1个学号后两位的BCD码是25H,第二个是08H)。注意:学号已经通过代码传送到A或存储器,不必再设定K23..K16后通过按动STEP键传送。程序如下:MOVMOVMOVA,#08H01H,AA,#25H;将第二个学号存入累加器A中;将第二个学号转存到存储器的1MOVMOVMOVA,#08H01H,AA,#25H海滨学院计算机科学系计算机组成原理实验指导书MOVR0,#01H;R0指向存储单元的1地址SUBA,@R0;第一个学号和第二个学号相减JCL1;如果第一个学号小于第二个学号,则转移到L1MOVJMPR1,#0FFHL2;第一个学号大于第二个学号,则完成(R1)=0FFHL1:MOVL2:NOPENDR1,#01H;第一个学号小于第二个学号,则完成(R1)=01H;无操作,空指令请执行上述代码,并完成表5-1的内容:表5-1:指令执行序列的结果指令指令类型指令的机器码目的操作数的寻址方式源操作数的寻址方式累加器A中的内容R0中的内容R1中的内容PC中的内容MOVA,#08HMOV01H,AMOVA,#25HMOVR0,#01HSUBA,@R0JCL1MOVR1,#0FFHJMPL2MOVR1,#01H选做:将两个操作数颠倒,即完成第2个学号减去第1个学号,并填充上述表格。四、实验接线与控制信号设置在指令系统实验中,模型机作为一个整体来工作的,所有的控制信号由CPU产生,而不是由开关输出。做该实验之前,只要用8芯电缆连接J1和J2即可,此时系统处于联机状态(在这种状态下,实验仪的监控系统会自动打开uM的输出允许,微程序的各控制信号就会接到各寄存器、运算器的控制端口,系统自动默认装入缺省指令系统/非流水微指令系统文件:insfilel.mic)。硬件连接和设置方式如下:拔掉实验仪上所有的手工连接的接线;用8芯电缆连接J1和J2;将控制方式开关KC拨到“微程序”方向。五、实验步骤请按下述步骤操作:关闭实验箱的电源,拔掉实验仪上所有的手工连接的接线,用8芯电缆连接J1和J2,将控制方式开关KC拨到“微程序控制”方向;将实验箱的电源打开,启动实验系统软件,用快捷图标的“连接通信口”功能打开设置窗口,选择实验仪连接的串行口(选择串口1),然后再点击“OK”按钮,此时微机就连接通到实验平台;在CP226的源程序窗口中输入代码、修改程序、汇编成机器码,并将程序的机器码下载到实验平台内;选择单步执行代码,并将执行的结果填写在表5-1中;执行到最后一条NOP指令后,观察R1寄存器的值;可以尝试将两个学号颠倒,执行完程序后,观察R1寄存器的值。实验六、微程序设计实验一、实验目的一、实验目的了解模型机中微程序控制器的结构、工作原理和控制方法,掌握微程序和微指令的概念,掌握微指令周期和T周期的概念。二、实验要求使用CP226实验平台,完成若干条指令的执行,理解微命令和微指令如何控制指令的执行。三、实验内容利用模型机的“单微指令运行”功能,分析数据传输、算术运算、逻辑运算、分支转移等指令的微指令控制方法(模型机的微指令集见附件3),并跟踪程序和填写表6-1的内容。实验用代码如下(说明:下面的指令之间没有必然的逻辑性,只是让大家理解指令与微指令之间的内在关系,MOVADDL1:ANDRLAJMP间的内在关系,MOVADDL1:ANDRLAJMPL1END以及微命令对微指令的控制作用):将12存入累加器A寄存器R1的内容和累加器A的内容相加后,结果送入累加器A中累加器A的内容和由R1指向的存储单元的内容相“与”后送入A累加器A的内容左移一位无条件跳转到L1的地址处A,#12A,R1A,@R1助记符状态微地址微程序数据输出数据打入地址输出运算器uPCPCT000CBFFFF指令寄存器IRPC输出A输出写入+100MOVA,#12T17CC7FFF7存贮器值EM寄存器APC输出A输出+1+1T07DCBFFFF指令寄存器IRPC输出A输出写入+1图6-1微程序控制器的结构图四、模型机的状态周期和微控制信号在本模型机中,一条指令最多分四个状态周期,一个状态周期为一个时钟脉冲,每个状态周期产生不同的控制逻辑,实现模型机的各种功能。模型机有24位控制位以控制寄存器的输入、输出,选择运算器的运算功能,存储器的读写。24位控制位分别介绍如下:控制字段位D23D22D21D20D19D18D17D16微控制命令XRDEMWREMRDPCOEEMENIRENEINTELP控制字段位D15D14D13D12D11D10D9D8微控制命令MARENMAROEOUTENSTENRRDRWRCNFEN控制字段位D7D6D5D4D3D2D1D0微控制命令X2X1X0WENAENS2S1S0微控制命令的含义如下: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三位组合来译码选择将数据送到DBUS上的寄存器。WEN:将数据总线DBUS的值打入工作寄存器W中。AEN:将数据总线DBUS的值打入累加器A中。S2、S1、S0三位组合决定ALU做何种运算。五、实验接线与控制信号设置在微程序设计实验中,模型机作为一个整体来工作的,所有微程序的控制信号由微程序存储器uM输出,而不是由开关输出。做该实验之前,只要用8芯电缆连接J1和J2即可,此时系统处于联机状态(在这种状态下,实验仪的监控系统会自动打开uM的输出允许,微程序的各控制信号就会接到各寄存器、运算器的控制端口,系统自动默认装入缺省指令系统/非流水微指令系统文件:insfile1.mic)。连接和设置方式如下:拔掉实验仪上所有的手工连接的接线;用8芯电缆连接J1和J2;将控制方式开关KC拨到“微程序”方向。六、实验步骤请同学按下述步骤操作:关闭实验箱的电源,拔掉实验仪上所有的手工连接的接线,用8芯电缆连接J1和J2,将控制方式开关KC拨到“微程序控制”方向;将实验箱的电源打开,启动实验系统软件,用快捷图标的“连接通信口”功能打开设置窗口,选择实验仪连接的串行口(选择串口1),然后再点击“OK”按钮接通到实验仪;在CP226的源程序窗口中输入代码、修改程序、汇编成机器码,并将程序的机器码下载到实验平台内;选择“单微指令运行”功能,单步跟踪执行代码,并将执行的结果填写在表6-1中。实验七、中断实验一、实验目的理解模型机中断系统,从微程序层面上学习中断请求、中断响应、中断处理、中断入口地址的产生、中断服务程序及中断返回(RETI)整个过程。二、实验要求使用CP226实验平台,完成一段中断程序的执行,理解微程序控制器处理中断的过程,并得到准确的实验结果。三、实验内容模型机中的IA单元模块是用来设置中断服务程序的入口地址,若将拨码开关设置为“11100000”时,中断服务成的入口地址为0E0H,在执行下述程序时,按快捷图标的F7,即执行“单微指令运行”功能,在跟踪到转移指令时,按下实验仪上中断请求按钮(右下角矩阵键盘上的REG)。中断请求灯亮,在指令的最后一条微指令执行完,就会响应中断,中断响应灯亮。本实验内容:用“单微指令运行”运行中断程序,观察程序执行过程中的中断请求、中断响应和中断返回,以及中断过程中的堆栈和相关寄存器(PC及uPC)的变化,并填写完成程序跟踪表,分析中断的整个过程。中断程序的相关代码是:MOVA,#00;将0存入累加器AL1:JMPL1;无条件跳转到L1(死等待)ORG0E0H;ORD是伪指令,将中断服务程序从0E0H地址开始存放,

;0E0H即为中断服务程序的入口地址ADDA,#1;在中断服务程序里,将累加器A的内容加1RETI;中断返回END表7-1:程序跟踪表(仅要求跟踪1次中断过程)助记符状态微地址微程序数据输出数据打入地址输出运算器uPCPCT000CBFFFF指令寄存器IRPC输出A输出写入+100MOVA,#00T17CC7FFF7存贮器值EM寄存器APC输出A输出+1+1T07DCBFFFF指令寄存器IRPC输出A输出写入+1四、中断程序执行过程相关信息提示程序的开始执行一条取指的微指令,读入程序第一条指令。MOVA,#00:将累加器的值设为00H,以便下面观察A加1后的结果。JMP02:程序无条件跳转到02地址,等待中断。在执行此指令时,按下实验仪上的中断请求钮,中断请求的灯会亮。在本指令的T0状态即取指状态,IREN有效将中断处理微程序地址0B8H,送到指令总线IBUS上。_INT_:本指令为中断处理微程序,有三个状态周期。在T2状态,微指令的值为0FFEF7FH,其中X2X1X0=011(二进制),表示从PC中读出数据送到DBUS上,STEN有效表示将DBUS上数据存入堆栈寄存器ST中,这条微指令执行的就是将PC值(即下条将执行的指令的地址)存入堆栈。在T1状态,微指令值为0FEFF3FH,其中X2X1X0=001表示将中断地址寄存器IA的值送到DBUS上,IA的缺省值为0E0H,ELP有效,与指令寄存器IR的IR3、IR2=10(二进制)组合,将DBUS值存入PC,实现程序的跳转。在T0状态以中断地址0E0H为地址取出中断服务程序的第一条指令。ADDA,01:本指令将累加器加1。RETI:本指令有两个状态周期。在T1状态,取出的微指令为0FCFF5FH,X2X1X0=010(二进制)表示从ST读出数据送到DBUS上,EINT有效清除中断请求标志和中断响应标志,以便程序返回后,可以再次响应中断,ELP有效与IR3、IR2=11表示无条件将数据总线DBUS的值打入PC,实现中断服务程序返回功能。在T0状态,按新PC取出指令。五、实验接线与控制信号设置五、实验接线与控制信号设置在指令系统实验中,模型机作为一个整体来工作的,所有的控制信号由CPU产生,而不是由开关输出。做该实验之前,只要用8芯电缆连接J1和J2即可,此时系统处于联机状态(在这种状态下,实验仪的监控系统会自动打开uM的输出允许,微程序的各控制信号就会接到各寄存器、运算器的控制端口,系统自动默认装入缺省指令系统/非流水微指令系统文件:insfilel.mic)。连接和设置方式如下:拔掉实验仪上所有的手工连接的接线;用8芯电缆连接J1和J2;将控制方式开关KC拨到“微程序控制”方向;将IA单元的18红色拨动开关设置为“11100000”。六、实验步骤请按下述步骤操作:关闭实验箱的电源,拔掉实验仪上所有的手工连接的接线,用8芯电缆连接J1和J2,将控制方式开关KC拨到“微程序控制”方向,将IA单元的18红色拨动开关设置为'11100000”;将实验箱的电源打开,启动实验系统软件,用快捷图标的“连接通信口”功能打开设置窗口,选择实验仪连接的串行口(选择串口1),然后再点击“OK”按钮接通到实验仪;在CP226的源程序窗口中输入代码、修改程序、汇编成机器码,并将程序的机器码下载到实验平台内;选择“单微指令运行”执行代码,在指令开始执行后的任何时候,按动一次中断请求按钮,观察中断响应的过程;继续用“单微指令运行”执行代码,直到中断返回,观察累加器A的内容。实验八、输入/输出实验一、实验目的了解模型机输出寄存器的结构及控制方法,掌握手动输出控制和程序输出控制的基本方法,以便学会与外设之间的数据交换方法。二、实验要求使用CP226实验平台,完成数据的输入与输出控制,并能得到准确的实验结果。三、实验内容分别采用手动控制方式(脱机方式)和微程序控制方式(联机方式)以BCD码的方法输入和输出两位学生学号的后两位(假设学号分别为10112025、10112008,则后两位的BCD码分别是25H和08H)。其具体内容如下:

采用手动控制方式,将某位学生学号以BCD码的方式通过IN寄存器输入到累加器A,然后再输出到输出寄存器OUT中(IN寄存器的输入端内部已经连接到了K23.,K16,所以不必再连线,此时J1要与J2相连);采用微程序控制方式,将某位学生学号以BCD码的方式输入到累加器A,然后在输出到输出寄存器OUT中。相关的代码如下:IN;通过输入寄存器IN输入数据到累加器A中,数据在K23.,L16上OUT;将累加器A中数据输出到输出寄存器OUT,结果可以从LED灯上看出IN;通过输入寄存器IN输入数据到累加器A中,数据在K23.,L16上OUT;将累加器A中数据输出到输出寄存器OUT,结果可以从LED灯上看出下面是输入寄存器IN、输出寄存器OUT和输出选择器的电路图A0E0A1B1A2B2A3B3下面是输入寄存器IN、输出寄存器OUT和输出选择器的电路图A0E0A1B1A2B2A3B3A4B4A5B5A6B6A7B?EDIRDBUS7DBUS6DBUS5DBUS4DBUS3DBUS2DBUS1DBUS0五、74HC3274HC574DBUS7>DBUS6>DBUS5>DBUS4>DBUS3>DBUS2>五、74HC3274HC574DBUS7>DBUS6>DBUS5>DBUS4>DBUS3>DBUS2>DBUS1>DBUSO>K5c:lDDDDDDDD-oC12345678QQQQQQQQ123456781918171615亘1312OUT7>OUT6>OUT5>OUT4>OUT3>OUT2>OUT1:OUTO>图8-2输出寄存器OUT的电路图图8-3数据输出到总线的选择电路图AYOBY1CY2Y3Y4ElY5E2Y6E3Y7实验接线与控制信号设置1.实验内容1(手动方式)手动方式的实验连线请同学们自己考虑完成,这里要注意:写入累加器时AEN=0、OUTEN=1,而写入OUT寄存器时,AEN=1、OUTEN=0。实验内容2(联机方式)联机实验要注意下述连接:•拔掉实验仪上所有的手工连接的接线;用8芯电缆连接J1和J2;将控制方式开关KC拨到“微程序”方向。六、实验步骤脱机实验按下述步骤操作关闭实验箱的电源,实验连线;将K23-K16开关置零,然后打开实验箱的电源,按RST]钮,再按[TV/ME]键三次,即进入"Hand......”手动状态;设置输入学号和控制信号,然后按动STEP按键,将数据被写入累加器A中;设置控制信号,然后按动STEP按键,此时数据被写入输出寄存器OUT中。联机实验按下述步骤操作

将实验箱的电源打开,启动实验系统软件,建立串口连接;在CP226的源程序窗口中输入和修改代码、汇编成机器码后下载到实验平台内;选择“单微指令运行”代码,观察OUT输出值。附件1:模型机的结构图结构图窗口显示模型机的内部结构,包括各种寄存器(A、W、R0-R3、MAR、IR、ST、L、D、R)、运算器(ALU)、程序指针(PC)、程序存储器(EM)、微程序指针(uPC)、微程序存储器(uM)及各种状态位(RCy、Rz、IReq、IAck),在程序单步运行时,可以在结构图上看到数据的走向及寄存器的输入输出状态。其中DBUS为数据总线、ABUS为地址总线、IBUS为指令总线。RT1、RT0显示的将要执行的指令的第几个时钟周期。本模型机最多有四个时钟周期,用RT1、RT0的11、10、01、00四个状态表示。附件2:模型机的指令集助记符机器码1机器码2注释_FATCH_000000XX实验机占用,不可修改,复位后,所有寄存器清0(IR除外),首先执行_FATCH—指令取指000001XX未使用000010XX未使用000011xx未使用

ADDA,R?000100xx将寄存器R?的值加入累加器A中ADDA,@R?000101xx将间址存储器的值加入累加器A中ADDA,MM000110xxMM将存储器MM地址的值加入累加器A中ADDA,#II000111xxII将立即数II加入累加器A中ADDCA,R?001000xx将寄存器R?的值加入累加器A中,带进位ADDCA,@R?001001xx将间址存储器的值加入累加器A中,带进位ADDCA,MM001010xxMM将存储器MM地址的值加入累加器A中,带进位ADDCA,#II001011xxII将立即数II加入累加器A中,带进位SUBA,R?001100xx从累加器A中减去寄存器R?的值SUBA,@R?001101xx从累加器A中减去间址存储器的值SUBA,MM001110xxMM从累加器A中减去存储器MM地址的值SUBA,#II001111xxII从累加器A中减去立即数I【加入累加器A中SUBCA,R?010000xx从累加器A中减去寄存器R?值,减进位SUBCA,@R?010010xx从累加器A中减去间址存储器的值,减进位SUBCA,MM010010xxMM从累加器A中减去存储器MM地址的值,减进位SUBCA,#II010011xxII从累加器A中减去立即数II,减进位ANDA,R?010100xx累加器A“与”寄存器R?的值ANDA,@R?010101xx累加器A“与”间址存储器的值ANDA,MM010110xxMM累加器A“与”存储器MM地址的值ANDA,#II010111xxII累加器A“与”立即数IIORA,R?011000xx累加器A“或”寄存器R?的值ORA,@R?011001xx累加器A"或”间址存储器的值ORA,MM011010xxMM累加器A“或”存储器MM地址的值ORA,#II011011xII累加器A“或”立即数IIMOVA,R?011100xx将寄存器R?的值送到累加器A中MOVA,@R?011101xx将间址存储器的值送到累加器A中MOVA,MM011110xxMM将存储器MM地址的值送到累加器A中MOVA,#II011111xxII将立即数II送到累加器A中MOVR?,A100000xx将累加器A的值送到寄存器R?中MOV@R?,A100001xx将累加器A的值送到间址存储器中MOVMM,A100010xxMM将累加器A的值送到存储器MM地址中MOVR?,#II100011xxII将立即数II送到寄存器R?中READMM100100xxMM从外部地址MM读入数据,存入累加器A中WRITEMM100101xxMM将累加器A中数据写到外部地址MM中100110xx未使用100111xx未使用JCMM101000xxMM若进位标志置1,跳转到MM地址JZMM101001xxMM若零标志位置1,跳转到MM地址101010xx未使用JMPMM101011xxMM跳转到MM地址101100xx未使用101101xx未使用_INT_101110xx实验机占用,不可修改。进入中断时,实验机硬件产生—INT—指令

CALLMM101111xxMM调用MM地址的子程序IN110000xx从输入端口读入数据到累加器A中OUT110001xx将累加器A中数据输出到输出端口110010xx未使用RET110011xx子程序返回RRA110100xx累加器A右移RLA110101xx累加器A左移RRCA110110xx累加器A带进位右移RLCA110111xx累加器A带进位左移NOP111000xx空指令CPLA111001xx累加器A取反,再存入累加器A中111010xx未使用RETI111011xx中断返回111100xx未使用111101xx未使用111110xx未使用111111xx未使用附件3:模型机的微指令集助记符状微地微程序数据输出数据打入地址输出运算器移位控制uPCPC_FATCH_T000CBFFFF指令寄存器IRPC输出A输出写101FFFFFFA输出102FFFFFFA输出103FFFFFFA输出1UNDEFT004CBFFFF指令寄存器IRPC输出A输出写105FFFFFFA输出106FFFFFFA输出107FFFFFFA输出1UNDEFT008CBFFFF指令寄存器IRPC输出A输出写109FFFFFFA输出10AFFFFFFA输出10BFFFFFFA输出1UNDEFT00CCBFFFF指令寄存器IRPC输出A输出写10DFFFFFFA输出10EFFFFFFA输出10FFFFFFFA输出1ADDA,R?T210FFF7EF寄存器值R?寄存器WA输出1T111FFFE90ALU直通寄存器A标志位C,Z加运算1T012CBFFFF指令寄存器IRPC输出A输出写113FFFFFFA输出1ADDA,@R?T314FF77FF寄存器值R?地址寄存器MARA输出1T215D7BFEF存贮器值EM寄存器WMAR输出A输出1T116FFFE90ALU直通寄存器A标志位C,Z加运算1

T017CBFFFF指令寄存器IRPC输出A输出写1ADDT318C77FFF存贮器值EM地址寄存器MARPC输出A输出11T219D7BFEF存贮器值EM寄存器WMAR输出A输出1T11AFFFE90ALU直通寄存器A标志位C,Z加运算1T01BCBFFFF指令寄存器IRPC输出A输出写1ADDA,#IIT21CC7FFEF存贮器值EM寄存器WPC输出A输出11T11DFFFE90ALU直通寄存器A标志位C,Z加运算1T01ECBFFFF指令寄存器IRPC输出A输出写11FFFFFFFA输出1助记符状微地微程序数据输出数据打入地址输出运算器移位控制uPCPCADDCA,R?T220FFF7EF寄存器值R?寄存器WA输出1T121FFFE94ALU直通寄存器A标志位C,Z带进位加运1T022CBFFFF指令寄存器IRPC输出A输出写123FFFFFFA输出1ADDCA,@R?T324FF77FF寄存器值R?地址寄存器MARA输出1T225D7BFEF存贮器值EM寄存器WMAR输出A输出1T126FFFE94ALU直通寄存器A标志位C,Z带进位加运1T027CBFFFF指令寄存器IRPC输出A输出写1ADDCA,MMT328C77FFF存贮器值EM地址寄存器MARPC输出A输出11T229D7BFEF存贮器值EM寄存器WMAR输出A输出1T12AFFFE94ALU直通寄存器A标志位C,Z带进位加运1T02BCBFFFF指令寄存器IRPC输出A输出写1ADDCA,#IIT22CC7FFEF存贮器值EM寄存器WPC输出A输出11T12DFFFE94ALU直通寄存器A标志位C,Z带进位加运1T02ECBFFFF指令寄存器IRPC输出A输出写12FFFFFFFA输出1SUBA,R?T230FFF7EF寄存器值R?寄存器WA输出1T131FFFE91ALU直通寄存器A标志位C,Z减运算1T032CBFFFF指令寄存器IRPC输出A输出写133FFFFFFA输出1SUBA,@R?T334FF77FF寄存器值R?地址寄存器MARA输出1T235D7BFEF存贮器值EM寄存器WMAR输出A输出1T136FFFE91ALU直通寄存器A标志位C,Z减运算1T037CBFFFF指令寄存器IRPC输出A输出写1SUBA,MMT338C77FFF存贮器值EM地址寄存器MARPC输出A输出11T239D7BFEF存贮器值EM寄存器WMAR输出A输出1T13AFFFE91ALU直通寄存器A标志位C,Z减运算1T03BCBFFFF指令寄存器IRPC输出A输出写1SUBA,#IIT23CC7FFEF存贮器值EM寄存器WPC输出A输出11T13DFFFE91ALU直通寄存器A标志位C,Z减运算1T03ECBFFFF指令寄存器IRPC输出A输出写13FFFFFFFA输出1

助记符状微地微程序数据输出数据打入地址输出运算器移位控制uPCPCSUBCA,R?T240FFF7EF寄存器值R?寄存器WA输出1T141FFFE95ALU直通寄存器A标志位C,Z带进位减运1T042CBFFFF指令寄存器IRPC输出A输出写143FFFFFFA输出1SUBA,@R?T344FF77FF寄存器值R?地址寄存器MARA输出1T245D7BFEF存贮器值EM寄存器WMAR输出A输出1T146FFFE95ALU直通寄存器A标志位C,Z带进位减运1T047CBFFFF指令寄存器IRPC输出A输出写1SUBCA,MMT348C77FFF存贮器值EM地址寄存器MARPC输出A输出11T249D7BFEF存贮器值EM寄存器WMAR输出A输出1T14AFFFE95ALU直通寄存器A标志位C,Z带进位减运1T04BCBFFFF指令寄存器IRPC输出A输出写1SUBCA,#IIT24CC7FFEF存贮器值EM寄存器WPC输出A输出11T14DFFFE95ALU直通寄存器A标志位C,Z带进位减运1T04ECBFFFF指令寄存器IRPC输出A输出写14FFFFFFFA输出1ANDA,R?T250FFF7EF寄存器值R?寄存器WA输出1T151FFFE93ALU直通寄存器A标志位C,Z与运算1T052CBFFFF指令寄存器IRPC输出A输出写153FFFFFFA输出1ANDA,@R?T354FF77FF寄存器值R?地址寄存器MARA输出1T255D7BFEF存贮器值EM寄存器WMAR输出A输出1T156FFFE93ALU直通寄存器A标志位C,Z与运算1T057CBFFFF指令寄存器IRPC输出A输出写1ANDA,MMT358C77FFF存贮器值EM地址寄存器MARPC输出A输出11T259D7BFEF存贮器值EM寄存器WMAR输出A输出1T15AFFFE93ALU直通寄存器A标志位C,Z与运算1T05BCBFFFF指令寄存器IRPC输出A输出写1ANDA,#IIT25CC7FFEF存贮器值EM寄存器WPC输出A输出11T15DFFFE93ALU直通寄存器A标志位C,Z与运算1T05ECBFFFF指令寄存器IRPC输出A输出写15FFFFFFFA输出1助记符状微地微程序数据输出数据打入地址输出运算器移位控制uPCPCORA,R?T260FFF7EF寄存器值R?寄存器WA输出1T161FFFE92ALU直通寄存器A标志位C,Z或运算1T062CBFFFF指令寄存器IRPC输出A输出写163FFFFFFA输出1ORA,@R?T364FF77FF寄存器值R?地址寄存器MARA输出1T265D7BFEF存贮器值EM寄存器WMAR输出A输出1T166FFFE92ALU直通寄存器A标志位C,Z或运算1T067CBFFFF指令寄存器IRPC输出A输出写1

ORA,MMT368C77FFF存贮器值EM地址寄存器MARPC输出A输出11T269D7BFEF存贮器值EM寄存器WMAR输出A输出1T16AFFFE92ALU直通寄存器A标志位C,Z或运算1T06BCBFFFF指令寄存器IRPC输出A输出写1ORA,#IIT26CC7FFEF存贮器值EM寄存器WPC输出A输出11T16DFFFE92ALU直通寄存器A标志位C,Z或运算1T06ECBFFFF指令寄存器IRPC输出A输出写16FFFFFFFA输出1MOVA,R?T170FFF7F7寄存器值R?寄存器AA输出1T071CBFFFF指令寄存器IRPC输出A输出写172FFFFFFA输出173FFFFFFA输出1MOVA,@R?T274FF77FF寄存器值R?地址寄存器MARA输出1T175D7BFF7存贮器值EM寄存器AMAR输出A输出1T076CBFFFF指令寄存器IRPC输出A输出写177FFFFFFA输出1MOVA,MMT278C77FFF存贮器值EM地址寄存器MARPC输出A输出11T179D7BFF7存贮器值EM寄存器AMAR输出A输出1T07ACBFFFF指令寄存IRPC输出A输出写17BFFFFFFA输出1MOVA,#IIT17CC7FFF7存贮器值EM寄存器APC输出A输出11T07DCBFFFF指令寄存器IRPC输出A输出写17EFFFFFFA输出17FFFFFFFA输出1助记符状微地微程序数据输出数据打入地址输出运算器移位控制uPCPCMOVR?,AT180FFFB9FALU直通寄存器R?A输出1T081CBFFFF指令寄存器IRPC输出A输出写182FFFFFFA输出183FFFFFFA输出1MOV@R?,AT284FF77FF寄存器值R?地址寄存器MARA输出1T185B7BF9FALU直通存贮器EMMAR输出A输出1T086CBFFFF指令寄存器IRPC输出A输出写187FFFFFFA输出1MOVMM,AT288C77FFF存贮器值EM地址寄存器MARPC输出A输出11T189B7BF9FALU直通存贮器EMMAR输出A输出1T08ACBFFFF指令寄存器IRPC输出A输出写18BFFFFFFA输出1MOVR?,#IIT18CC7FBFF存贮器值EM寄存器R?PC输出A输出11T08DCBFFFF指令寄存器IRPC输出A输出写18EFFFFFFA输出18FFFFFFFA输出1READA,MMT290C77FFF存贮器值EM地址寄存器MARPC输出A输出11

T1917FBFF7寄存器AMAR输出A输出1T092CBFFFF指令寄存器IRPC输出A输出写193FFFFFFA输出1WRITEMM,T294C7

温馨提示

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

评论

0/150

提交评论