补码一位乘的程序设计 计算机组成原理

合集下载

2021年长春职业技术学院计算机应用技术专业《计算机组成原理》科目期末试卷B(有答案)

2021年长春职业技术学院计算机应用技术专业《计算机组成原理》科目期末试卷B(有答案)

2021年长春职业技术学院计算机应用技术专业《计算机组成原理》科目期末试卷B(有答案)一、选择题1、访问相联存储器时,()A.根据内容,不需要地址B.不根据内容,只需要地址C.既要内容,又要地址D.不要内容也不要地址2、关于LRU算法,以下论述正确的是()。

A.LRU算法替换掉那些在Cache中驻留时间最长且未被引用的块B.LRU算法替换掉那些在Cache中驻留时间最短且未被引用的块C.LRU算法替换掉那些在Cache中驻留时间最长且仍在引用的块D.LRU算法替换掉那些在Cache中驻留时间最短且仍在引用的块3、在补码一位乘中,若判断位Y n Y n+1=01,则应执行的操作为()。

A.原部分积加[-x]补,然后右移一位B.原部分积加[x]补,然后右移一位C.原部分积加[-x] 补,然后左移一位D.原部分积加[x]补,然后左移一位4、若浮点数用补码表示,则判断运算结果为规格化数的方法是()。

A.阶符与数符相同,则为规格化数B.小数点后第一位为1,则为规格化数C.数符与小数点后第1位数字相异,则为规格化数D.数符与小数点后第1位数字相同,则为规格化数5、常用的(n,k)海明码中,冗余位的位数为()。

A.n+kB.n-kC.nD.k6、总线的数据传输速率可按公式Q=Wf/N计算,其中Q为总线数据传输速率,W为总线数据宽度(总线位宽/8),f为总线时钟频率,N为完成一次数据传送所需的总线时钟周期个数。

若总线位宽为16位,总线时钟频率为8MHz,完成一次数据传送需2个总线时钟周期,则总线数据传输速率Q为()。

A.16Mbit/sB.8Mbit/sC.16MB/sD.8MB/s7、总线的半同步通信方式是()。

A.既不采用时钟信号,也不采用握手信号B.只采用时钟信号,不采用握手信号C.不采用时钟信号,只采用握手信号D.既采用时钟信号,又采用握手信号8、在计算机系统中,作为硬件与应用软件之间的界面是()。

A.操作系统B.编译程序C.指令系统D.以上都不是9、在计算机系统中,表明系统运行状态的部件是()。

补码一位乘法

补码一位乘法

计算机组成原理第三章运算方法与运算器3.4 补码一位乘法1补码一位乘法的基本方法设[X]补= X0X1X2X3…X n[Y]补= Y0Y1Y2Y3…Y n可证明:[X⋅Y]补= [X]补•( 0.Y1Y2Y3…Yn) –Y0• [X]补进一步展开合并后可得:n[x•y]补=[x] 补•∑(y i+1-y i)2-i (符号位参加运算)i=01补码一位乘法的基本方法[x•y] 补=[x] 补• (y i+1-y i)2-i (符号位参加运算)补码一位乘法的运算规则如下:(1)如果y n+1=y n,部分积加0,部分积算术右移1位;(2)如果y n+1y n=10,部分积加[x]补,部分积算术右移1位;(3)如果y n+1y n=01,部分积加[-x]补,部分积算术右移1位.重复进行n+1步,但最后一步不移位。

包括一位符号位,所得乘积为2n+1位,其中n为数据位位数.1补码一位乘法的基本方法几个特殊问题的处理[x •y] 补=[x] 补• (y i+1-y i )2-i (符号位参加运算) 设[X]补= X 0X 1X 2X 3…X n [Y]补= Y 0Y 1Y 2Y 3…Y n(1)i=n 时,y n+1=?(2)y n+1是哪个寄存器?(3)算术右移的对象有哪些?y n+1=0在乘数寄存器Y 后增加的一位部分积和乘数寄存器均右移2补码一位乘法的举例例1 已知X= +1101 Y=+1011 用补码一位乘法求X⨯Y解:[X]补=01101 [Y]补=01011 [–X]补=10011部分积乘数说明000000 010110Y n+1< Y n部分积+[–X]补+ 110011110011→111001101011结果右移一位,Y n+1= Y n部分积+0+ 000000111001→111100 110101结果右移一位, Y n+1> Y n部分积+[X]补+ 0011010010012补码一位乘法的举例部分积乘数说明→000100 111010将结果右移一位, Y n+1< Y n部分积+[–X]补+ 110011110111→111011 111101将结果右移一位, Y n+1> Y n部分积+[X]补+ 001101001000∴[X⋅Y]补=010001111∴X⋅Y= 010001111。

补码一位乘法校正法

补码一位乘法校正法

补码一位乘法校正法补码一位乘法校正法是一种用于检测和纠正乘法器误差的方法。

在数字电路中,乘法器是一种非常重要的组件,负责执行数字信号的乘法运算。

然而,由于硬件设计和制造的不完美,乘法器可能会产生误差,导致输出结果不准确。

补码一位乘法校正法就是一种常用的解决方案。

在理解补码一位乘法校正法之前,我们首先需要了解补码的概念。

补码是一种用于表示有符号整数的编码方式。

在计算机中,负数一般使用补码表示,这样可以简化运算。

补码的计算方法是将原码的符号位保持不变,其余位按位取反后加1。

例如,-5的原码为10000101,补码为11111011。

补码一位乘法校正法的基本思想是将乘法器的输出结果与真实的乘法结果进行比较,并根据比较结果来调整乘法器的输出。

具体步骤如下:1. 乘法器的输入为两个n位的补码数字,输出为一个2n位的补码数字。

2. 将乘法器的输出结果与真实的乘法结果进行比较。

如果两者相等,则乘法器的输出是正确的;如果不相等,则说明乘法器存在误差。

3. 根据乘法器输出的最高位进行判断。

如果最高位为1,说明乘法器的输出是负数,需要对乘法器的输出进行补码取反操作;如果最高位为0,则不需要进行操作。

4. 将乘法器的输出与校正后的结果进行比较。

如果两者相等,则乘法器的输出是正确的;如果不相等,则说明乘法器的误差无法通过补码一位乘法校正法进行修复。

补码一位乘法校正法的原理是通过对乘法器输出结果的最高位进行判断,来确定是否需要对乘法器的输出进行补码取反操作。

通过这种方法,可以有效地检测和纠正乘法器误差,提高乘法器的准确性和可靠性。

然而,补码一位乘法校正法只能处理一位乘法误差,对于多位乘法误差无法进行有效的修复。

在实际应用中,补码一位乘法校正法通常与其他纠错技术结合使用,以进一步提高乘法器的准确性。

例如,可以将补码一位乘法校正法与冗余校验码相结合,通过对乘法器输出结果进行校验和校正,来实现更可靠的乘法运算。

总结起来,补码一位乘法校正法是一种用于检测和纠正乘法器误差的方法。

第3章运算方法和运算器讲义(计算机组成原理课件)

第3章运算方法和运算器讲义(计算机组成原理课件)

N → ½ 1 Cn 2A-B→ A 2C → C
A<0?
Y → ½ 0 Cn 2A+B→A 2C → C
CR+1→CR N
CR=n? Y A<0? N 1 → Cn XS⊕YS→ QS End Y 0→Cn A+B→A
24
原码不恢复余数法需要注意的问题:
(1) 在定点小数除法运算时,为了防止溢出,要求被除 数的绝对值小于除数的绝对值, |X|< |Y| ( |X|=|Y|除 外),且除数不能为0。 (2)在原码加减交替法中,当最终余数为负数时,必须 恢复一次余数,使之变为正余数,注意此时不需要再左移 了。
二、补码乘法
将此式展开,得到递推关系: [Z0]补=0 [Z1]补=2-1{[Z0]补+(yn+1-yn)[x]补} [Z2]补=2-1{[Z1]补+(yn-yn-1)[x]补} . . [Zn]补=2-1{[Zn-1]补+(y2-y1)[x]补} 从而得到: [x×y]补=[Zn]补+(y1-ys).[x]补 --------补码一位乘比较法
1.补码一位乘
• 用补码做加减运算很方便,做乘法(包括除法)却
是原码很方便,既然这样为何又有补码乘法呢?主 要为了避免频繁的码制转换。 被乘数x, [x]补=xs.x1…xn 乘数y, [y]补=ys.y1…yn • 校正法 ⑴ x任意,y>0时, [X×Y]补 = [Y]补× [Y]补 ⑵ x任意,y<0时, [X×Y]补 = [X]补× (0.y1…yn )+[-X]补
3
§3.3 定点乘法运算
X×Y=X×0.1011 =X×0.1+X×0.00+X×0.001+X×0.0001 =0.1{X+0.1[0+0.1(X+0.1×X)]} =2-1{X+2-1{0+2-1[X+2-1(X+0)]}} |X|×|Y| = |X|× (0.Y1Y2 … Yn )

Verilog实现补码一位乘法课程设计

Verilog实现补码一位乘法课程设计

计算机科学与工程学院课程设计报告题目全称:Verilog实现补码一位乘法课程名称:计算机组成原理指导老师:文泉职称:指导老师评语:指导签字:课程设计成绩:目录第 1 章序言 (1)1.1 课程设计目的 (1)1.2 课程设计作用 (2)1.3 课程设计需求 (2)1.3.1Xilinx设计软件 (2)1.3.2 在xilinx ISE集成开发环境下,使用Verilog HDL (2)第 2 章正文 (4)2.1 实现补码一位乘法的原理 (4)2.2 比较补码一位乘法方法 (6)2.2.1 分步乘法 (6)2.2.2 运算规则 (7)2.2.3 运算实例 (7)2.2.4算法流程图 (8)2.2.5 比较法(Booth算法) (8)2.3课程设计实验代码(概要设计) (10)2.4课程设计详细设计方案 (12)2.4.1顶层方案图的设计与实现 (13)2.4.2 功能模块的设计与实现 (14)2.4.3 仿真调试 (13)第 3 章结论 (16)3.1课程设计总结 (16)摘要本定点补码一位乘法器,具有良好的可移植性。

本文介绍了定点补码一位乘法的概念已及定点补码一位乘法的的原理和方法,分析了定点补码一位乘法器的设计,并详细介绍了使用EDA环境,Xilinx设计软件,在XCV200实验板的XCV200可编程逻辑芯片中上进行定点补码一位乘法器的移植。

通过测试,系统移植成功。

关键词:定点补码;EDA;一位乘法器;设计第1 章序言当今时代是一个信息的时代,我们的生活与信息紧密相连。

伴随着计算机的生活化,我们更近一步接触到信息技术的发展。

如今,计算机技术迅猛发展,它的发展不仅仅表现在软件领域取得辉煌的成就,同时也在硬件方面也取得了长足的发展。

因此,很多功能已经可以通过硬件来实现。

但是通常对嵌入式软件的基本要求是体积小、指令速度快、具有较好的裁减性和可移植性,目前这方面的设计已经很多也很优异,但是基于补码一位乘法器的实现,克服了定点补码乘法器的缺点,实现更加方便有效。

b o o t h 算 法

b o o t h 算 法

【计算机组成原理】定点乘法运算之补码一位乘法(Booth 算法)(对初学者的步骤详解)【计算机组成原理】定点乘法运算之补码一位乘法(Booth算法)(对初学者的步骤详解)运算规则符号位参与运算,运算的数均以补码表示。

被乘数一般取双符号位参与运算,部分积取双符号位,初值为0,乘数可取单符号位。

乘数末位增设附加位yn+1y_{n+1}yn+1?,且初值为0。

根据(yn,yn+1)(y_{n},y_{n+1})(yn?,yn+1?)的取值来确定操作,参见下表,移位按补码右移规则进行按照上述算法进行n+1步操作,但第n+1不再移位(共进行n+1次累加和n次右移),仅根据yny_nyn?与yn+1y_{n+1}yn+1?的比较结果做相应的运算。

yny_nyn?(高位)yn+1y_{n+1}yn+1?(低位)部分积右移一位部分积加[X]补[X]_{补}[X]补?,右移一位部分积加[?X]补[-X]_{补}[?X]补?,右移一位部分积右移一位步骤详解无题言狗??放狗,不对,看题。

设机器字长为5位(含1位符号位,n=4),x=-0.1101,y=0.1011,采用Booth算法求X?YX?YX?Y首先,列出对应的补码。

[X]补=11.0011[X]_{补}=11.0011[X]补?=11.0011[?X]补=00.1101[-X]_{补}=00.1101[?X]补?=00.1101[Y]补=0.1011[Y]_{补}=0.1011[Y]补?=0.1011开始按照要求求解高位部分积位数对标被乘数X的位数,且符号位取双位:部分积:00.0000(高位部分积)(低位部分积-乘数)0.1011|0 丢失位初始情况+[?X]补+[-X]_{补}+[?X]补? 00.1101发现是10所以对照表格,应该部分积加[?X]补[-X]_{补}[?X]补?,右移一位执行本行左边的操作右移一位 00.011010.101|10我们把高位和低位作为一个整体进行右移,所以高位最右边的1到了低位部分的最左边右移一位 00.001101.010|110看见上一行的是11所以直接右移一位+[X]补+[X]_{补}+[X]补? 11.0011是01所以部分积加[X]补[X]_{补}[X]补?,右移一位和:11.0110001.010|110开始右移右移一位 11.10110010.1|0110因为高位部分在补码中,最高位是1时右移补1+[?X]补+[-X]_{补}+[?X]补? 00.1101部分积加[?X]补[-X]_{补}[?X]补?,右移一位和:00.10000010.1|0110开始右移右移一位 00.010000010.|10110是01所以部分积加[X]补[X]_{补}[X]补?,右移一位+[X]补+[X]_{补}+[X]补? 11.0011和 11.0111最后一步不再移位所以蓝色部分构成[X?Y]补=1.01110001[X?Y]_{补}=1.01110001[X?Y]补?=1.01110001,所以X?Y=?0.10001111X?Y=-0.10001111X?Y=?0.10001111根据规则,我们给乘数Y增设附加位yn+1y_{n+1}yn+1?,且初值为0,提供了图表中的初始情况下的1|0课后题:上述的情况是我们[X?Y][X?Y][X?Y],那么我们计算一下[Y?X][Y?X][Y?X],就可以知道我们是不是掌握了啦!!!课后题解答既然是课后题就不写那么详细啦。

补码一位乘法浮点运算器--课程设计报告

补码一位乘法浮点运算器--课程设计报告

目录
第一章引言 .................................................................. 4 1.1 课题背景............................................................................................................................ 4 1.1.1 应用领域................................................................................................................ 4 1.1.2 国内外研究现状 .................................................................................................... 4 1.2 课题意义及价值................................................................................................................ 5 1.3 理论依据........................................................................................................................... 5 1.3.1 浮点运算原理 ...........................................................................

定点补码一位乘的运算方法

定点补码一位乘的运算方法

定点补码一位乘的运算方法
首先,定点补码是一种表示有符号整数的方法。

它是将最高位作为符号位,0表示正数,1表示负数。

其余的位数表示整数的绝对值。

定点补码中最低位是最低有效位,最高位是最高有效位。

1.确定两个乘数,并确定需要多少位来表示结果。

根据乘数的大小,可以确定结果所需的位数。

2.将乘数和被乘数转换为定点补码表示。

若乘数和被乘数为正数,则不需要转换。

若乘数和被乘数为负数,则需要对其进行取反加1的操作。

3.对乘数的每一位,与被乘数的每一位进行相乘,并将结果累加。

乘法运算是将乘数的每一位与被乘数相乘,并将结果向左移动对应的位数。

4.对累加结果进行判断。

如果结果大于等于零,则表示结果为正数。

如果结果小于零,则表示结果为负数。

5.根据结果的符号位,对结果取反加一,得到最终结果的定点补码表示。

举个例子来说明定点补码一位乘法的运算方法:
假设有两个符号位不同的定点补码数A和B,A为正数,B为负数。

首先,将B的符号位取反加一,得到定点补码表示。

接下来,将A的每一位与-B的每一位相乘,并将结果累加。


再判断结果的符号位,由于结果大于等于零,所以结果为正数。

最后,对结果取反加一,得到的最终结果的定点补码表示。

综上所述,定点补码一位乘法的运算方法是通过对两个定点补码数进行乘法运算,将乘数的每一位与被乘数相乘并累加,得到一个结果的定点补码数。

补码加减法运算(计算机组成原理)课件

补码加减法运算(计算机组成原理)课件

补码加减法运算在计算机中的局限性
符号位处理
在补码加减法中,符号位需要单独处理,增加了计算的复杂性。
对负数运算的支持有限
虽然补码表示法可以处理负数,但对于某些复杂的负数运算(如乘 除法),可能需要额外的处理方法。
缺乏直观性
补码表示法和人类常用的十进制表示法不同,导致初学者难以理解 。
04
补码加减法运算的 实例分析
对于计算机专业的学生和研究者来说 ,掌握补码加减法是学习计算机组成 原理和深入了解计算机体系结构的基 础。在此基础上,可以进一步探索其 他数值表示和运算方法。
在实际应用中,如何优化补码加减法 的运算速度和精度,以及如何将其更 好地应用于各种不同领域,是值得进 一步研究的问题。同时,随着量子计 算等新型计算技术的发展,数值运算 的方法和原理也可能会发生变化,需 要保持关注和学习。
溢出及其处理
溢出的概念
在进行补码加减法运算时,如果结果超出了数据类型的表 示范围,就会产生溢出。溢出会导致计算结果的错误。
溢出的判断
判断是否溢出可以通过检查运算结果的符号位和最高位(进位) 来实现。如果符号位和最高位(进位)不同,则说明产生了溢出

溢出的处理
处理溢出的方法有多种,包括检测溢出后进行相应的处理、采用 有符号数乘除法等方法。在实际应用中应根据具体情况选择合适
补码加法运算的实例
假设有两个补码表示的二进制数X和Y,其中X=+1010,Y=-0101,则X+Y=+1010+(0101)=+0101,因为结果的符号位为0,所以结果为正数,即X+Y=+5。
补码的减法运算
补码减法运算的规 则
在进行补码减法运算时,首先 将减数取反加1得到相应的正 数,然后将这个正数与被减数 相加,最后根据结果的符号位 确定结果的符号,正数符号位 为0,负数符号位为1。

计算机组成原理(第三版)课后答案

计算机组成原理(第三版)课后答案

计算机组成原理(第三版)课后答案计算机是⼀种能⾃动地、⾼速地对各种数字化信息进⾏运算处理的电⼦设备。

1.2冯诺依曼计算机体系结构的基本思想是存储程序,也就是将⽤指令序列描述的解题程序与原始数据⼀起存储到计算机中。

计算机只要⼀启动,就能⾃动地取出⼀条条指令并执⾏之,直⾄程序执⾏完毕,得到计算结果为⽌。

按此思想设计的计算机硬件系统包含:运算器、控制器、存储器、输⼊设备和输出设备。

各部分的作⽤见教材:P10—P121.3计算机的发展经历了四代。

第⼀代:见教材P1第⼆代:见教材P2第三代:见教材P2第四代:见教材P21.4系统软件定义见教材:P12—13,应⽤软件定义见教材:P121.5见教材:P14—151.6见教材:P111.7见教材:P6—81.8硬件定义见教材:P9软件定义见教材:P12固件定义见教材:P131.91)听觉、⽂字、图像、⾳频、视频2)图像、声⾳、压缩、解压、DSP1.10处理程度按从易到难是:⽂本→图形→图像→⾳频→视频27/64=00011011/01000000=0.0110110=0.11011×2-1规格化浮点表⽰为:[27/64]原=101,011011000[27/64]反=110,011011000[27/64]补=111,011011000[27/64]反=110,100100111[27/64]补=111,1001010002.3 模为:29=10000000002.4 不对,8421码是⼗进制的编码2.5浮点数的正负看尾数的符号位是1还是0浮点数能表⽰的数值范围取决于阶码的⼤⼩。

浮点数数值的精确度取决于尾数的长度。

2.61)不⼀定有N1>N2 2)正确2.7 最⼤的正数:0111 01111111 ⼗进制数:(1-2-7)×27最⼩的正数:1 ⼗进制数:2-7×2-7最⼤的负数:1 ⼗进制数:--2-7×2-7最⼩的负数:0111 10000001 ⼗进制数:--(1-2-7)×272.81)[x]补=00.1101 [y]补=11.0010[x+y]补=[x]补+[y]补=11.1111⽆溢出x+y= -0.0001[x]补=00.1101 [--y]补=00.1110[x-y]补=[x]补+[--y]补=01.1011 正向溢出2)[x]补=11.0101 [y]补=00.1111[x+y]补=[x]补+[y]补=00.0100 ⽆溢出x+y= 0.0100[x]补=11.0101 [--y]补=11.0001[x-y]补=[x]补+[--y]补=10.0110 负向溢出3) [x]补=11.0001 [y]补=11.0100[x+y]补=[x]补+[y]补=10.0101 负向溢出[x]补=11.0001 [--y]补=00.1100[x-y]补=[x]补+[--y]补=11.1101 ⽆溢出X-y=-0.00112.91)原码⼀位乘法|x|=00.1111 |y|=0.1110部分积乘数y n00.0000 0.1110+00.000000.0000+00.111100.11110→00.011110 0.11+00.111101.011010→00.1011010 0.1+00.111101.1010010→00.11010010P f=x f⊕y f=1 |p|=|x|×|y|=0.11010010所以[x×y]原=1.11010010补码⼀位乘法[x]补=11.0001 [y]补=0.1110 [--x]补=11.0001 部分积y n y n+1 00.0000 0.11100→00.00000 0.1110+00.111100.11110→00.011110 0.111→00.0011110 0.11→00.0 0.1+11.000111.00101110[x×y]补=11.001011102)原码⼀位乘法|x|=00.110 |y|=0.010部分积乘数y n00.000 0.010+00.00000.000→00.0000 0.01+00.11000.1100→00.01100 0.0+00.00000.01100 0所以[x×y]原=0.001100补码⼀位乘法[x]补=11.010 [y]补=1.110 [--x]补=00.110部分积y n y n+100.000 1.1100→00.0000 1.110+00.11000.1100→00.01100 1.11→00.001100 1.1所以[x×y]补=0.0011002.101)原码两位乘法|x|=000.1011 |y|=00.0001 2|x|=001.0110部分积乘数 c000.0000 00.00010+000.1011000.1011→000.001011 0.000→000.00001011 00.0P f=x f⊕y f=1 |p|=|x|×|y|=0.00001011所以[x×y]原=1.00001011补码两位乘法[x]补=000.1011 [y]补=11.1111 [--x]补=111.0101部分积乘数y n+1000.0000 11.11110+111.0101111.0101→111.110101 11.111→111.11110101 11.1所以[x×y]补=111.11110101 x×y=--0.000010112)原码两位乘法|x|=000.101 |y|=0.111 2|x|=001.010 [--|x| ]补=111.011 部分积乘数 c 000.000 0.1110+111.011111.011→111.11011 0.11+001.010→000.100011P f=x⊕y f=0 |p|=|x|×|y|=0.100011所以[x×y]原=0.100011补码两位乘法[x]补=111.011 [y]补=1.001 [--x]补=000.101 2[--x]补=001.010 部分积乘数y n+1 000.000 1.0010+111.011111.011→111.111011 1.00+001.010001.00011→000.100011所以[x×y]补=0.1000112.111) 原码不恢复余数法|x|=00.1010 |y|=00.1101 [--|y| ]补=11.0011部分积商数00.1010+11.0011←11.1010+00.110100.0111 0.1←00.1110+11.001100.0001 0.11←00.0010+11.001111.0101 0.110←01.1010+00.110111.0111 0.1100+00.110100.0100所以[x/y]原=0.1100 余数[r]原=0.0100×2—4补码不恢复余数法[x]补=00.1010 [y]补=00.1101 [--y]补=11.0011 部分积商数00.101000.0111 0.1←00.1110+11.001100.0001 0.11←00.0010+11.001111.0101 0.110←10.1010+00.110111.0111 0.1100+00.110100.0100所以[x/y]补=0.1100 余数[r]补=0.0100×2—42)原码不恢复余数法|x|=00.101 |y|=00.110 [--|y| ]补=11.010 部分积商数00.101+11.01011.111 0←11.110+00.11000.100 0.1←01.000+11.01000.010 0.11←00.100+11.01011.110 0.110+00.11000. 100所以[x/y]原=1.110 余数[r]原=1.100×2—3补码不恢复余数法[x]补=11.011 [y]补=00.110 [--y]补=11.010 部分积商数11.01111.100 1.0←11.000+00.11011.110 1.00←11.100+00.11000.010 1.001+11.01011.100所以[x/y]补=1.001+2—3=1.010 余数[r]补=1.100×2—32.121)[x]补=21101×00.100100 [y]补=21110×11.100110⼩阶向⼤阶看齐:[x]补=21110×00.010010求和:[x+y]补=21110×(00.010010+11.100110)=21110×11.111000 [x-y]补=21110×(00.010010+00.011010)=21110×00.101100 规格化:[x+y]补=21011×11.000000 浮点表⽰:1011,11.000000规格化:[x-y]补=21110×00.101100 浮点表⽰:1110,0.101100 2)[x]补=20101×11.011110 [y]补=20100×00.010110⼩阶向⼤阶看齐:[y]补=20101×00.001011求和:[x+y]补=20101×(11.011110+00.001011)=20101×11.101001 [x-y]补=20101×(11.011110+11.110101)=20101×00.010011 规格化:[x+y]补=21010×11.010010 浮点表⽰:1010,11. 010010规格化:[x-y]补=21010×00.100110 浮点表⽰:1010,00.1001102.13见教材:P702.141)1.0001011×262)0.110111*×2-62.151)串⾏进位⽅式C1=G1+P1C0G1=A1B1,P1=A1⊕B1C2=G2+P2C1G2=A2B2,P2=A2⊕B2C3=G3+P3C2G3=A3B3,P3=A3⊕B3C4=G4+P4C3G4=A4B4,P4=A4⊕B4C2=G2+P2G1+P2P1C0C3=G3+P3G2+P3P2G1+P3P2P1C0C4= G4+P4G3+P4P3G2+P4P3P2G1+P4P3P2P1C02.16参考教材P62 32位两重进位⽅式的ALU和32位三重进位⽅式的ALU 2.17C n“1”“1”3.1见教材:P79 3.2 见教材:P833.3与SRAM 相⽐,DRAM 在电路组成上有以下不同之处:1)地址线的引脚⼀般只有⼀半,因此,增加了两根控制线RAS 、CAS ,分别控制接受⾏地址和列地址。

计算机组成原理课设_定点补码一位乘法器的设计

计算机组成原理课设_定点补码一位乘法器的设计

课程设计报告课程设计名称:计算机组成原理课程设计课程设计题目:定点补码一位乘法器的设计院(系):计算机学院专业:计算机科学与技术班级:*****学号:*****姓名:*****指导教师:*****完成日期:2006年12月31日沈阳航空工业学院课程设计报告目录第1章总体设计方案 (2)1.1补码乘法器设计原理 (2)1.2设计思路 (4)1.3设计环境 (5)第2章详细设计方案 (5)2.1补码乘法器电路图的设计与实现 (6)2.1.1 补码乘法器设计 (6)2.1.2 器件的选择与引脚锁定 (8)2.1.3 编译、综合、适配 (8)2.2功能模块的设计与实现 (9)2.2.1 两输入三选一选择器模块的设计与实现 (9)2.2.2 半加器模块的设计与实现 ........................................... 错误!未定义书签。

2.3仿真调试 (10)第3章编程下载与硬件测试 (12)3.1编程下载 (12)3.2硬件测试及结果分析 (12)参考文献 (14)第1章总体设计方案1.1 补码乘法器设计原理原码乘法的主要问题是符号位不能参加运算,单独用一个异或门产生乘积的符号位,故自然提出能否让符号数字化后也参加乘法运算,补码乘法就可以实现符号位直接参加运算。

布斯(Booth)算法,它采用相加和相减的操作计算补码数据的乘积,Booth算法对乘数从低位开始判断,根据两个数据位的情况决定进行加法、减法还是仅仅移位操作。

Booth算法操作表示判断的两个数据位为当前位及其右边的位(初始时需要增加一个辅助位0),移位操作是向右移动。

判断被乘数中的最低位以及右边的位(辅助位0),如果为00,则只进行移位操作;之后在判断移位之后的最后两位,如果为01,则进行加法操作并进行移位操作;如果最后两位为10,则进行减法操作并移位,这个减法操作相当于减去2x的值;判断最后的差值,如为1,则部分积加[X]补;如为0,则不分积加0;如为-1,则部分积加[-X]补,最后一次不移位。

大学计算机学院第1学期期末考试《计算机组成原理》试题B卷及答案

大学计算机学院第1学期期末考试《计算机组成原理》试题B卷及答案

第 1 页共 7 页大学计算机学院第1学期期末考试《计算机组成原理》试题(闭卷B)一、填空题(共9题20空,每空1分,共20分)按中断响应的优先顺序由高到低为A,B,C,D现要求优先顺序改为C,D,B,A,则中断源A,B,C,D 的屏蔽字分别为、、、。

2.设指令地址码为3FH,当前指令地址为2B00H,则相对寻址的访存有效地址是。

3.某计算机的指令流水线由四个功能段组成,指令流经各功能段的时间(忽略各功能段之间的缓存时间)分别是100ns、80ns、70ns 和 60ns,则该计算机的CPU 时钟周期至少是4.在补码除法中,当X补与Y补异号时,第一次应进行操作。

5.设X = -0.1101,字长5位,则[X]原 = ,[X]反 = ,[X]补 = 。

6.主存和cache的地址映像方法很多,常用的有、、和。

7.在中断周期中断隐指令主要实现、和关中断功能。

8.微指令格式可分为型和型微指令两类,其中型微指令用较长的微程序结构换取较短的微指令结构。

9.设某机主频为8MHz,每个机器周期平均含2个时钟周期,每条指令平均有4个机器周期,则该机的时钟周期为μs,指令执行速度为MIPS。

二、单项选择题(共20题,每题2分,共40分)A.n,n+1 B.n+1,n C.n+1,n+1 D.n, n+1。

2.假设某计算机的存储系统由 Cache 和主存组成,某程序执行过程中访存1000 次,其中访问 Cache命中980 次,则 Cache 的命中率是___ ___A.2% B.98% C.20% D.9803.中断向量可提供______。

A.被选中设备的地址 B.传送数据的起始地址C.中断服务程序入口地址 D.主程序的断点地址4.某机器字长 16 位,主存按字节编址,转移指令采用相对寻址,由两个字节组成,第一字节为操作码字段,第二字节为相对位移量字段。

假定取指令时,每取一个字节 PC 自动加 1。

若某转移指令所在主存地址为 2000H,相对位移量字段的内容为46H,则该转移指令成功转以后的目标地址是A.2046HB.2047HC.2048HD.2049H5.下述说法中______是正确的。

《计算机组成原理》(答案已补全)

《计算机组成原理》(答案已补全)

《计算机组成原理》模拟题1一、名词解释1.总线2.指令系统3.微指令4.溢出二、填空题1.按冯·诺依曼设计原则,其硬件是由()、()、()、()和()组成。

2.计算机系统是由()和()两大部分构成。

3.计算机最主要的三大性能指标是()、()、和()。

4.一个完善的指令系统应满足()、()、()、和()的要求。

5.堆栈的硬件是由()和()构成,存取是按()原则。

6.通常控制器的设计可分为()和(),前者采用的核心器件是(),后者采用的核心器件是()。

7.主机与外设的连接方式有()、()和()。

8.目前在微型机中主机与外设广泛采用的信息交换方式是()和()。

三、简答题1.简述中断的处理过程。

它与程序查询方式有何不同点?2.按通道的工作方式,通道分哪几类?简述其特点。

3.画图说明存储系统的层次结构,并说明各种存储器的特点。

参考答案:1.答案要点:中断的处理过程大致可分为五个步骤:1)中断请求2)中断排队3)中断响应4)中断处理5)中断返回与程序查询方式的不同点:1)在程序中断方式下,CPU和外设可并行工作;而程序查询方式下,CPU与外设是串行工作的。

2)程序中断方式适合于对外界随机事件的处理。

而程序查询方式不具备这样的能力。

2.答案要点:按通道的工作方式,通道可分为字节多路通道、选择通道和数组多路通道三种类型。

特点:字节多路通道:1)有多个子通道,设备间可(分时)并行操作。

2)数据以字节为单位交叉传送。

3)适合于连接大量的低速设备。

选择通道:1)被选中的外设采用独占方式使用通道。

2)数据以成组(数据块)方式进行传输。

3)适合于连接高速外设。

数组多路通道:是将前二者的优点结合在一起的一种通道结构。

数组多路通道含有多个子通道,可同时执行多个通道程序,数据以成组方式进行传送。

既具有多路并行操作能力,又有很高的数据传输率,可用来连接多台中高速的外设。

3.答案要点:存储系统的层次结构如图所示:存储器的特点:1)高速缓存:存放当前要执行的程序和数据。

[计算机组成原理]Booth算法——补码一位乘法

[计算机组成原理]Booth算法——补码一位乘法

[计算机组成原理]Booth算法——补码⼀位乘法x * y = z运算规则:1.和原码⼀位乘法不同,补码⼀位乘法的符号位是参加运算的,且运算结果和所有参加运算的数都是补码形式。

2.乘数 x 取双符号位参与运算,部分积的初始值为0;乘数 y 取单符号位参与运算。

3.乘数 y ⾸先在末尾添加⼀个辅助位 0 ,每次讨论都是取 y 的最后两位,但每次移动仅移动⼀位。

4.判断 y 的最后两位是规则如下:00 或者 11 时,直接右移⼀位;01时,先加 x的补,然后右移⼀位;10时,先加 -x的补,然后右移⼀位。

5.有个特例,最后⼀步不⽤右移了。

举个栗⼦:设 x = -0.1101 , y = 0.1011则 [x]补 = 11.0011 ,[-x]补 = 00.1101⼀开始部分积初始值:00.0000先给y补⼀个辅助位0,得到 y = 0.10110⾸先,从y的最后两位开始看,0.10110 ,为 10 ,对应规则 “先加[-x]补,再右移⼀位” :部分积 00.0000 + 00.1101 = 00.1101 ,右移⼀位得到 00.01101接着,y 右移⼀位再看,0.10110,为 11 ,对应规则“直接右移⼀位”:部分积 00.001101然后,y再右移⼀位再看,0.10110 ,为 01 ,对应规则“先加[x]补,再右移⼀位”:00.001101 部分积+ 11.0011 [x]补--------------------= 11.011001 部分积部分积 00.001101 + 11.0011 = 11.011001 ,右移⼀位得到11.1011001 (注意这⾥符号位移动后,仍然保持为 11)接着,y再右移⼀位再看,0.10110 ,为 10 ,对应规则“先加[-x]补,再右移⼀位”:部分积 11.1011001 + 00.1101 = 00.1000001 ,右移⼀位得到 00.01000001最后,y再右移⼀位再看,0.10110 ,为 01 ,对应规则“先加[x]补,再右移⼀位”:部分积 00.01000001 + 11.0011 = 11.01110001 ,但这已经是最后⼀步,不⽤再右移了,所以最后结果是 1.01110001 (注意:这是x*y的补码)。

二进制补码一位乘法规律的推导

二进制补码一位乘法规律的推导

二进制补码一位乘法规律的推导二进制是一种使用0和1的数学表示方式,它是计算机最基本的表示形式。

补码是一种特殊的二进制表示方式,用于计算机计算数值。

它使用一种叫做补码系统的数学算法,将正常的二进制系统表示的数值转换为补码表示的数值。

在补码表示中,所有负数值都是按照它们在二进制表示中的补码格式来表示的,而所有正数值都是按照它们在二进制表示中的原码格式来表示的。

补码系统有一些基本的乘法规律,这是本文的主要内容,也就是二进制补码一位乘法规律的推导。

二进制补码乘法规律的原理是:一位乘以一位,结果是最多一位,也就是说,一位乘以一位的结果可以为0或1,也可以为-1。

在补码表示中,负数值是按照补码方式来表示的,因此-1表示的就是1111,也就是说,一位乘以一位可以产生-1,具体可以用一个例子来说明这一点:5*3=15,它的二进制补码表示是1011*1101=11110001。

因此,对于二进制补码一位乘法规律的推导来说,有以下两点:(1)一位乘以一位,结果可以为0或1;(2)一位乘以一位,结果可以为-1。

当我们用一位乘以一位进行乘法计算时,必须要注意这两点。

另外,在二进制补码乘法规律中还有一个重要的概念,叫做“字宽”。

这是指一个乘法操作所使用的位数,例如4位表示采用4位,8位表示采用8位,16位表示采用16位,32位表示采用32位等等,也就是说,当我们计算一位乘以一位的结果时,我们也要注意“字宽”的概念。

二进制补码乘法的另一个重要概念是“溢出”检测。

乘法操作过程中,当结果的位数超过指定的字宽时,就会发生溢出,也就是说,结果会超出字宽的限制,这种情况就叫做“溢出”。

二进制补码乘法规律中,我们必须要注意“溢出”检测,及早发现“溢出”,避免产生错误的结果。

总结起来,二进制补码一位乘法规律的推导,包括:一位乘以一位,结果可以为0、1或-1;“字宽”的概念以及“溢出”检测。

在进行二进制补码的乘法计算时,我们要时刻牢记这些乘法规律,以确保得到正确的结果。

《计算机组成原理》第一章课后题答案解析

《计算机组成原理》第一章课后题答案解析

1.l 解释下列名词摩尔定律:对集成电路上可容纳的晶体管数目、性能和价格等发展趋势的预测,其主要内容是:成集电路上可容纳的晶体管数量每18个月翻一番,性能将提高一倍,而其价格将降低一半。

主存: 计算机中存放正在运行的程序和数据的存储器,为计算机的主要工作存储器,可随机存取。

控制器:计算机的指挥中心,它使计算机各部件自动协调地工作。

时钟周期:时钟周期是时钟频率的倒数,也称为节拍周期或T周期,是处理操作最基本的时间单位。

多核处理器:多核处理器是指在一枚处理器中集成两个或多个完整的计算引擎(内核)。

字长:运算器一次运算处理的二进制位数。

存储容量: 存储器中可存二进制信息的总量。

CPI:指执行每条指令所需要的平均时钟周期数。

MIPS:用每秒钟执行完成的指令数量作为衡量计算机性能的一个指标,该指标以每秒钟完成的百万指令数作为单位。

CPU时间:计算某个任务时CPU实际消耗的时间,也即CPU真正花费在某程序上的时间。

计算机系统的层次结构:计算机系统的层次结构由多级构成,一般分成5级,由低到高分别是:微程序设计级,机器语言级,操作系统级,汇编语言级,高级语言级。

基准测试程序:把应用程序中使用频度最高的那那些核心程序作为评价计算机性能的标准程序。

软/硬件功能的等价性:从逻辑功能的角度来看,硬件和软件在完成某项功能上是相同的,称为软/硬件功能是等价的,如浮点运算既可以由软件实现,也可以由专门的硬件实现。

固件:是一种软件的固化,其目的是为了加快软件的执行速度。

可靠性:可靠性是指系统或产品在规定的条件和规定的时间内,完成规定功能的能力。

产品可靠性定义的要素是三个“规定”:“规定条件”、“规定时间”和“规定功能”。

MTTF:平均无故障时间,指系统自使用以来到第一次出故障的时间间隔的期望值。

MTTR:系统的平均修复时间。

MTBF:平均故障间隔时间,指相邻两次故障之间的平均工作时间。

可用性:指系统在任意时刻可使用的概率,可根据MTTF、MTTR和MTBF等指标计算处系统的可用性。

组成第四讲--乘除法运算

组成第四讲--乘除法运算
计算机组成原理
河北经贸大学
信息技术学院
河北经贸大学
信息技术学院
计算机组成原理
加减交替法
但由于要恢复余数,使除法迚行过程的步数不固 定,因此控制比较复杂。实际中常用不恢复余数 现不够减,则不必恢复余数,根据余数符号,可以 继续往下运算,因此步数固定,控制简单。
法,又称加减交替法。其特点是运算过程中如出
相结合的方法部分积右移时,乘数寄存器同时
件结构,采用串行的1位乘法方案,而多次执行
“加法、移位”操作来实现。这种方法并不需要 很多器件。然而串行方毕竟太慢,不能满足科学
技术对 高速乘法所提出的要求。由于大规 模集成电路的发展和实际计算的需要,硬件乘 法器应运而生。
河北经贸大学

乘数[Y]原=Y0· Y1…Yn-1Yn
乘积[Z]=(X0⊕Y0)· (0.X1…Xn1Xn)(0.Y1…Yn-1Yn) 式中,X0为被乘数符号,Y0为乘数符号。

河北经贸大学
信息技术学院
计算机组成原理
设X=0.1101,Y=0.1011,让我们先用习惯方法求 其乘积,其过程如下: 0.1101 (X) × 0.1011 (Y) -------------------1101 1101 0000 + 1101 -------------------0.10001111 (Z)
信息技术学院
计算机组成原理
河北经贸大学
信息技术学院
计算机组成原理
河北经贸大学
信息技术学院
计算机组成原理
河北经贸大学
信息技术学院
计算机组成原理
河北经贸大学
信息技术学院
计算机组成原理
补码一位乘法 有的机器为方便加减法运算,数据以补码形

补码一位乘课程设计

补码一位乘课程设计

补码一位乘课程设计一、课程目标知识目标:1. 理解补码的概念及其在计算机中的表示方法;2. 掌握一位乘的运算规则及其与补码的关系;3. 学会运用补码进行一位乘运算,并能正确表示结果。

技能目标:1. 能够运用补码进行一位乘的笔算和心算;2. 能够分析并解决与补码一位乘相关的实际问题;3. 能够运用所学知识,对计算机中的补码运算进行简单的编程实现。

情感态度价值观目标:1. 培养学生对计算机科学及数字逻辑的兴趣,增强其探究精神;2. 培养学生严谨的学术态度和良好的团队合作意识;3. 提高学生对我国计算机科学发展的认识,增强其民族自豪感。

课程性质:本课程为计算机科学与技术基础课程,以理论教学和实践操作相结合的方式进行。

学生特点:学生为初中年级,具备一定的数学基础和逻辑思维能力,对计算机科学有一定的好奇心。

教学要求:结合学生特点和课程性质,注重启发式教学,引导学生主动探究,提高学生的实际操作能力。

在教学过程中,注重培养学生的逻辑思维和解决问题的能力,将知识目标、技能目标和情感态度价值观目标有机地结合起来,实现学生的全面发展。

通过具体的学习成果的分解和评估,确保课程目标的达成。

二、教学内容1. 补码基础知识- 补码的概念与表示方法- 补码与原码、反码的关系- 补码在计算机中的运用2. 一位乘运算规则- 一位乘的定义与运算过程- 一位乘与补码的关系- 乘法运算的符号处理3. 补码一位乘的计算方法- 笔算方法:列出乘法运算过程,按位计算- 心算方法:简化运算步骤,快速得出结果- 编程实现:运用编程语言,如C语言,实现补码一位乘运算4. 实际问题分析与解决- 结合实际案例,运用补码一位乘方法解决问题- 分析问题中的关键信息,设计合理的运算步骤- 团队合作,讨论并优化解决方案教学大纲安排:第一课时:补码基础知识学习,了解补码的表示方法及其在计算机中的应用;第二课时:学习一位乘运算规则,掌握其与补码的关系;第三课时:学习补码一位乘的计算方法,进行笔算、心算和编程实现;第四课时:结合实际问题,运用所学知识进行分析和解决,提高学生的实际操作能力。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

沈阳航空航天大学课程设计报告课程设计名称:计算机组成原理课程设计课程设计题目:定点补码乘法器的程序设计院(系):专业:班级:学号:姓名:指导教师:完成日期:沈阳航空航天大学课程设计报告目录第1章总体设计方案 (1)1.1设计原理 (1)1.2设计思路 (1)1.3设计环境 (2)第2章详细设计方案 (4)2.1总体方案的设计与实现 (4)2.1.1总体方案的具体描述 (4)2.2流程图的设计与实现 (5)2.2.1流程图具体分析 (5)第3章程序调试与结果测试 (9)3.1程序调试 (9)3.2程序测试及结果分析 (9)参考文献 (14)附录 (15)第1章 总体设计方案1.1 设计原理采用伟福COP2000试验箱,设计并实现定点补码一位乘(booth )。

要求:采用的算法为定点补码一位乘booth 算法,乘数和被乘数规定为6位,其中首位为符号位。

数据要求以原码的形式输入,采用补码方式进行运算。

实验数据从试验箱的开关输入,运算的结果在OUT 寄存器中显示。

设计原理:比较YnYn+1的状态执行相应的操作。

如下图是补码一位乘的运算规则:表1.1 Booth 算法操作表说明需要说明的是此操作表是在当n ≠0时,当n=0时,判断YnYn+1,运算规则同此操作表只是不移位。

即在运算的最后一步,乘积不再右移。

1.2 设计思路(1) 构造补码一位乘的初始化所需要的数值因为补码一位乘的算法需要先求出[X]补、[-X]补、[Q]补,所以先将[X]补、[-X]补、[Q]补分别存贮到0F0H 到0F2H 存储单元中。

因为部分积和附加位的初始值都是0,所以在0E0H 单元存入附加位初始值0,在R0中存入部分积初始值0。

其他数的处理:将输入的一个值Q 求出补码作为乘数Y ,并存入R2中;另一个值X 存入R1中,根据它来求出[X]补、[-X]补;本实验规定乘数和被乘数为6位,数据位为五位,所以要完成六次操作,但最后一次不移位,在R3寄存中存入数值n=5,每次操作完成后减1。

(2)运算并输出根据乘数末位及附加位来确定执行的操作,每完成一次操作R3中的数值减一。

判断R3的数值是否为零,若不为零,则继续循环上述操作,若为零,则循环结束,判断此时的乘数末位及附加位,再按运算规则进行一次操作,但是不移位,然后结束运算。

即开始时Yn+1=0,部分积初值为0,每一步乘法由YnYn+1决定原部分积加[X]补或加[-X]补或加0,再右移一位得到新的部分积,以此重复n步,第n+1步由YnYn+1决定部分积加[X]补或加[-X]补或加0,但不移位,即得最后结果,最后先把乘数的最终结果从OUT寄存其中显示出来,再将部分积的最终结果从OUT寄存其中显示出来。

(3)实现方式在掌握COP2000试验箱的体系结构后,充分利用试验箱提供的汇编语言,以及有限的硬件资源,完成程序的编写。

1.3设计环境利用COP2000型计算机组成原理实验仪软件和计算机,在COP2000试验仪软件上编程实现补码一位乘。

COP2000 集成开发环境是为COP2000 实验仪与PC 机相连进行高层次实验的配套软件,它通过实验仪的串行接口和PC 机的串行接口相连,提供汇编、反编、编辑、修改指令、文件传送、调试FPGA面。

其实验等功能,该软件在Windows 下运行。

COP2000试验仪软件的指令集分为如下大类:算术运算指令、逻辑运算指令、移位指令、数据传输指令、跳转指令、中断返回指令、输入输出指令。

本程序所用到的相应的指令集如下:(1)算术逻辑运算指令ADD A, R? -----------将寄存器R?的值加入累加器A中ADD A,#II ----------立即数II加入累加器A中SUB A,#II-----------从累加器中减去立即数II后加入累加器A中AND A,R?------------累加器A“与”寄存器R?的值AND A,#II ----------累加器A“与”立即数II的值OR A, R? -----------累加器A“与”寄存器R?的值OR A, #II ----------累加器A“与”立即数II的值CPL A----------------累加器A取反,再存入累加器A中(2)数据传送指令MOV A,R?------------将寄存器R?的值送到累加器A中MOV A, #II -----------将立即数II送到累加器A中MOV R?,A------------将累加器A中的值送到寄存器R?中MOV R?,#II----------将立即数II送到寄存器R?中RR A-----------------累加器右移指令RL A-----------------累加器左移指令(3)跳转指令JZ MM---------------若零标志位置1,跳转到MM地址JMP MM---------------跳转到MM地址(4)输入输出指令IN--------------------从输入端口读入数据到累加器A中OUT--------------------将累加器A中数据输出到输出端口如下为COP2000计算机组成原理实验软件截图:图 1.1 COP2000计算机组成原理试验仪软件截图第2章详细设计方案2.1 总体方案的设计与实现本课设采用COP2000实验仪软件和计算机实现补码一位乘的功能,利用伟福COP2000的指令集编程实现。

总体设计方法为输入两个数,分别求出需要的相应值,n为数据位个数,当n不等于零时,判断YnYn+1,按照补码操作表进行相应的运算,当n等于零时,再按照补码操作表进行运算但是不移位,最后输出结果。

2.1.1总体方案的具体描述(1)先进行初始化:将部分积和附加位设置为0,分别存入R0,0E0H中。

设置循环次数为五次,存入R3中。

操作如下:先输入一个数值X存入R1中,判断X的符号位,将这个数和20H进行“与”运算,如果为00H,说明该数值为正数,它的补码也为X;如果为20H,则说明该数为负数,则先将X取反,将取反后的数值加上21H,求出补码,补码存入0F0H 中,因为规定乘数和被乘数为六位,但机器会识别八位,令前两位与符号位保持相同,方便运算。

再求出-X的补码,存入0F1中。

最后求出Q的补码Y,存入0F2中。

(2)根据运算规则循环相乘:乘法运算前A寄存器被清零,作为初始部分积,附加位置为0,被乘数的补码存在X中,乘数的补码在Q高n+1位中,寄存器R3存放乘数的位数n,乘法开始后,根据Yn和附加位Yn+1的状态决定部分积与被乘数相加还是相减,或是不加也不减,然后根据补码规则进行算术移位,先判断乘数Y的末位,如果Yn 为1,则附加位为1,反之为0,将乘数右移一位,在判断部分积的末位,若部分积末位为0,将移位后的乘数首位置0,反之置1,最后判断部分积的首位,令部分积移一次位后的首位与原先相同,这是一次操作包括的所有步骤。

(3)判断循环是否结束并输出:移位后,将R3的值减一,判断是否为0,若不为0,则继续循环,一共重复n次。

若为0,则再判断末两位状态决定是否与被乘数相加或者相减,或是不加也不减,但是不必移位,这样便可得到最后结果。

最后输出结果,先将乘数从OUT 寄存器中显示,再将部分积从OUT寄存器显示出来。

2.2 流程图的设计与实现2.2.1流程图具体分析1.进行初始化,流程图如图2.1:图2.1 初始化流程图2.根据运算规则循环相乘判断乘数末位和附加位YnYn+1,根据运算规则进行循环,其中移位时附加位要与乘数末位保持一致,乘数的首位要与部分积的末位保持一致,部分积移位后的首位要与移位前的首位一致,并且根据数据位的个数决定循环几次。

流程图如图2.2:图2.2 循环相乘流程图具体说明:乘法开始后,先将Y与01H进行“与”运算,判断Yn的末位,再将附加位与01H进行“与”运算,判断附加位的末位Yn+1,根据Yn和附加位Yn+1的状态决定部分积与被乘数相加还是相减,或是不加也不减,然后根据进行算术移位。

移位操作需要先判断乘数Y的末位,如果Yn为1,则附加位为1,反之为0,将乘数右移一位,在判断部分积的末位,若部分积末位为0,将移位后的乘数首位置0,反之置1,再判断部分积首位为1,移位后的部分积首位仍置1,移位的操作流程图如图2.3:图2.3 移位操作流程图3.判断循环是否结束并输出每完成一次运算规则操作就将寄存器R3中的数值减1,直到减为0,在判断一次YnYn+1,按照运算规则表进行加[X]补或[-X]补的运算,但是不移位,最后将结果输出,其中先输出乘数,再输出部分积。

流程图如图2.4:图2.4 判断并输出流程图第3章程序调试与结果测试3.1 程序调试(1)在编程时需要用到很多寄存器,在EM程序中会提供很多寄存器,但运行程序时每一步占用寄存器,刚开始不知道,结果运行程序时到一半时程序出现问题,才发现所需要的寄存器被占用了,如果想用寄存器,尽量在靠后的寄存器中,比如0F0H;(2)编程开始阶段,不熟悉指令集,执行把立即数放入累加器的操作,误将MOV A, 0AH用作MOV A, #0AH;(3)在对部分积移位操作时,如果最高位是1时,移位最高位仍然置1,当时考虑不够充分,没有置1,导致程序出错。

3.2 程序测试及结果分析测试阶段,用1组数据进行检验:(1)输入:X=100110B,Y=011000B,分别显示在R1、R2中,设置n=5,存在R3中,如图3.1所示:图3.1 输入X,Q,n(2)将所需的补码求出,此时 [X]补=FAH, [-X]补=06H, [Y]补=18H,[X]补、[-X]补、 [Y]补分别显示在0F0H、0F1H、0F2H存储单元中,如图3.2所示:图3.2 补码显示(3)判断YnYn+1,00,直接右移一位,此时部分积应该为00H,乘数为0CH,附加位为00H,部分积、乘数和附加位结果分别显示在寄存器R0、0F2H、80H存储单元中,如图3.3和3.4所示:图3.3 部分积显示图3.4 乘数和附加位显示(4)C=5,做C=C-1操作,储存在R3中,如图3.5所示:图3.5 C结果显示(5)判断C是否为0,若不为0,按Booth算法操作表继续循环,当C=0时,此时部分积为01H,乘数为20H,附加位为01H,如图3.6和3.7所示:图3.6 部分积显示图3.7 乘数和附加位显示操作,结果应该为:乘数为20H,(6)判断YnYn+1,为01,做部分积+[X]补部分积为FBH,分别输出结果,如图3.8,3.9所示:图3.8 OUT寄存器输出乘数图3.9 OUT寄存器输出部分积经过计算验证结果无误参考文献[1]曹昕爱.EDA技术试验与课程实验[M].北京:清华大学出版社,2006[2] 范延滨.微型计算机系统原理、接口与EDA设计技术[M].北京:北京邮电大学出版社,2006[3] 唐朔飞.计算机组成原理[M].北京:高等教育出版社,2006[4] 王英爱.计算机组成与结构(第4版)[M].北京:清华大学出版社,2006附录。

相关文档
最新文档