計(jì)算機(jī)組成及結(jié)構(gòu)第3章1_第1頁
計(jì)算機(jī)組成及結(jié)構(gòu)第3章1_第2頁
計(jì)算機(jī)組成及結(jié)構(gòu)第3章1_第3頁
計(jì)算機(jī)組成及結(jié)構(gòu)第3章1_第4頁
計(jì)算機(jī)組成及結(jié)構(gòu)第3章1_第5頁
已閱讀5頁,還剩60頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

計(jì)算機(jī)組成原理任課教師:郝尚富河北北方學(xué)院信息科學(xué)與工程學(xué)院Email:zjkcxh5656@163.comTel3章運(yùn)算方法和運(yùn)算部件3.1數(shù)據(jù)的表示方法和轉(zhuǎn)換3.2帶符號(hào)二進(jìn)制數(shù)據(jù)的表示方法和加減運(yùn)算3.3二進(jìn)制乘法運(yùn)算3.4二進(jìn)制除法運(yùn)算3.5浮點(diǎn)數(shù)的運(yùn)算方法3.6運(yùn)算部件3.7數(shù)據(jù)校驗(yàn)碼本章重難點(diǎn)重點(diǎn):1、數(shù)據(jù)的表示(定點(diǎn)數(shù)、浮點(diǎn)數(shù))2、補(bǔ)碼的加減運(yùn)算及溢出判斷3、定點(diǎn)數(shù)的原碼、補(bǔ)碼的乘除法,實(shí)現(xiàn)框圖4、運(yùn)算部件組成、原理5、數(shù)據(jù)校驗(yàn)碼的編碼、譯碼方法,功能、應(yīng)用場(chǎng)合。3.1數(shù)據(jù)的表示方法和轉(zhuǎn)換3.1.1數(shù)制與數(shù)據(jù)的轉(zhuǎn)換:(P68)

基:數(shù)碼權(quán):每一位的值常用的幾種進(jìn)位數(shù)制:

1.二進(jìn)制B2.八進(jìn)制Q3.十六進(jìn)制H4.十進(jìn)制D

數(shù)據(jù)的轉(zhuǎn)換:

1.二(八、十六)進(jìn)制轉(zhuǎn)換成十進(jìn)制數(shù)據(jù)

2.二進(jìn)制數(shù)與八進(jìn)制、十六進(jìn)制的關(guān)系

3.十進(jìn)制轉(zhuǎn)換為二進(jìn)制:湊冪次方方法3.1.2十進(jìn)制數(shù)的編碼與運(yùn)算

在計(jì)算機(jī)中采用4位二進(jìn)制碼對(duì)每個(gè)十進(jìn)制數(shù)位進(jìn)行編碼。

有權(quán)碼:表示一位十進(jìn)制數(shù)的二進(jìn)制碼的每一位有確定的權(quán)。

8421碼BCD碼:以二進(jìn)制編碼的十進(jìn)制(binarycodeddecimal。

在計(jì)算機(jī)內(nèi)部實(shí)現(xiàn)BCD碼算術(shù)運(yùn)算,要對(duì)運(yùn)算結(jié)果進(jìn)行修正。修正方法:如果兩個(gè)一位BCD碼相加之和小于或等于(1001)2,即(9)10,不需要修正;如相加之和大于或等于(10)10,要進(jìn)行加6修正,并向高位進(jìn)位,進(jìn)位可以在首次相加或修正時(shí)產(chǎn)生。另外幾種有權(quán)碼:特點(diǎn):任何兩個(gè)相加之和等于9的二進(jìn)制碼互為反碼(除了8421碼)。

余3碼是在8421碼基礎(chǔ)上,把每個(gè)編碼都加上0011而形成的(見表3.3),其運(yùn)算規(guī)則是:當(dāng)兩個(gè)余3碼相加不產(chǎn)生進(jìn)位時(shí),應(yīng)從結(jié)果中減去0011;產(chǎn)生進(jìn)位時(shí),應(yīng)將進(jìn)位信號(hào)送人高位,本位加0011。

格雷碼的編碼規(guī)則:任何兩個(gè)相鄰編碼只有一個(gè)二進(jìn)制位不同,而其余三個(gè)二進(jìn)制位相同。其優(yōu)點(diǎn)是從一個(gè)編碼變到下一個(gè)相鄰編碼時(shí),只有l(wèi)位發(fā)生變化,用它構(gòu)成計(jì)數(shù)器時(shí)可得到更好的譯碼波形。格雷碼的編碼方案有多種,表3.3給出兩組常用的編碼值。無權(quán)碼:表示二個(gè)十進(jìn)制數(shù)位的二進(jìn)制碼的每一位沒有確定的權(quán)。

數(shù)字串在計(jì)算機(jī)內(nèi)的表示與存儲(chǔ)

主要有兩種形式:(1)字符形式。即一個(gè)字節(jié)存放一個(gè)十進(jìn)制數(shù)位或符號(hào)位,存放的是0~9十個(gè)數(shù)字和正負(fù)號(hào)的ASCII編碼值。例如,+123的編碼為

這種表示方式運(yùn)算起來很不方便,因?yàn)樗母?位不具有數(shù)值的意義,它主要用在非數(shù)值計(jì)算的應(yīng)用領(lǐng)域中。ASCII:(AmericanStandardCodeforInformationInterchange,美國(guó)信息互換標(biāo)準(zhǔn)代碼)

7位二進(jìn)制編碼

0—9:31H---39HA—Z:41H---5AHa---z:61H---7AH回車:0DH換行:0AH空格:20H

(2)壓縮的十進(jìn)制數(shù)形式。用一個(gè)字節(jié)存放兩個(gè)十進(jìn)制數(shù)位,既節(jié)省了存儲(chǔ)空間,又便于完成十進(jìn)制數(shù)的算術(shù)運(yùn)算。其值用BCD碼或ASCII碼的低4位表示。符號(hào)位也占半個(gè)字節(jié)并放在最低數(shù)字位之后,其值可從4位二進(jìn)制碼中的6種冗余狀態(tài)中選用。例如,用C(12)表示正號(hào),D(13)表示負(fù)號(hào)。并規(guī)定數(shù)字和符號(hào)位個(gè)數(shù)之和必須為偶數(shù),否則在最高數(shù)字之前補(bǔ)一個(gè)0。例如:+123被表示成-12被表示成(2字節(jié))(2字節(jié))3.2帶符號(hào)二進(jìn)制數(shù)據(jù)的表示方法和加減運(yùn)算真值:計(jì)算機(jī)外界的數(shù).現(xiàn)表示為二進(jìn)制.x1=+1011000x2=-101100機(jī)器數(shù):在計(jì)算機(jī)中表示的帶符號(hào)的二進(jìn)制數(shù),機(jī)器數(shù)有三種表示方式:原碼、補(bǔ)碼和反碼。機(jī)器數(shù)的長(zhǎng)度受字長(zhǎng)限制。[x1]原=01011000[x2]原=1101100字長(zhǎng):運(yùn)算器中表示處理數(shù)據(jù)的二進(jìn)制位數(shù).n=8例3.12:X=+0.1011,[X]原=01011X=-0.1011,[X]原=1-X=1-(-0.1011)=110111.原碼表示法:(2)已知[x]原,求x[x]原=

x

n-1…x

1x

0則:當(dāng)x

n-1=0時(shí),x=+x

n-2…x

1x

0當(dāng)x

n-1=1時(shí),x=-x

n-2…x

1x

0(3)數(shù)值零在原碼中有兩種表示形式:[+0]原=00000,[-0]原=10000。(4)當(dāng)字長(zhǎng)為n時(shí),原碼表示范圍:小數(shù):-(1-2-(n-1))~+(1-2-(n-1))整數(shù):-(2n-1-1)~+(2n-1-1)(5)原碼表示的優(yōu)缺點(diǎn):優(yōu):數(shù)的原碼與真值之間的關(guān)系比較簡(jiǎn)單。缺點(diǎn):在機(jī)器中進(jìn)行加減法運(yùn)算時(shí)比較復(fù)雜。2.補(bǔ)碼表示法:例3.13:X=+0.1011,[X]補(bǔ)=0.1011X=-0.1011,[X]補(bǔ)=2+X=2+(-0.1011)=1.0101簡(jiǎn)便:正數(shù)的補(bǔ)碼同原碼.負(fù)數(shù)補(bǔ)碼:符號(hào)位:1,數(shù)值部分:絕對(duì)值求反加1.(1)(2)已知[x]補(bǔ),求x[x]補(bǔ)=

x

n-1…x

1x

0則:當(dāng)x

n-1=0時(shí),x=+x

n-2…x

1x

0當(dāng)x

n-1=1時(shí),x=-(x

n-2…x

1x

0)求反加1(3)數(shù)值零的補(bǔ)碼表示形式是唯一的,即:[+0]補(bǔ)=[-0]補(bǔ)=0.0000

(4)當(dāng)字長(zhǎng)為n時(shí),補(bǔ)碼表示范圍:小數(shù):-1~+(1-2-(n-1))整數(shù):-2n-1~+(2n-1-1)(5)補(bǔ)碼優(yōu)點(diǎn):當(dāng)補(bǔ)碼加法運(yùn)算的結(jié)果不超出機(jī)器范圍時(shí),可得出以下重要結(jié)論:(1)用補(bǔ)碼表示的兩數(shù)進(jìn)行加法運(yùn)算,其結(jié)果仍為補(bǔ)碼。(2)[X+Y]補(bǔ)=[X]補(bǔ)+[Y]補(bǔ)。(3)符號(hào)位與數(shù)值位一樣參與運(yùn)算。舉例說明(例3.14,3.15,3.16,3.17,3.18,3.19)。補(bǔ)碼加減法:數(shù)用補(bǔ)碼表示,符號(hào)位參加運(yùn)算。實(shí)際操作能否只取決于操作碼?結(jié)果需不需修正?如何將減法轉(zhuǎn)換為加法?基本關(guān)系式:(X+Y)補(bǔ)=X補(bǔ)+Y補(bǔ)

(1)

(X-Y)補(bǔ)=X補(bǔ)+(-Y)補(bǔ)

(2)式(1):操作碼為“加”時(shí),兩數(shù)直接相加。3)X=3Y=–2X補(bǔ)=00011Y補(bǔ)=1111000001(+1補(bǔ)碼)2)X=–3Y=–2X補(bǔ)=11101Y補(bǔ)=1111011011(–5補(bǔ)碼)1)X=3Y=2X補(bǔ)=00011Y補(bǔ)=0001000101(+5補(bǔ)碼)4)X=–3Y=2X補(bǔ)=11101Y補(bǔ)=0001011111(–1補(bǔ)碼)例.求(X+Y)補(bǔ)(X+Y)補(bǔ)=X補(bǔ)+Y補(bǔ)

(1)

(X-Y)補(bǔ)=X補(bǔ)+(-Y)補(bǔ)

(2)式(2):操作碼為“減”時(shí),將減轉(zhuǎn)換為加。1)X=4Y=–5X補(bǔ)=00100Y補(bǔ)=11011(-Y)補(bǔ)=0010101001(+9補(bǔ)碼)2)X=–4Y=5X補(bǔ)=11100Y補(bǔ)=00101(-Y)補(bǔ)=1101110111(–9補(bǔ)碼)例.求(X–Y)補(bǔ)Y補(bǔ)(–Y)補(bǔ):將Y補(bǔ)變補(bǔ)不管Y補(bǔ)為正或負(fù),將其符號(hào)連同尾數(shù)一起各位變反,末位加1。即將減數(shù)變補(bǔ)后與被減數(shù)相加。X補(bǔ)=00100

Y補(bǔ)=11011X補(bǔ)=11100

Y補(bǔ)=00101注意:某數(shù)的補(bǔ)碼表示與某數(shù)變補(bǔ)的區(qū)別。例.10101原11011補(bǔ)碼表示10011補(bǔ)01101變補(bǔ)例.10101原

1101100101原00101補(bǔ)碼表示符號(hào)位不變;

00101原

00101

10101原

1

1011

00101原

00101負(fù)數(shù)尾數(shù)改變,正數(shù)尾數(shù)不變。00011補(bǔ)1110110011補(bǔ)

0110100011補(bǔ)

1110110011補(bǔ)

0110100011補(bǔ)

11101變補(bǔ)符號(hào)位改變,尾數(shù)改變。補(bǔ)碼的機(jī)器負(fù)數(shù)算法流程操作數(shù)用補(bǔ)碼表示,符號(hào)位參加運(yùn)算結(jié)果為補(bǔ)碼表示,符號(hào)位指示結(jié)果正負(fù)X補(bǔ)+Y補(bǔ)X補(bǔ)+(-Y)補(bǔ)ADDSUB邏輯實(shí)現(xiàn)A(X補(bǔ))B(Y補(bǔ))+AABB+B+B+1CPAA(1)控制信號(hào)加法器輸入端:+A:打開控制門,將A送。+B:打開控制門,將B送。+1:控制末位加1。+B:打開控制門,將B送。加法器輸出端:A:打開控制門,將結(jié)果送A輸入端。CPA:將結(jié)果打入A。(2)運(yùn)算器粗框3.反碼表示法:當(dāng)X為正數(shù)時(shí):[X]反=[X]原;當(dāng)X為負(fù)數(shù)時(shí):保持[X]原符號(hào)位不變,而將數(shù)值部分取反。反碼運(yùn)算是以2-2-n為模,所以,當(dāng)最高位有進(jìn)位而丟掉進(jìn)位(即2)時(shí),要在最低位+1。(2)反碼零有兩種表示形式:[+0]反=0.0000,[-0]反=1.1111(3)反碼運(yùn)算在最高位有進(jìn)位時(shí),要在最低位+1,此時(shí)要多進(jìn)行一次加法運(yùn)算,增加了復(fù)雜性,又影響了速度,因此很少采用。

從以上討論可見,正數(shù)的原碼、補(bǔ)碼和反碼的表示形式是相同的,而負(fù)數(shù)則各不相同。4.整數(shù)的表示形式小數(shù)點(diǎn)隱含位置不同.設(shè)X=Xn…X2X1X0,其中Xn為符號(hào)位。3.2.2加減法運(yùn)算的溢出處理

當(dāng)運(yùn)算結(jié)果超出機(jī)器數(shù)所能表示的范圍時(shí),稱為溢出。顯然,兩個(gè)異號(hào)數(shù)相加或兩個(gè)同號(hào)數(shù)相減,其結(jié)果是不會(huì)溢出的。僅當(dāng)兩個(gè)同號(hào)數(shù)相加或者兩個(gè)異號(hào)數(shù)相減時(shí),才有可能發(fā)生溢出的情況,一旦溢出,運(yùn)算結(jié)果就不正確了,因此必須將溢出的情況檢查出來。溢出有正溢和負(fù)溢,也稱上溢和下溢。最高有效位有進(jìn)位而符號(hào)位無進(jìn)位是正溢,最高有效位無進(jìn)位而符號(hào)位由進(jìn)位是負(fù)溢今以4位二進(jìn)制補(bǔ)碼正整數(shù)加法運(yùn)算為例說明如下:

在上例中,①、②、⑤和⑥得出正確結(jié)果,③和④為溢出。判別溢出的幾種方法:

今以fA,fB表示兩操作數(shù)(A、B)的符號(hào)位,fS為結(jié)果的符號(hào)位。符號(hào)位fA、fB直接參與運(yùn)算,它所產(chǎn)生的進(jìn)位以Cf表示。在以2n+1為模的運(yùn)算中符號(hào)位有進(jìn)位,并不一定表示溢出,今將判別溢出的幾種方法介紹如下:(1)當(dāng)符號(hào)相同的兩數(shù)相加時(shí),如果結(jié)果的符號(hào)與加數(shù)(或被加數(shù))不相同,則為溢出例3.28中③和④。即在計(jì)算機(jī)中判溢出的邏輯電路如圖3.2所示,圖3.2(a)和圖3.2(b)是兩種不同邏輯電路,但其結(jié)果是相同的。A=10B=710+7:01010

0011110001A=-10B=-7-10+(-7):011111011011001

(2)當(dāng)任意符號(hào)兩數(shù)相加時(shí),如果C=Cf,運(yùn)算結(jié)果正確,其中C為數(shù)值最高位的進(jìn)位,Cf為符號(hào)位的進(jìn)位。如果C≠Cf,則為溢出,所以

溢出條件=C⊕Cf。例3.28中的③和④即為這種情況。其邏輯電路見圖3.3。正確0001100010(1)A=3B=23+2:00101(2)A=10B=710+7:010100011110001正溢正確負(fù)溢正確正確(3)A=-3B=-2-3+(-2):110111110111110(4)A=-10B=-7-10+(-7):011111011011001(5)A=6B=-46+(-4):000100011011100(6)A=-6B=4-6+4:111101101000100Cf=0C=0Cf=0C=1Cf=1C=1Cf=1C=0Cf=1C=1Cf=0C=0111111(3)采用雙符號(hào)位fS1,fS2。正數(shù)的雙符號(hào)位為00,負(fù)數(shù)的雙符號(hào)位為11。符號(hào)位參與運(yùn)算,當(dāng)結(jié)果的兩個(gè)符號(hào)位fS1,fS2不相同時(shí),為溢出。所以

溢出條件=fS1⊕

fS2,或者其邏輯電路如圖3.4所示。見例3.29。(1)3+2:正確000011000010000101(2)10+7:001010000111010001正溢正確負(fù)溢正確正確(3)-3+(-2):110111111101111110(4)-10+(-7):101111110110111001(5)6+(-4):000010000110111100(6)-6+4:111110111010000100第一符號(hào)位Sf1第二符號(hào)位Sf23.2.3定點(diǎn)數(shù)和浮點(diǎn)數(shù)

在計(jì)算機(jī)中的數(shù)據(jù)有定點(diǎn)數(shù)和浮點(diǎn)數(shù)兩種表示方式:

1.定點(diǎn)數(shù)

定點(diǎn)數(shù)是指小數(shù)點(diǎn)固定在某個(gè)位置上的數(shù)據(jù),一般有小數(shù)和整數(shù)兩種表示形式。

數(shù)值位(n-1位)符號(hào)位(1位)小數(shù)整數(shù)2.浮點(diǎn)數(shù)浮點(diǎn)數(shù)是指小數(shù)點(diǎn)位置可浮動(dòng)的數(shù)據(jù),通常以下式表示:

N=M*RE其中,N為浮點(diǎn)數(shù),M(mantissa)為尾數(shù)(純小數(shù)),E(exponent)為階碼(整數(shù)),R(radix)稱為“階的基數(shù)(底)”,而且R為一常數(shù),一般為2、8或16。在一臺(tái)計(jì)算機(jī)中,所有數(shù)據(jù)的R都是相同的,于是不需要在每個(gè)數(shù)據(jù)中表示出來。

Ms是尾數(shù)的符號(hào)位,設(shè)置在最高位上。E為階碼,有n+1位,一般為整數(shù),其中有一位符號(hào)位,設(shè)置在E的最高位上,用來表示正階或負(fù)階。常用補(bǔ)碼和移碼表示.M為尾數(shù),有m位,由Ms和M組成一個(gè)定點(diǎn)小數(shù)。Ms=0,表示正號(hào),Ms=1,表示負(fù)號(hào)。常用補(bǔ)碼表示.浮點(diǎn)數(shù)的機(jī)內(nèi)表示一般采用以下形式:規(guī)格化:當(dāng)R=2,且尾數(shù)值不為0時(shí),其絕對(duì)值應(yīng)大于或等于(0.5)10。對(duì)非規(guī)格化浮點(diǎn)數(shù),通過將尾數(shù)左移或右移,并修改階碼值使之滿足規(guī)格化要求。假設(shè)浮點(diǎn)數(shù)的尾數(shù)為0.0011,階碼為0100(設(shè)定R=2),規(guī)格化時(shí),將尾數(shù)左移2位,而成為0.1100,階碼減去(10)2,修改成0010,浮點(diǎn)數(shù)的值保持不變。機(jī)器零:①當(dāng)一個(gè)浮點(diǎn)數(shù)的尾數(shù)為0(不論階碼是何值),②階碼的值比能在機(jī)器中表示的最小值還小時(shí),計(jì)算機(jī)都把該浮點(diǎn)數(shù)看成零值,稱為機(jī)器零。根據(jù)IEEE754國(guó)際標(biāo)準(zhǔn),常用的浮點(diǎn)數(shù)有兩種袼式:(1)單精度浮點(diǎn)數(shù)(32位),階碼8位,尾數(shù)24位(內(nèi)含1位符號(hào)位)。(2)雙精度浮點(diǎn)數(shù)(64位),階碼11位,尾數(shù)53位(內(nèi)含1位符號(hào)位)。

移碼的定義如下

(當(dāng)階碼為n+1位二進(jìn)制整數(shù)其中最高位為符號(hào)位時(shí)):[X]移=2n+X-2n≤X<2n(3.11)補(bǔ)碼與移碼之間的關(guān)系:符號(hào)位相反,數(shù)值部分不變。例3.30X=+1011[X]補(bǔ)=01011[X]移=11011X=-1011[X]補(bǔ)=10101[X]移=00101移碼具有以下特點(diǎn):

(1)最高位為符號(hào)位,1表示正號(hào),0表示負(fù)號(hào)。(2)在計(jì)算機(jī)中,移碼(階碼)只執(zhí)行加減法運(yùn)算,且需要對(duì)得到的結(jié)果加以修正,修正量為2n,即要對(duì)結(jié)果的符號(hào)位取反,得到[X]移。設(shè)X=+1010y=+0011,則[X]移=1.1010[Y]移=1.0011執(zhí)行加法運(yùn)算[X]移+[Y]移=1.1010+1.0011=101101,加2n后得[X+Y]移,[X+Y]移=01101+10000=11101(3)數(shù)據(jù)0有唯一的編碼,即[+0]移=[-0]移=1000...0。3.計(jì)算機(jī)中數(shù)據(jù)的數(shù)值范圍和精度數(shù)值范圍是指機(jī)器所能表示的一個(gè)數(shù)的最大值和最小值之間的范圍。數(shù)據(jù)精度是指一個(gè)數(shù)的有效位數(shù)。因此,數(shù)值范圍和數(shù)據(jù)精度是兩個(gè)不同的概念。例如,32位定點(diǎn)小數(shù)(補(bǔ)碼)的范圍為-1~1-2-31,定點(diǎn)整數(shù)(補(bǔ)碼)的范圍是-231~+231-

1,數(shù)據(jù)精度為31位。浮點(diǎn)數(shù)由于階碼的存在而擴(kuò)大了數(shù)據(jù)的范圍。例如,標(biāo)準(zhǔn)的32位單精度數(shù),其數(shù)值的可表示范圍為-2127~(1-2-23)·2127,精度為24位。因此用于科學(xué)計(jì)算的計(jì)算機(jī)一般都有浮點(diǎn)處理器。補(bǔ)充:移位操作1.移位類型邏輯移位算術(shù)移位

:數(shù)碼位置變化,數(shù)值不變。:數(shù)碼位置變化,數(shù)值變化,符號(hào)位不變。移位寄存器:2.移位邏輯在寄存器中移位(串行接口中)。D4D3D2D1D4D3D2右移左移D3D2D1移位門:斜位傳送(運(yùn)算器中)。左斜右斜4312門4門3門2門1(1)單符號(hào)位:0011101110

(2)雙符號(hào)位:001110

0001113.正數(shù)補(bǔ)碼移位規(guī)則(3)移位規(guī)則左移右移右移0

01110

0011左移左移右移右移011100

00

111000

0111數(shù)符不變(單:符號(hào)位不變;雙:第一符號(hào)位不變)。空位補(bǔ)0(右移時(shí)第二符號(hào)位移至尾數(shù)最高位)。易出錯(cuò)處:001110:001100左右011100:000110(1)單符號(hào)位:1101110110

(2)雙符號(hào)位:101100

1101104.負(fù)數(shù)補(bǔ)碼移位規(guī)則(3)移位規(guī)則左移右移右移1

10111

1101左移右移右移11

011011

1011數(shù)符不變(單:符號(hào)位不變;雙:第一符號(hào)位不變)。左移空位補(bǔ)0(第二符號(hào)位移至尾數(shù)最高位)。易出錯(cuò)處:110110:111100左右101100:111110右移空位補(bǔ)1舍入方法1.0舍1入(原碼、補(bǔ)碼)例.000100原00010原

100101原10011原

111011補(bǔ)11110補(bǔ)

2.末位恒置1(原碼、補(bǔ)碼)例.000100原00011原

111011補(bǔ)11101補(bǔ)

100101原10011原

100101原10011原

111011補(bǔ)11101補(bǔ)

3.3定點(diǎn)乘法運(yùn)算3.3.1定點(diǎn)數(shù)一位乘法一.原碼一位乘法

每次用一位乘數(shù)去乘被乘數(shù)。

1.算法分析乘法部分積累加、移位。例.0.1101×0.1011乘積P=X×Y積符SP=SXSY(1)手算0.1101×0.101111011101000011010.10001111上符號(hào):0.10001111部分積改進(jìn):1)將一次相加改為分步累加;即每次得一個(gè)相加數(shù),就與上次部分積相加.2)相加數(shù)左移改為部分積右移,即前一次部分積的最低位,不再參與運(yùn)算,可將其右移一位,相加數(shù)可直接送而不必左移,N位加法器實(shí)現(xiàn)兩個(gè)N位數(shù)相乘.3)_部分積右移時(shí),乘數(shù)寄存器同時(shí)右移一位,這樣可以用乘數(shù)寄存器的最低位控制相加數(shù),同時(shí)乘數(shù)寄存器的最高位可接受部分積右移出來的一位.問題:1)加數(shù)增多(由乘數(shù)位數(shù)決定)。

2)加數(shù)的位數(shù)增多(與被乘數(shù)、乘數(shù)位數(shù)有關(guān))。(2)分步乘法每次將一位乘數(shù)所對(duì)應(yīng)的部分積與原部分積的累加和相加,并移位。設(shè)置寄存器:A:存放部分積累加和、乘積高位B:存放被乘數(shù)C:存放乘數(shù)、乘積低位

設(shè)置初值:A=00.0000B=X=00.1101C=Y=00.1011

步數(shù)條件操作AC00.0000.1011

1)Cn=1+BCn+00.110100.110100.01101.1012)Cn=1+B+00.110101.001100.100111.103)Cn=0+0+00.000000.100100.0100111.14)Cn=1+B+00.110101.000100.10001111X原×Y原=0.100011112.算法流程0A、XB、YC、nCdCn=1?Cd=0?1/2(A+B)A,C1/2(A+0)A,CCd-1CdYYNNSx+SySA

3.運(yùn)算規(guī)則(1)操作數(shù)、結(jié)果用原碼表示;(2)絕對(duì)值運(yùn)算,符號(hào)單獨(dú)處理;(3)被乘數(shù)(B)、累加和(A)取雙符號(hào)位;(4)乘數(shù)末位(Cn)為判斷位,其狀態(tài)決定下步操作;(5)作n次循環(huán)(累加、右移)。

4.邏輯實(shí)現(xiàn)1.算法分析

X補(bǔ)=X0.X1X2……Xn(1)Y為正:Y補(bǔ)=0.Y1Y2……Yn

(XY)補(bǔ)=X補(bǔ)(0.Y1Y2……Yn)(2)Y為負(fù):Y補(bǔ)=1.Y1Y2……Yn

(XY)補(bǔ)=X補(bǔ)(0.Y1Y2……Yn)+(-X)補(bǔ)(3)Y符號(hào)任意:

(XY)補(bǔ)=X補(bǔ)(0.Y1Y2……Yn)+(-X)補(bǔ)Y0符號(hào)位二.補(bǔ)碼一位乘法(4)展開為部分積的累加和形式:(XY)補(bǔ)=X補(bǔ)(0.Y1Y2……Yn)+(-X)補(bǔ)Y0

=X補(bǔ)(0.Y1Y2……Yn)-X補(bǔ)Y0

=X補(bǔ)(-Y0+2Y1+2

Y2+……+2Yn)-1

-2

-n

=X補(bǔ)-Y0+(Y1-2Y1)+(2Y2-2Y2)+……-1

-1-2-(n-1)-n

+(2Yn-2Yn)

=X補(bǔ)(Y1-Y0)+2(Y2-Y1)+2(Y3-Y2)+……-1-2

+2(0-Yn)-n

+2(0-Yn)-nYn+1

=X補(bǔ)

(Y1-Y0)+2(Y2-Y1)+2(Y3-Y2)+……-1-2

+2(0

-Yn)-nYn+1比較法:用相鄰兩位乘數(shù)比較的結(jié)果決定+X補(bǔ)、

-X補(bǔ)或+0。

2.比較法算法Yn(高位)Yn+1(低位)操作(A補(bǔ)為部分積累加和)00011011

1/2A補(bǔ)1/2(A補(bǔ)+X補(bǔ))1/2(A補(bǔ)-X補(bǔ))1/2A補(bǔ)(0)(1)(-1)(0)3.運(yùn)算實(shí)例X=-0.1101,Y=-0.1011,求(XY)補(bǔ)。初值:A=00.0000,B=X補(bǔ)=11.0011,-B=(-X)補(bǔ)=00.1101,C=Y補(bǔ)=1.0101步數(shù)條件操作AC00.00001.0101

1)10-BCn+00.110100.110100.011011.01012)01+B+11.001111.100111.1100111.0103)10-B+00.110100.100100.01001111.014)01+B+11.001111.011111.101111111.00

Cn+1CnCn+15)10-B+00.1101B=X補(bǔ)=11.0011,-B=(-X)補(bǔ)=00.1101(XY)補(bǔ)

=0.100011114)01+B+11.001111.011111.101111111.05)10-B+00.110100.10001111修正(1)A、B取雙符號(hào)位,符號(hào)參加運(yùn)算;(2)C取單符號(hào)位,符號(hào)參加移位,以決定最后是否修正;(3)C末位設(shè)置附加位Cn+1,初值為0,CnCn+1組成判斷位,決定運(yùn)算操作;(4)作n步循環(huán),若需作第n+1步,則不移位,僅修正。

4.運(yùn)算規(guī)則1.0:-B修正0.1:+B修正0.0:不修正1.1:不修正3.3.2原碼兩位乘法

每次用兩位乘數(shù)去乘被乘數(shù)。

1.算法分析Yi(高位)Yi+1(低位)部分積累加、移位00011011

1/4A1/4(A+X)1/4(A+2X)1/4(A+3X)(0)(1)(2)(3)0X2X3X如何實(shí)現(xiàn)+3X操作?

1/4(A+3X)=000001010011操作

1/4(A+2X+X)=1/4(A+2X)+1/4X

1/4(A-X+4X)=1/4(A-X)+X①①②②

1/4(A+2X+X)=1/4(A+2X)+1/4X

1/4(A-X+4X)=1/4(A-X)+X①①②②

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論