沈航计算机学院杨华,BCD码的加法.doc

BCD码的加法课案

沈阳航空航天大学

课 程 设 计 报 告

课程设计名称:计算机组成原理课程设计

课程设计题目:COP2000实现BCD码的加法

院(系):计算机学院

专 业:计算机科学与技术

班 级:3401010x

学 号:20130401010xx

姓 名:张伟

指导教师:杨华

完成日期:2016年 1 月 15 日

目 录

第1章 总体设计方案3

1.1 设计原理3

1.2 设计思路3

1.3 设计环境3

第2章 详细设计方案5

2.1 算法与程序的设计与实现5

3.程序核心部分流程图。如图2.2.3所示6

图2.2.3 核心部分流程图7

第3章 程序调试与结果测试8

3.1 程序调试8

3.2 程序测试及结果分析8

参考文献10

附 录(源代码)11

第1章 总体设计方案

设计原理

课程设计要求加数、被加数以及和都采用压缩的BCD码,都是6位十进制数,但是从COP2000上面只能输入两位十六进制数,即8位二进制数。所以在设计时将6位十进制数分为3组,每组2位,进行相加,找6个存储单元对3组数的低位运算和高位运算进行存储,最后两两求和,将最低两位、中间两位、最高两位结果分别放入r3、r2、r1中。设计时最核心的四个问题我认为分别是将最低位数据左移四位,将数据与F0相与,设计计数单元与进位位存储单元。

设计思路

COP2000上面每次只能输入两个十六进制数,即8个二进制数,现在欲将6位十进制数输入,只能分成3组,3组分别相加。在进行加法时,要考虑到进位,但是COP2000只能判别最高位是否有进位,所以在进行加法时,将最低位数据左移4次,放到最高位,便可以顺利解决判断进位问题。在进行每组数据最高位加法时,要将数据与0F0H相与,使低四位清零。在进行加法时,由于考虑到进位问题,所以设计f7单元存储进位,进位存储单元初始时置0,每当产生进位时,

MOV A,#10H MOV 0F0H,A 使进位单元置1,所以每进行加法时,都要将进位单元数据相加。由于数据是分成三组进行,所以在进行运算时需要进行选择,初始时将计数单元置0,进行最后两位运算时计数单元加1,进行中间两位运算时,置数单元继续加1,最高两位运算在加1,当进行选择时,使计数单元数据减去2,当为最低两位时,1减2发生借位,进而执行JC所指向的地址。当计数单元数据为2减去2时,结果等于0,进而执行JZ所指向单元,当计数单元数据为3时,减去2,结果为1,不执行JC与JZ的指令,执行JMP所指向的地址。三组数据的低位高位结果分别放入6个存储空间中,最后R0存储最高位两位数据计算结果,R1存储中间两位数据计算结果,R3存储最低两位数据计算结果。

设计环境

COP2000实验平台对应的模型机为8位机,数据总线和地址总线均为8位。包括一个标准CPU所具备所有部件,这些部件包括:运算器ALU、累加器A、工作寄存器W、左移门L、右移门R、直通门D、寄存器组R0~R3、程序计数器PC、地址寄存器MAR、堆栈寄存器ST、中断向量寄存器IA、输入端口IN、输出端口寄存器OUT、程序存储器EM、指令寄存器IR、微程序计数器uPC、微程序存储器。

在COP2000仿真软件上实现编程,所应用的编程语言为汇编语言。在伟福试验仪中有相关的模型机指令集分为几大类:算术运算指令、数据传输指令、移位指令、逻辑运算指令、跳转指令、中断返回指令、输入输出指令。

本程序所用到的相应的指令集

(1)算术逻辑运算指令

ADD A, R?------------将寄存器R?的值加入累加器A中

ADD A,#II---------- 立即数#II加入累加器A中

SUB A,#II-----------从累加器中减去立即数后加入累加器A中

AND A,#II-----------累加器A“与”立即数II

(2)数据传送指令

MOV A,R?------------将寄存器R?的值送到累加器A中

MOV A,MM------------将存储器MM的地址的值送到累加器A中

MOV MM,A------------将累加器A的值送到存储器MM的地址中

MOV R?,#II------------将立即数II存放到寄存器R?中

MOV R?,A------------将累加器A中的值送到寄存器A中

(3)移位指令

RR A----------------累加器A右移

RL A----------------累加器A左移

(4)跳转指令

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值