博客首页 注册 建议与交流 排行榜 加入友情链接
推荐 投诉 搜索: 帮助

我的小屋-----I love it

我的小天地,我的心灵之地
  ppzhang.cublog.cn

关于作者
姓名:ppzhang
职业:学生
年龄:20
位置:
个性介绍:
相互学习,相互交流,希望成为好朋友!
|| << >> ||
我的分类


计算机组成原理课程设计----基本模型机的设计与实现(二)
 
 

带移位运算的模型机实验原理图

图(2

带移位运算的模型机的设计与实现

本实验是在实验(一)基本模型机的基础上搭接移位控制电路,实现移位控制运算,原理图如上图(2)所示。实现移位控制运算。因此实验中新增4条移位运算指令:RL(左环移);RLC带进位左环移);RR(右环移);RRC(带进位右环移),其指令格式如下:

                               操作码

                    RR         01010000

                    RRC        01100000

                    RL         01110000

                    RLC        10000000

以上4条指令都为单字长指令(8位)。

RR为将R0寄存器中的内容循环右移一位。

RRC为将R0寄存器中的内容带进位右移一位,它将R0寄存器中数据右边第一位移入进位,同时将进位寄存器的数移至R0寄存器的最左位。

RL为将R0寄存器中的数据循环左移一位。

RLC为将R0寄存器中的数据带进位循环左移一位。

设计机器指令程序见模块四机器指令程序。

地址(二进制)     内容(二进制)  助记符       说明

00000000       00000000        IN  输入 “INPUT  DEVICE­>R0

//任意输入数据

00000001       00010000        ADD[16H]  R0+[16H]>R0

00000010       00010110

00000011       10000000        RLC        带进位左移

00000100       00000000        IN       INPUT  DEVICE­>R0

00000101       01100000        RRC        带进位右移

00000110       01110000        RL         左环移

00000111       00100000        STA[0EH]   R0>[0EH]

00001000       00001l10

00001001       00110000        OUT[0EH]   [0EH] >BUS

00001010       00001110   

0000101l       01000000        JMP 00H     00H>PC

00001100       00000000

00010110       00010000        自定,10H16D

00001110

 

设计如下微程序流程图

 
 
 
 

三、二进制微代码表设计

(1)、基本模型机的设计与实现的为程序代码:

基本模型机的设计和实现的程序设计如下:

(1)IN    输入     INPUT  DEVICE­>R0

(2)SUB   [16H]      R0+[16H]>R0

(3)STA   [0BH]      R0>[0BH]

(4)OUT   [0BH]      [0BH] >BUS

(5)JMP   [00H]      00H>PC

 

 

 

机器指令程序                         微指令程序

  

$M00108101

$M0182ED01

$M0248C000

$M0304E000

$M0405B000

$M0506A201

$M06019A61

$M070DE000

$M08011000

$M0983ED01

$M0A87ED01

$M0B8EED01

$M0C96ED01

   

 $P0000

$P0110

$P0216

$P0320

$P040B

$P0530

$P060B

$P0740

$P0800

$P1608

$M0D018202

$M0E0FE000

$M0F15A000

$M1092ED01

$M1194ED01

$M1217A000

$M13018001

$M14182000

$M15010A07

$M1681D100

$M17100A07

$M18118A06

 

(2)以下是带移位运算的模型机的设计与实现:

1.移位运算的模型机的设计和实现:

(1)IN     输入       INPUT  DEVICE­>R0

(2)ADD  [03H]          R0+[03H]>R0

(3)RLC                 带进位左移

(4)IN                 INPUT  DEVICE­>R0

(5)RRC                 带进位右移

(6)RL                  左环移

(7)STA  [0EH]          R0>[0EH]

(8)OUT   [0EH]            [0EH] >BUS

(9)JMP    [00H]            00H>PC

 

 

 

机器指令程序                         微指令程序

$M151D8231

$M161F8231

$M17218231

$M18238231

$M191AE000

$M1A1BA000

$M1B010A07

$M1C81D100

$M1D1E8821

$M1E019801

$M1F208829

$M20019801

$M21228811

$M22019801

$M23248819

$M24019801

 

$P0000

$P0110

$P0216

$P0380

$P0400

$P0560

$P0670

$P0720

$P080E

$P0930

$P0A0E

$P0B40

$P0C00

$P1610

$M10011000

$M1183ED01

$M00088101

$M0182ED01

$M151D8231

$M161F8231

$M17218231

$M18238231

$M191AE000

$M1A1BA000

$M1B010A07

$M1C81D100

$M1D1E8821

$M1E019801

$M1F208829

$M20019801

$M21228811

$M22019801

$M23248819

$M24019801

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

按照规定格式,将机器指令及微指令二进制表编辑成十六进制的如下格式文件。

 

  机器指令格式说明:

 $ P  ´ ´   ´ ´              例:$P 00 00

 

机器指令代码

                               十六进制地址

 

 

0 微指令格式说明:

          $ M   ´ ´  ´ ´ ´ ´ ´ ´         例:$M 00 018110

 


 

  十六进制地址                    微指令代码

 

注意:因系统文件格式要求,微指令代码的第一个字节(前8位)与第三字节(后8位)对换一下。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

将微程序流程图按微指令格式转化而成的“二进制微代码表”。

 

微地址

S3 S2 S1 S0 M CN WE A9 A8

A

B

C

UA5UA0

 0 0

0  0  0  0  0  0  0  1  1

0 0 0

0 0 0

1 0 0

0 1 0 0 0 0

 0 1

0  0  0  0  0  0  0  1  1

1 1 0

1 1 0

1 1 0

0 0 0 0 1 0

 0 2

0  0  0  0  0  0  0  0  1

1 0 0

0 0 0

0 0 1

0 0 1 0 0 0

 0 3

0  0  0  0  0  0  0  0  1

1 1 0

0 0 0

0 0 0

0 0 0 1 0 0

 0 4

0  0  0  0  0  0  0  0  1

0 1 1

0 0 0

0 0 0

0 0 0 1 0 1

 0 5

0  0  0  0  0  0  0  1  1

0 1 0

0 0 1

0 0 0

0 0 0 1 1 0

 0 6

0  1  1  0  0  0  0  1  1

0 0 1

1 0 1

0 0 0

0 0 0 0 0 1

 0 7

0  0  0  0  0  0  0  0  1

1 1 0

0 0 0

0 0 0

0 0 1 1 0 1

 1 0

0  0  0  0  0  0  0  0  0

0 0 1

0 0 0

0 0 0

0 0 0 0 0 1

 1 1

0  0  0  0  0  0  0  1  1

1 1 0

1 1 0

1 1 0

0 0 0 0 1 1

 1 2

0  0  0  0  0  0  0  1  1

1 1 0

1 1 0

1 1 0

0 0 0 1 1 1

 1 3

0  0  0  0  0  0  0  1  1

1 1 0