1、复杂模型机实验5.3 复杂模型机设计实验5.3.1 实验目的综合运用所学计算机组成原理知识,设计并实现较为完整的计算机。5.3.2 实验设备PC机一台,TD-CMA实验系统一套。5.3.3 实验原理下面讲述一下模型计算机的数据格式及指令系统。1数据格式模型机规定采用定点补码表示法表示数据,字长为位,8位全用来表示数据(最高位不表示符号),数值表示范围是: 0X281。2指令设计模型机设计三大类指令共十五条,其中包括运算类指令、控制转移类指令,数据传送类指令。运算类指令包含三种运算,算术运算、逻辑运算和移位运算,设计有6条运算类指令,分别为:ADD、AND、INC、SUB、OR、RR,所有运算类
2、指令都为单字节,寻址方式采用寄存器直接寻址。控制转移类指令有三条HLT、JMP、BZC,用以控制程序的分支和转移,其中HLT为单字节指令,JMP和BZC为双字节指令。数据传送类指令有IN、OUT、MOV、LDI、LAD、STA共6条,用以完成寄存器和寄存器、寄存器和I/O、寄存器和存储器之间的数据交换,除MOV指令为单字节指令外,其余均为双字节指令。3指令格式所有单字节指令(ADD、AND、INC、SUB、OR、RR、HLT和MOV)格式如下:OP-CODERSRD其中,OP-CODE为操作码,RS为源寄存器,RD为目的寄存器,并规定:RS或RD选定的寄存器00011011R0R1R2R3IN
3、和OUT的指令格式为:(1)(1)(1)70(2)OP-CODERSRDP其中括号中的1表示指令的第一字节,2表示指令的第二字节,OP-CODE为操作码,RS为源寄存器,RD为目的寄存器,P为I/O端口号,占用一个字节,系统的I/O地址译码原理见图5-3-1(在地址总线单元)。图5-3-1 I/O地址译码原理图由于用的是地址总线的高两位进行译码,I/O地址空间被分为四个区,如表5-3-1所示:表5-3-1 I/O地址空间分配A7 A6选定地址空间00IOY000-3F01IOY140-7F10IOY280-BF11IOY3C0-FF系统设计五种数据寻址方式,即立即、直接、间接、变址和相对寻址,
4、LDI指令为立即寻址,LAD、STA、JMP和BZC指令均具备直接、间接、变址和相对寻址能力。LDI的指令格式如下,第一字节同前一样,第二字节为立即数。(1)(1)(1)70(2)OP-CODERSRDdataLAD、STA、JMP和BZC指令格式如下。(1)(1)(1)70(2)OP-CODEMRDD其中M为寻址模式,具体见表5-3-2,以R2做为变址寄存器RI。表5-3-2 寻址方式寻址模式M有效地址E说明00011011E = DE =(D)E =(RI)+ DE =(PC)+ D直接寻址间接寻址RI变址寻址相对寻址4指令系统本模型机共有15条基本指令,表5-3-3列出了各条指令的格式、
5、汇编符号、指令功能。表5-3-3 指令描述5.3.4 总体设计本模型机的数据通路框图如图5-3-2所示。图5-3-2 数据通路框图和前面的实验相比,复杂模型机实验指令多,寻址方式多,只用一种测试已不能满足设计要求,为此指令译码电路需要重新设计。如图5-3-3所示在IR单元的INS_DEC中实现。图5-3-3 指令译码原理图本实验中要用到四个通用寄存器R3R0,而对寄存器的选择是通过指令的低四位,为此还得设计一个寄存器译码电路,在IR单元的REG_DEC(GAL16V8)中实现,如图5-3-4所示。图5-3-4 寄存器译码原理图根据机器指令系统要求,设计微程序流程图及确定微地址,如图5-3-5所
6、示。按照系统建议的微指令格式,见表5-3-4,参照微指令流程图,将每条微指令代码化,译成二进制代码表,见表5-3-5,并将二进制代码表转换为联机操作时的十六进制格式文件。表5-3-4 微指令格式图5-3-5 微程序流程图表5-3-5 二进制代码表地址十六进制表示高五位S3-S0A字段B字段C 字段UA5-UA00000 00 010000000000000000000000010100 6D 430000000001101101010000110310 70 700001000001110000011100000400 24 050000000000100110000001010504 B2
7、010000010010110010000000010600 24 070000000000100110000001110701 32 010000000100110010000000010810 60 090001000001100000000010010918 30 010001100000110000000000010A10 60 100001000001100000000100000B00 00 010000000000000000000000010C10 30 010001000000110000000000010D20 06 010010000000000011000000010E
8、00 53 410000000001010011010000010F00 00 CB0000000000000000110010111028 04 010010100000000100000000011110 30 010001000000110000000000011206 B2 010000011010110010000000011300 24 140000000000100110000101001405 B2 010000010110110010000000011500 24 160000000000100110000101101601 B2 0100000001101100100000
9、00011700 24 180000000000100110000110001802 B2 010000001010110010000000011B00 53 410000000001010011010000011C10 10 1D0001000000010000000111011D10 60 8C0001000001100000100011001E10 60 1F0001000001100000000111111F10 10 2000010 00000010000001000002010 60 8C0001000001100000100011002810 10 290001000000010
10、000001010012900 28 2A0000000000101000001010102A04 E2 2B0000010011100010001010112B04 92 8C0000010010010010100011002C10 10 2D0001000000010000001011012D00 2C 2E0000000000101100001011102E04 E2 2F0000010011100010001011112F04 92 8C0000010010010010100011003000 16 040000000000010110000001003100 16 060000000
11、000010110000001103200 6D 480000000001101101010010003300 6D 4A0000000001101101010010103400 34 010000000000110100000000013500 00 350000000000000000001101013600 6D 510000000001101101010100013700 16 120000000000010110000100103800 16 130000000000010110000100113900 16 150000000000010110000101013A00 16 170
12、000000000010110000101113B00 00 010000000000000000000000013C00 6D 5C0000000001101101010111003D00 6D 5E0000000001101101010111103E00 6D 680000000001101101011010003F00 6D 6C000000000110110101101100根据现有指令,在模型机上实现以下运算:从IN单元读入一个数据,根据读入数据的低4位值X,求1+2+X的累加和,01H到0FH共15个数据存于60H到6EH单元。根据要求可以得到如下程序,地址和内容均为二进制数。地
13、址 内 容 助记符 说 明00000000 00100000 ; START: IN R0,00H 从IN单元读入计数初值00000001 0000000000000010 01100001 ; LDI R1,0FH 立即数0FH送R100000011 0000111100000100 00010100 ; AND R0,R1 得到R0低四位00000101 01100001 ; LDI R1,00H 装入和初值00H00000110 0000000000000111 11110000 ; BZC RESULT 计数值为0则跳转 00001000 0001011000001001 011000
14、10 ; LDI R2,60H 读入数据始地址00001010 0110000000001011 11001011 ; LOOP: LAD R3,RI,00H 从MEM读入数据送R3,变址寻址,偏移量为00H 00001100 0000000000001101 00001101 ; ADD R1,R3 累加求和00001110 01110010 ; INC RI 变址寄存加1,指向下一数据00001111 01100011 ; LDI R3,01H 装入比较值00010000 0000000100010001 10001100 ; SUB R0,R3 00010010 11110000 ; B
15、ZC RESULT 相减为0,表示求和完毕 00010011 0001011000010100 11100000 ; JMP LOOP 未完则继续00010101 0000101100010110 11010001 ; RESULT: STA 70H,R1 和存于MEM的70H单元00010111 0111000000011000 00110100 ; OUT 40H,R1 和在OUT单元显示00011001 0100000000011010 11100000 ; JMP START 跳转至START00011011 0000000000011100 01010000 ; HLT 停机0110
16、0000 00000001 ; 数据01100001 0000001001100010 0000001101100011 0000010001100100 0000010101100101 0000011001100110 0000011101100111 0000100001101000 0000100101101001 0000101001101010 0000101101101011 0000110001101100 0000110101101101 0000111001101110 000011115.3.5 实验步骤1. 按图5-3-6连接实验线路,仔细检查接线后打开实验箱电源。2.
17、 写入实验程序,并进行校验,分两种方式,手动写入和联机写入。1) 手动写入和校验(1) 手动写入微程序将时序与操作台单元的开关KK1置为停止档,KK3置为编程档,KK4置为控存档,KK5置为置数档。使用CON单元的SD05SD00给出微地址,IN单元给出低8位应写入的数据,连续两次按动时序与操作台的开关ST,将IN单元的数据写到该单元的低8位。将时序与操作台单元的开关KK5置为加1档。IN单元给出中8位应写入的数据,连续两次按动时序与操作台的开关ST,将IN单元的数据写到该单元的中8位。IN单元给出高8位应写入的数据,连续两次按动时序与操作台的开关ST,将IN单元的数据写到该单元的高8位。重复
18、、四步,将表5-3-5的微代码写入2816芯片中。(2) 手动校验微程序将时序与操作台单元的开关KK1置为停止档,KK3置为校验档,KK4置为控存档,KK5置为置数档。使用CON单元的SD05SD00给出微地址,连续两次按动时序与操作台的开关ST,MC单元的指数据指示灯 M7M0显示该单元的低8位。将时序与操作台单元的开关KK5置为加1档。连续两次按动时序与操作台的开关ST,MC单元的指数据指示灯 M15M8显示该单元的中8位,MC单元的指数据指示灯 M23M16显示该单元的高8位。重复、四步,完成对微代码的校验。如果校验出微代码写入错误,重新写入、校验,直至确认微指令的输入无误为止。(1)手
19、动写入机器程序将时序与操作台单元的开关KK1置为停止档,KK3置为编程档,KK4置为主存档,KK5置为置数档。使用CON单元的SD7SD0给出地址,IN单元给出该单元应写入的数据,连续两次按动时序与操作台的开关ST,将IN单元的数据写到该存储器单元。将时序与操作台单元的开关KK5置为加1档。IN单元给出下一地址(地址自动加1)应写入的数据,连续两次按动时序与操作台的开关ST,将IN单元的数据写到该单元中。然后地址会又自加1,只需在IN单元输入后续地址的数据,连续两次按动时序与操作台的开关ST,即可完成对该单元的写入。亦可重复、两步,将所有机器指令写入主存芯片中。(2)手动校验机器程序将时序与操
20、作台单元的开关KK1置为停止档,KK3置为校验档,KK4置为主存档,KK5置为置数档。使用CON单元的SD7SD0给出地址,连续两次按动时序与操作台的开关ST,CPU内总线的指数据指示灯 D7D0显示该单元的数据。将时序与操作台单元的开关KK5置为加1档。连续两次按动时序与操作台的开关ST,地址自动加1,CPU内总线的指数据指示灯 D7D0显示该单元的数据。此后每两次按动时序与操作台的开关ST,地址自动加1,CPU内总线的指数据指示灯 D7D0显示该单元的数据,继续进行该操作,直至完成校验,如发现错误,则返回写入,然后校验,直至确认输入的所有指令准确无误。亦可重复、两步,完成对指令码的校验。如
21、果校验出指令码写入错误,重新写入、校验,直至确认指令的输入无误为止。2) 联机写入和校验联机软件提供了微程序和机器程序下载功能,以代替手动读写微程序和机器程序,但是微程序和机器程序得以指定的格式写入到以TXT为后缀的文件中,本次实验程序如下,程序中分号;为注释符,分号后面的内容在下载时将被忽略掉。图5-3-6 实验接线图; /* /; / /; / 复杂模型机实验指令文件 /; / /; / By TangDu CO.,LTD /; / /; /* /; /* Start Of Main Memory Data * / $P 00 20 ; START: IN R0,00H 从IN单元读入计数
22、初值 $P 01 00 $P 02 61 ; LDI R1,0FH 立即数0FH送R1 $P 03 0F $P 04 14 ; AND R0,R1 得到R0低四位 $P 05 61 ; LDI R1,00H 装入和初值00H $P 06 00 $P 07 F0 ; BZC RESULT 计数值为0则跳转 $P 08 16 $P 09 62 ; LDI R2,60H 读入数据始地址 $P 0A 60 $P 0B CB ; LOOP: LAD R3,RI,00H 从MEM读入数据送R3,变址寻址,偏移量为00H $P 0C 00 $P 0D 0D ; ADD R1,R3 累加求和 $P 0E 72
23、 ; INC RI 变址寄存加1,指向下一数据 $P 0F 63 ; LDI R3,01H 装入比较值 $P 10 01 $P 11 8C ; SUB R0,R3 $P 12 F0 ; BZC RESULT 相减为0,表示求和完毕 $P 13 16 $P 14 E0 ; JMP LOOP 未完则继续 $P 15 0B $P 16 D1 ; RESULT: STA 70H,R1 和存于MEM的70H单元 $P 17 70 $P 18 34 ; OUT 40H,R1 和在OUT单元显示 $P 19 40 $P 1A E0 ; JMP START 跳转至START $P 1B 00 $P 1C 50
24、 ; HLT 停机 $P 60 01 ; 数据 $P 61 02 $P 62 03 $P 63 04 $P 64 05 $P 65 06 $P 66 07 $P 67 08 $P 68 09 $P 69 0A $P 6A 0B $P 6B 0C $P 6C 0D $P 6D 0E $P 6E 0F; /* End Of Main Memory Data */; /* Start Of MicroController Data */ $M 00 000001 ; NOP $M 01 006D43 ; PC-AR, PC加1 $M 03 107070 ; MEM-IR, P $M 04 00240
25、5 ; RS-B $M 05 04B201 ; A加B-RD $M 06 002407 ; RS-B $M 07 013201 ; A与B-RD $M 08 106009 ; MEM-AR $M 09 183001 ; IO-RD $M 0A 106010 ; MEM-AR $M 0B 000001 ; NOP $M 0C 103001 ; MEM-RD $M 0D 200601 ; RD-MEM $M 0E 005341 ; A-PC $M 0F 0000CB ; NOP, P $M 10 280401 ; RS-IO $M 11 103001 ; MEM-RD $M 12 06B201 ;
26、 A加1-RD $M 13 002414 ; RS-B $M 14 05B201 ; A减B-RD $M 15 002416 ; RS-B $M 16 01B201 ; A或B-RD $M 17 002418 ; RS-B $M 18 02B201 ; A右环移-RD $M 1B 005341 ; A-PC $M 1C 10101D ; MEM-A $M 1D 10608C ; MEM-AR, P $M 1E 10601F ; MEM-AR $M 1F 101020 ; MEM-A $M 20 10608C ; MEM-AR, P $M 28 101029 ; MEM-A $M 29 00282A ; RI-B $M 2A 04E22B ; A加B-AR $M 2B 04928C ; A加B-A, P $M 2C 10102D ; MEM-A $M 2D 002C2E ; PC-B $M 2E 04E22F ; A加B-AR $M 2F 04928C ; A加B-A, P $M 30 001604 ; RD-A $M 31 001606 ; RD-A $M 32 006D48 ; PC-AR, PC加
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1