數(shù)值的機器運算_第1頁
數(shù)值的機器運算_第2頁
數(shù)值的機器運算_第3頁
數(shù)值的機器運算_第4頁
數(shù)值的機器運算_第5頁
已閱讀5頁,還剩74頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第第4 4章章 數(shù)值的機器運算數(shù)值的機器運算基本算數(shù)運算的實現(xiàn)基本算數(shù)運算的實現(xiàn)4.1定點加減運算定點加減運算4.2 帶符號數(shù)的移位和舍入操作帶符號數(shù)的移位和舍入操作4.3定點乘法運算定點乘法運算4.4定點除法運算定點除法運算4.5規(guī)格化浮點運算規(guī)格化浮點運算4.6十進(jìn)制整數(shù)的加法運算十進(jìn)制整數(shù)的加法運算4.7邏輯運算與實現(xiàn)邏輯運算與實現(xiàn)4.8運算器的基本組成運算器的基本組成4.94.1 4.1 基本算數(shù)運算的實現(xiàn)基本算數(shù)運算的實現(xiàn)4.1.1 4.1.1 加法器加法器加法器是由全加器再配以其他必要的邏輯電路組成的。加法器是由全加器再配以其他必要的邏輯電路組成的。1全加器全加器全加器(全加器(F

2、A)是最基本的加法單元,它有)是最基本的加法單元,它有3個輸入量:操作數(shù)個輸入量:操作數(shù)A和和B,低位傳進(jìn)來的進(jìn)位低位傳進(jìn)來的進(jìn)位C-1。兩個輸出量:本位和。兩個輸出量:本位和S,向高位的進(jìn)位向高位的進(jìn)位C。全加器的邏輯框圖如圖。全加器的邏輯框圖如圖4-1所示,其真值表如所示,其真值表如表表4-1所示。所示。根據(jù)真值表,可得到全加器的邏輯表達(dá)式:根據(jù)真值表,可得到全加器的邏輯表達(dá)式: Si=Ai Bi Ci-1 Ci=AiBi+(Ai Bi)Ci-1圖4-1 全加器邏輯圖框圖表4-1全加器真值表2串行加法器與并行加法器串行加法器與并行加法器加法器有串行和并行之分。在串行加法器中,只有一個全加器

3、,數(shù)據(jù)逐位串加法器有串行和并行之分。在串行加法器中,只有一個全加器,數(shù)據(jù)逐位串行送入加法器進(jìn)行運算;并行加法器則由多個全加器組成,其位數(shù)的多少取行送入加法器進(jìn)行運算;并行加法器則由多個全加器組成,其位數(shù)的多少取決于機器的字長,數(shù)據(jù)的各位同時運算。決于機器的字長,數(shù)據(jù)的各位同時運算。串行加法器如圖串行加法器如圖4-2所示。圖中所示。圖中FA是全加器,是全加器,A、B是兩個具有右移功能的寄是兩個具有右移功能的寄存器,存器,C為進(jìn)位觸發(fā)器。由移位寄存器從低位到高位逐位串行提供操作數(shù)相為進(jìn)位觸發(fā)器。由移位寄存器從低位到高位逐位串行提供操作數(shù)相加。如果操作數(shù)長加。如果操作數(shù)長n位,加法就要分位,加法就要

4、分n次進(jìn)行,每次產(chǎn)生一位和,并行地送回次進(jìn)行,每次產(chǎn)生一位和,并行地送回A寄存器。進(jìn)位觸發(fā)器用來寄存進(jìn)位信號,以便參與下一次的運算。寄存器。進(jìn)位觸發(fā)器用來寄存進(jìn)位信號,以便參與下一次的運算。串行加法器具有器件少、成本低的優(yōu)點,但運輸速度太慢,所以除了某些低串行加法器具有器件少、成本低的優(yōu)點,但運輸速度太慢,所以除了某些低速的專用運算器外很少采用。速的專用運算器外很少采用。并行加法器可同時對數(shù)據(jù)的各位相加,但存在著一個加法的最長運算時間問并行加法器可同時對數(shù)據(jù)的各位相加,但存在著一個加法的最長運算時間問題。這是因為雖然操作數(shù)的各位是同時提供的,但運算所產(chǎn)生的進(jìn)位會影響題。這是因為雖然操作數(shù)的各位

5、是同時提供的,但運算所產(chǎn)生的進(jìn)位會影響高位的運算結(jié)果。例如:高位的運算結(jié)果。例如:11.11和和00.01相加,最低位運算所產(chǎn)生的進(jìn)位相加,最低位運算所產(chǎn)生的進(jìn)位將逐位影響至最高位,因此,并行加法器的最長運算時間主要是由進(jìn)位信號將逐位影響至最高位,因此,并行加法器的最長運算時間主要是由進(jìn)位信號的傳遞時間決定的而每個全加器本身的求和延遲只是次要因素,很明顯,提的傳遞時間決定的而每個全加器本身的求和延遲只是次要因素,很明顯,提高并行加法器速度的關(guān)鍵是盡量加快進(jìn)位和傳遞的速度。高并行加法器速度的關(guān)鍵是盡量加快進(jìn)位和傳遞的速度。圖4-2 串行加法器4.1.2 4.1.2 進(jìn)位的產(chǎn)生和傳遞進(jìn)位的產(chǎn)生和傳

6、遞并行加法器中的每一個全加器都有一個從低位送進(jìn)來的進(jìn)位輸入和一個并行加法器中的每一個全加器都有一個從低位送進(jìn)來的進(jìn)位輸入和一個傳送給高位的進(jìn)位輸出。通常將傳遞進(jìn)位信號的邏輯線路連接起來構(gòu)成傳送給高位的進(jìn)位輸出。通常將傳遞進(jìn)位信號的邏輯線路連接起來構(gòu)成的進(jìn)位網(wǎng)絡(luò)稱為進(jìn)位鏈。每一位的進(jìn)位表達(dá)為:的進(jìn)位網(wǎng)絡(luò)稱為進(jìn)位鏈。每一位的進(jìn)位表達(dá)為: Ci=AiBi+(Ai Bi)Ci-1其中,其中,“AB”取決于本位參加運算的兩個數(shù),而與低進(jìn)位無關(guān),因此稱取決于本位參加運算的兩個數(shù),而與低進(jìn)位無關(guān),因此稱AB為進(jìn)位產(chǎn)生函數(shù)為進(jìn)位產(chǎn)生函數(shù)(本次進(jìn)位產(chǎn)生本次進(jìn)位產(chǎn)生),用,用G表示,其含義是:若本位的表示,其含義

7、是:若本位的兩個輸入均為兩個輸入均為1,必然要向高位產(chǎn)生進(jìn)位。,必然要向高位產(chǎn)生進(jìn)位?!埃ˋ+B)C-1”則不但與本則不但與本位的兩個數(shù)有關(guān),還依賴于低位送來的進(jìn)位,因此稱位的兩個數(shù)有關(guān),還依賴于低位送來的進(jìn)位,因此稱A +B為進(jìn)位傳遞為進(jìn)位傳遞函數(shù)(低位進(jìn)位傳遞),用函數(shù)(低位進(jìn)位傳遞),用P表示,其含義是:當(dāng)兩個輸入中有一個為表示,其含義是:當(dāng)兩個輸入中有一個為1,低位傳來的進(jìn)位的進(jìn)位,低位傳來的進(jìn)位的進(jìn)位C-1將向更高位傳送,所以進(jìn)位表達(dá)示又可以將向更高位傳送,所以進(jìn)位表達(dá)示又可以寫成:寫成: Ci=Gi+PiCi把把n個全加器串接起來,就可以進(jìn)行兩個個全加器串接起來,就可以進(jìn)行兩個n位

8、數(shù)的相加。這種加法器稱為位數(shù)的相加。這種加法器稱為穿行進(jìn)位的并行加法器。穿行進(jìn)位的并行加法器。4.1.3 4.1.3 并行加法器的快速進(jìn)位并行加法器的快速進(jìn)位2.分組并行進(jìn)位方式分組并行進(jìn)位方式實際上,通常采用分組并行進(jìn)位方式。這種進(jìn)位方式是把實際上,通常采用分組并行進(jìn)位方式。這種進(jìn)位方式是把n位字長分為位字長分為若干小組,在組內(nèi)各位之間實行并行快遞進(jìn)位,在組間既可以采用串行若干小組,在組內(nèi)各位之間實行并行快遞進(jìn)位,在組間既可以采用串行進(jìn)位方式,也可以采用并快速進(jìn)位方式,因此有兩種情況。進(jìn)位方式,也可以采用并快速進(jìn)位方式,因此有兩種情況。(1)單級先進(jìn)位方式(組內(nèi)并行、組間串行)單級先進(jìn)位方式

9、(組內(nèi)并行、組間串行)以以16位加法器為例,可分為四組,每組四位。第一小組組內(nèi)的進(jìn)位邏輯位加法器為例,可分為四組,每組四位。第一小組組內(nèi)的進(jìn)位邏輯函數(shù)函數(shù)C、C、C、C的表達(dá)式與前述相同,的表達(dá)式與前述相同,C1C4信號時同時產(chǎn)生的,信號時同時產(chǎn)生的,實現(xiàn)上述進(jìn)位邏輯函數(shù)的電路稱之為實現(xiàn)上述進(jìn)位邏輯函數(shù)的電路稱之為4位先行進(jìn)位電路,其延遲時間是位先行進(jìn)位電路,其延遲時間是2ty。 利用這種利用這種4位的位的CLA電路及進(jìn)位產(chǎn)生電路及進(jìn)位產(chǎn)生/傳遞電路和求和電路可以構(gòu)成傳遞電路和求和電路可以構(gòu)成4位位的的CLA加法器。用加法器。用4個這樣的個這樣的CLA加法器,很容易構(gòu)成加法器,很容易構(gòu)成16位

10、的單級先行位的單級先行進(jìn)位加法器。進(jìn)位加法器。(2)多級先行進(jìn)位方式(組內(nèi)并行、組間并行)多級先行進(jìn)位方式(組內(nèi)并行、組間并行)在單級先行進(jìn)位電路中,進(jìn)位的延遲時間是和組數(shù)成正比的,組數(shù)越多,在單級先行進(jìn)位電路中,進(jìn)位的延遲時間是和組數(shù)成正比的,組數(shù)越多,進(jìn)位的延遲時間久越長,因此當(dāng)加法器的字長較長(進(jìn)位的延遲時間久越長,因此當(dāng)加法器的字長較長(n=16)時,為了加)時,為了加快進(jìn)位傳遞時間,就有必要采用多級先行進(jìn)位方式。快進(jìn)位傳遞時間,就有必要采用多級先行進(jìn)位方式。4.2 4.2 定點加減運算定點加減運算4.2.1 4.2.1 原碼加減運算原碼加減運算4.2.2 4.2.2 補碼加減運算補碼

11、加減運算3.補碼加減運算規(guī)則補碼加減運算規(guī)則補碼加減運算規(guī)則如下:補碼加減運算規(guī)則如下: 參加運算的兩個操作數(shù)均用補碼表示。參加運算的兩個操作數(shù)均用補碼表示。 符號位作為數(shù)的一部分參加運算。符號位作為數(shù)的一部分參加運算。 若做加法,則兩個直接相加,若做減法,則將被減數(shù)與若做加法,則兩個直接相加,若做減法,則將被減數(shù)與減數(shù)的機器負(fù)數(shù)相加。減數(shù)的機器負(fù)數(shù)相加。 運算結(jié)果仍用補碼表示。運算結(jié)果仍用補碼表示。4.2.3 4.2.3 補碼的溢出判斷與檢測方法補碼的溢出判斷與檢測方法1.溢出的產(chǎn)生溢出的產(chǎn)生在補碼加減運算中,有時會遇到這樣的情況:兩個正數(shù)相加,而結(jié)果的在補碼加減運算中,有時會遇到這樣的情況

12、:兩個正數(shù)相加,而結(jié)果的符號位卻為符號位卻為1(結(jié)果為負(fù));兩個負(fù)數(shù)相加,而結(jié)果的符號位卻為(結(jié)果為負(fù));兩個負(fù)數(shù)相加,而結(jié)果的符號位卻為0(結(jié)(結(jié)果為正)。果為正)。2.溢出檢測方法溢出檢測方法 假設(shè),被操作數(shù)為:假設(shè),被操作數(shù)為:X補補 = Xs,X1,X2.Xn 操作數(shù)為:操作數(shù)為: Y補補 = Ys,Y1,Y2.Yn 其和(差)為:其和(差)為: S補補 = Ss,S1,S2.Sn(1)采用一個符號位)采用一個符號位(2)采用進(jìn)位位)采用進(jìn)位位(3)采用變形補碼(雙符號位補碼)采用變形補碼(雙符號位補碼)4.2.4 4.2.4 補碼定點加減運算的實現(xiàn)補碼定點加減運算的實現(xiàn)實現(xiàn)補碼加減運

13、算的邏輯電路如圖實現(xiàn)補碼加減運算的邏輯電路如圖4-8所示。所示。圖圖4-8中中F代表一個多為的并行加法器,其功能是:接受參加運算代表一個多為的并行加法器,其功能是:接受參加運算的兩個數(shù),進(jìn)行加法運算,并在輸出端給出本次運算結(jié)果。的兩個數(shù),進(jìn)行加法運算,并在輸出端給出本次運算結(jié)果。X和和Y時兩個寄存器,用來存放參加運算的數(shù)據(jù),寄存器時兩個寄存器,用來存放參加運算的數(shù)據(jù),寄存器X同時還用同時還用來保存運算結(jié)果。門來保存運算結(jié)果。門A、B、C分別是字級的與門和與或門,門分別是字級的與門和與或門,門A用來控制把寄存器用來控制把寄存器X各位的輸出送到加法器各位的輸出送到加法器F的左輸入端,其控的左輸入端

14、,其控制信號為制信號為XF;門;門C用來控制把加法器用來控制把加法器F各位的運算結(jié)果送回寄各位的運算結(jié)果送回寄存器存器X,其控制信號為,其控制信號為FX;門;門B則通過兩個不同的控制信號則通過兩個不同的控制信號YF和和 F,分別實現(xiàn)把寄存器分別實現(xiàn)把寄存器Y各位的內(nèi)容(即各觸發(fā)器的各位的內(nèi)容(即各觸發(fā)器的Q端端)送加法器)送加法器F,或?qū)崿F(xiàn)把寄存器,或?qū)崿F(xiàn)把寄存器Y各位的內(nèi)容取反后(即各觸發(fā)各位的內(nèi)容取反后(即各觸發(fā)器的器的 端)送加法器端)送加法器F。加法器。加法器F最低位還有一個進(jìn)位控制信號最低位還有一個進(jìn)位控制信號1 F。CPx是寄存器是寄存器X的打入脈沖。的打入脈沖。 若要實現(xiàn)補碼加法

15、,則需要給出若要實現(xiàn)補碼加法,則需要給出XF、YF和和FX3個控制個控制信號,同時打開門信號,同時打開門A、門、門B和門和門C,把寄存器,把寄存器X和寄存器和寄存器Y的內(nèi)容的內(nèi)容送入加法器的兩個輸入端進(jìn)行加法運算并把結(jié)果送回,最后打送入加法器的兩個輸入端進(jìn)行加法運算并把結(jié)果送回,最后打入脈沖入脈沖CPx打入寄存器打入寄存器X。 減法與加法的不同之處在于,加法使用減法與加法的不同之處在于,加法使用YF控制信號,減法控制信號,減法使用使用 F和和1F控制信號,其余控制信號相同??刂菩盘?,其余控制信號相同。4.3 4.3 帶符號數(shù)的移位和舍入操作帶符號數(shù)的移位和舍入操作4.3.1 帶符號數(shù)帶符號數(shù)的

16、移位操作的移位操作4.3.2 帶符號數(shù)帶符號數(shù)的舍入操作的舍入操作在計算機中,實現(xiàn)乘除運算的方案通常有在計算機中,實現(xiàn)乘除運算的方案通常有3種:種: 軟件實現(xiàn)。在低檔微機中無乘除運算指令,只能用乘法軟件實現(xiàn)。在低檔微機中無乘除運算指令,只能用乘法和除法子程序來實現(xiàn)乘除運算。和除法子程序來實現(xiàn)乘除運算。 在原有實現(xiàn)加減運算的運算器基礎(chǔ)上增加一些邏輯線路在原有實現(xiàn)加減運算的運算器基礎(chǔ)上增加一些邏輯線路,使乘除運算變換成加減和移位操作。在機器中設(shè)有乘除指令。,使乘除運算變換成加減和移位操作。在機器中設(shè)有乘除指令。 設(shè)置專用的乘、除法器,機器中設(shè)有相應(yīng)的乘除指令。設(shè)置專用的乘、除法器,機器中設(shè)有相應(yīng)的

17、乘除指令。不管采用什么方案實現(xiàn)乘除法,基本原理是相同的。如果采用第種方不管采用什么方案實現(xiàn)乘除法,基本原理是相同的。如果采用第種方案,則必然會涉及到移位操作。案,則必然會涉及到移位操作。4.3.1 4.3.1 帶符號數(shù)的移位操作帶符號數(shù)的移位操作4.3.2 4.3.2 帶符號數(shù)的舍入操作帶符號數(shù)的舍入操作在算數(shù)右移時受到硬件的限制,由于運算結(jié)果有可能處理需要舍去一在算數(shù)右移時受到硬件的限制,由于運算結(jié)果有可能處理需要舍去一定的尾數(shù),這會造成一些誤差。為了縮小誤差,就要進(jìn)行舍入。假定經(jīng)定的尾數(shù),這會造成一些誤差。為了縮小誤差,就要進(jìn)行舍入。假定經(jīng)過運算后的數(shù)共有過運算后的數(shù)共有p+q位現(xiàn)僅允許保

18、留前位現(xiàn)僅允許保留前p位。舍入方法有很多種,常見位。舍入方法有很多種,常見的舍入方法有的舍入方法有:(1)恒舍)恒舍(切斷切斷)。這是一種最容易實現(xiàn)的舍入方法,無論多。這是一種最容易實現(xiàn)的舍入方法,無論多余部分余部分q位為何代碼,一律舍去,保留部分的位為何代碼,一律舍去,保留部分的p位不做任何改變。位不做任何改變。(2)馮)馮.諾依曼舍入法。這種舍入法又稱為恒置諾依曼舍入法。這種舍入法又稱為恒置1法,即不法,即不論多余部分論多余部分q為何代碼,都將保留部分為何代碼,都將保留部分p位的最低位置位的最低位置1。 (3)下設(shè)上入法。下設(shè)上入就是)下設(shè)上入法。下設(shè)上入就是0舍舍1入,相當(dāng)于十進(jìn)制入,相

19、當(dāng)于十進(jìn)制中的四舍五入,用將要舍去的中的四舍五入,用將要舍去的q位的最高位作為判斷標(biāo)志,以決位的最高位作為判斷標(biāo)志,以決定保留是否加定保留是否加1.如該位為如該位為0,則舍去整個,則舍去整個q位(相當(dāng)于恒舍);如位(相當(dāng)于恒舍);如該位為該位為1,則在保留的,則在保留的p位的最低位上加位的最低位上加1。 (4)查表舍入法。查表舍入法又稱)查表舍入法。查表舍入法又稱ROM舍入法,因為它舍入法,因為它用用ROM來存放舍入處理表,每次經(jīng)查表來讀得相應(yīng)的處理結(jié)果來存放舍入處理表,每次經(jīng)查表來讀得相應(yīng)的處理結(jié)果。4.4 4.4 定點乘法運算定點乘法運算 4.4.1 4.4.1 原碼一位乘法原碼一位乘法

20、2.原碼一位乘法運算的實現(xiàn)原碼一位乘法運算的實現(xiàn)實現(xiàn)源碼一位乘法運算器框如圖實現(xiàn)源碼一位乘法運算器框如圖4-12所示。所示。圖中圖中A、B是是n+2位的寄存器,位的寄存器,C是是n位的寄存器,位的寄存器,A寄存器和寄存器和C寄存器是級聯(lián)寄存器是級聯(lián)在一起的,它們都具有右移一位的功能,在右移控制信號的作用下,在一起的,它們都具有右移一位的功能,在右移控制信號的作用下,A寄存寄存器最低一位的值將移入器最低一位的值將移入C寄存器的最高位。寄存器的最高位。C寄存器的最低位的值作為字級寄存器的最低位的值作為字級與門的控制信號,以控制加被乘數(shù)還是被乘數(shù)(即加與門的控制信號,以控制加被乘數(shù)還是被乘數(shù)(即加0

21、)。)。C寄存器中的乘寄存器中的乘數(shù)在逐次右移過程中將逐步丟失,取而代之的是乘積的最低部分。原碼一數(shù)在逐次右移過程中將逐步丟失,取而代之的是乘積的最低部分。原碼一位乘法運算器電路中除去位乘法運算器電路中除去3個寄存器外,還需要一個個寄存器外,還需要一個n+2位的加法器、一個位的加法器、一個計數(shù)器、計數(shù)器、n+2個與門(控制是否被乘數(shù))和一個異或門個與門(控制是否被乘數(shù))和一個異或門(處理符號位處理符號位)。4.4.2 4.4.2 補碼一位乘法補碼一位乘法4.4.3 4.4.3 補碼兩位乘法補碼兩位乘法至此,介紹了原碼、補碼一位乘法和補碼兩位乘法,對于初學(xué)者來說,往往會在運算次數(shù)、符號位取多少位

22、、符號位是否參加運算等問題上出錯,為了幫助大家記憶,特將這3種乘法運算的上述問題統(tǒng)一列于表4-5中。4.4.4 4.4.4 陳列乘法器陳列乘法器4.5 4.5 定點除法運算定點除法運算 4.5.1 4.5.1 原碼除法運算原碼除法運算 手工計算的規(guī)則是:首先判斷被除數(shù)和除數(shù)的大小,若除數(shù)小雨或等于被除手工計算的規(guī)則是:首先判斷被除數(shù)和除數(shù)的大小,若除數(shù)小雨或等于被除數(shù)的最高幾位,就將該位商上數(shù)的最高幾位,就將該位商上“1”,并從被除數(shù)中減除數(shù),得到新的余數(shù);,并從被除數(shù)中減除數(shù),得到新的余數(shù);若除數(shù)大于被除數(shù),就將該為商上若除數(shù)大于被除數(shù),就將該為商上“0”,被除數(shù)不變。然后,將被除數(shù)的下,被

23、除數(shù)不變。然后,將被除數(shù)的下一位挪下來或在部分余數(shù)的最低位補一位挪下來或在部分余數(shù)的最低位補“0”,再與除數(shù)進(jìn)行比較,直至除盡或,再與除數(shù)進(jìn)行比較,直至除盡或得到的商的位數(shù)滿足要求為止。得到的商的位數(shù)滿足要求為止。比較法類似于手工運算,只是為了便于機器操作,將除數(shù)右移該為部分余數(shù)比較法類似于手工運算,只是為了便于機器操作,將除數(shù)右移該為部分余數(shù)左移,每一位的上商直接寫到寄存器的最低位。設(shè)左移,每一位的上商直接寫到寄存器的最低位。設(shè)A寄存器中存放被除數(shù),寄存器中存放被除數(shù),B寄存器中存放除數(shù),寄存器中存放除數(shù),C寄存器用來存放商寄存器用來存放商Q,若,若A=B,則上商則上商1,并減除數(shù);,并減除

24、數(shù);若若AB,則上商,則上商0,比較過程的流程如圖比較過程的流程如圖4-16(a)所示。比較法需要設(shè)置比較線路,從而增加了)所示。比較法需要設(shè)置比較線路,從而增加了硬件的代價。硬件的代價。(2)恢復(fù)余數(shù)法)恢復(fù)余數(shù)法恢復(fù)余數(shù)法是直接作減法試探方法,不管被除數(shù)減除數(shù)是否夠減,都一恢復(fù)余數(shù)法是直接作減法試探方法,不管被除數(shù)減除數(shù)是否夠減,都一律先做減法。若部分余數(shù)為正,表示夠減,該位商上律先做減法。若部分余數(shù)為正,表示夠減,該位商上“1”;若部分余數(shù);若部分余數(shù)為負(fù),表示不夠減,該位商上為負(fù),表示不夠減,該位商上“0”,并要恢復(fù)余數(shù)。恢復(fù)余數(shù)過程的流,并要恢復(fù)余數(shù)?;謴?fù)余數(shù)過程的流程如圖程如圖4-

25、16(b)所示。)所示。 由于部分余數(shù)的正、負(fù)是根據(jù)不同的操作數(shù)組合隨機出現(xiàn)的,恢復(fù)除由于部分余數(shù)的正、負(fù)是根據(jù)不同的操作數(shù)組合隨機出現(xiàn)的,恢復(fù)除數(shù)法會使得除法運算的實際操作次數(shù)不固定,從而導(dǎo)致控制電路比較復(fù)數(shù)法會使得除法運算的實際操作次數(shù)不固定,從而導(dǎo)致控制電路比較復(fù)雜。而且在恢復(fù)余數(shù)時,要多作一次加法,降低了除法的執(zhí)行速度。因雜。而且在恢復(fù)余數(shù)時,要多作一次加法,降低了除法的執(zhí)行速度。因此,原碼恢復(fù)余數(shù)法在計算機中一般很少采用。此,原碼恢復(fù)余數(shù)法在計算機中一般很少采用。3原碼加減交替除法的實現(xiàn)原碼加減交替除法的實現(xiàn)實現(xiàn)原碼加減交替法的運算器框如圖實現(xiàn)原碼加減交替法的運算器框如圖4-18所示

26、,所示,A、B寄存器長寄存器長n+2個與個與或門、一個計算器和一個異或門。其中,或門、一個計算器和一個異或門。其中,A寄存器和寄存器和C寄存器是級聯(lián)在一寄存器是級聯(lián)在一起的,它們都具有左移控制信號的作用下,起的,它們都具有左移控制信號的作用下,C寄存器最高位的值將移入寄存器最高位的值將移入A寄存器的最低位。寄存器的最低位。A寄存器中的初值是被除數(shù),但在運算過程中將變?yōu)榧拇嫫髦械某踔凳潜怀龜?shù),但在運算過程中將變?yōu)椴糠钟鄶?shù)。部分余數(shù)。C寄存器的最低位用來保存每次得到的商值,此商值同時也寄存器的最低位用來保存每次得到的商值,此商值同時也作為下一次操作是做加法還是做減法的控制信號。作為下一次操作是做加

27、法還是做減法的控制信號。4.5.2 4.5.2 補碼除數(shù)運算補碼除數(shù)運算被除數(shù)和除數(shù)都用補碼表示,符號位參加運算,商和余數(shù)也用補碼表示,運被除數(shù)和除數(shù)都用補碼表示,符號位參加運算,商和余數(shù)也用補碼表示,運算時應(yīng)考慮以下問題:算時應(yīng)考慮以下問題:1. 夠減的判斷夠減的判斷 參加運算的兩個數(shù)符號任意,當(dāng)被除數(shù)(或部分除數(shù))的絕對值大于或等參加運算的兩個數(shù)符號任意,當(dāng)被除數(shù)(或部分除數(shù))的絕對值大于或等于除數(shù)的絕對值時,稱為夠減;反之稱為不夠減。為了判斷是否夠減,當(dāng)兩于除數(shù)的絕對值時,稱為夠減;反之稱為不夠減。為了判斷是否夠減,當(dāng)兩數(shù)同號時,實際應(yīng)作減法;兩數(shù)異號時,實際應(yīng)作加法。數(shù)同號時,實際應(yīng)作

28、減法;兩數(shù)異號時,實際應(yīng)作加法。 判斷的方法和結(jié)果如下:當(dāng)被除數(shù)(或部分余數(shù))與除數(shù)同號時,如果得判斷的方法和結(jié)果如下:當(dāng)被除數(shù)(或部分余數(shù))與除數(shù)同號時,如果得到的新部分余數(shù)與除數(shù)同號,表示夠減,否則為不夠減;當(dāng)被除數(shù)(或部分到的新部分余數(shù)與除數(shù)同號,表示夠減,否則為不夠減;當(dāng)被除數(shù)(或部分余數(shù))與除數(shù)異號時,如果得到的新部分余數(shù)與除數(shù)同號,表示夠減,否則余數(shù))與除數(shù)異號時,如果得到的新部分余數(shù)與除數(shù)同號,表示夠減,否則為不夠減。為不夠減。2. 上商規(guī)則上商規(guī)則補碼除法運算的商也是用補碼表示的,上商的規(guī)則是:如果補碼除法運算的商也是用補碼表示的,上商的規(guī)則是:如果X補和補和Y補同補同號,則商

29、為正數(shù),夠減時上商號,則商為正數(shù),夠減時上商“1”,不夠減時上商,不夠減時上商“0”;如果;如果X補和補和Y補補異號,則商為負(fù)數(shù),夠減時上商異號,則商為負(fù)數(shù),夠減時上商“0”,不夠減時上商,不夠減時上商“1”。將上商規(guī)則與夠減的判斷結(jié)合起來,可得到商的確定方法,如表4-6所示。X補和Y補商ri補和Y補上商同號正同號,表示夠減1異號,表示不夠減0異號負(fù)異號,表示夠減0同號,表示不夠減1表4-6 商的確定3. 商符的確定商符的確定 商符是在求商的過程中自動形成的,按補碼上商規(guī)則,第一次得出的商符是在求商的過程中自動形成的,按補碼上商規(guī)則,第一次得出的商,就是實際應(yīng)得的商符。為了防止溢出,必須有商,

30、就是實際應(yīng)得的商符。為了防止溢出,必須有|X|Y|,所以第一次,所以第一次肯定不夠減。當(dāng)被除數(shù)與除數(shù)同號時,部分余數(shù)與除數(shù)必然異號,商上肯定不夠減。當(dāng)被除數(shù)與除數(shù)同號時,部分余數(shù)與除數(shù)必然異號,商上“0”,恰好與商符一致,恰好與商符一致;當(dāng)被除數(shù)與除數(shù)異號時,部分余數(shù)與除數(shù)必然同當(dāng)被除數(shù)與除數(shù)異號時,部分余數(shù)與除數(shù)必然同號,商上號,商上“0”,也恰好就是商的符號。,也恰好就是商的符號。4. 求新部分余數(shù)求新部分余數(shù) 表表4-7 補碼加減交替法規(guī)則補碼加減交替法規(guī)則X補和Y補第一次操作ri補和Y補上商下一次操作同號X補-Y補同號,表示夠減1ri+1補=2ri補-Y補異號,表示不夠減0ri+1補=

31、2ri補+Y補異號X補+Y補同號,表示不夠減1ri+1補=2ri補-Y補異號,表示夠減0ri+1補=2ri補+Y補4.5.3 4.5.3 陣列除法器陣列除法器4.6 4.6 規(guī)格化浮點運算規(guī)格化浮點運算 4.6.1 4.6.1 浮點加減運算浮點加減運算 4.6.2 4.6.2 浮點乘除運算浮點乘除運算 4.6.3 4.6.3 浮點運算器的實現(xiàn)浮點運算器的實現(xiàn)由于浮點運算分成階碼和尾數(shù)兩部分,因此,浮點運算器的實現(xiàn)比定點運由于浮點運算分成階碼和尾數(shù)兩部分,因此,浮點運算器的實現(xiàn)比定點運算器復(fù)雜得多。分析上述的浮點四則運算可以發(fā)現(xiàn),對于浮點階碼只有加算器復(fù)雜得多。分析上述的浮點四則運算可以發(fā)現(xiàn),對

32、于浮點階碼只有加減運算,尾數(shù)則有加、減、乘、除四種運算。可見浮點運算器主要由兩個減運算,尾數(shù)則有加、減、乘、除四種運算??梢姼↑c運算器主要由兩個定點運算部件組成,一個是階碼運算部件,用來完成階碼加、減,以及控定點運算部件組成,一個是階碼運算部件,用來完成階碼加、減,以及控制對階時小階的尾數(shù)右移次數(shù)和規(guī)格化時對階碼的調(diào)整;另一個是尾數(shù)運制對階時小階的尾數(shù)右移次數(shù)和規(guī)格化時對階碼的調(diào)整;另一個是尾數(shù)運算部件,用來完成尾數(shù)的四則運算以及判斷尾數(shù)是否已規(guī)格化。此外,還算部件,用來完成尾數(shù)的四則運算以及判斷尾數(shù)是否已規(guī)格化。此外,還需要有溢出判斷電路等。需要有溢出判斷電路等?,F(xiàn)代計算機可把浮點運算部件做成任選件,或稱為協(xié)處理器。所謂協(xié)處理現(xiàn)代計算機可把浮點運算部件做成任選件,或稱為協(xié)處理器。所謂協(xié)處理器是因為它只能協(xié)助主處理器工作,不能單獨工作。器是因為它只能協(xié)助主處理器工作,不能單獨工作。 4.7 4.7 十進(jìn)制整數(shù)的加法運算十進(jìn)制整數(shù)的加法運算4.7.1 4.7.1 一位十進(jìn)制加法運算一位十進(jìn)制加法運算1.8421碼加法運算碼加法運算8421碼的加法規(guī)則:碼的加法規(guī)則:(1)兩個十進(jìn)制數(shù)的)兩個十進(jìn)制數(shù)的8421碼相加時,按碼相加時,按“逢二進(jìn)一逢二進(jìn)一”的原的原則進(jìn)行;則進(jìn)行;(2)當(dāng)和)當(dāng)和9,無需校正;,無需

溫馨提示

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

評論

0/150

提交評論