計算機(jī)組成原理-2數(shù)據(jù)表示和運算_第1頁
計算機(jī)組成原理-2數(shù)據(jù)表示和運算_第2頁
計算機(jī)組成原理-2數(shù)據(jù)表示和運算_第3頁
計算機(jī)組成原理-2數(shù)據(jù)表示和運算_第4頁
計算機(jī)組成原理-2數(shù)據(jù)表示和運算_第5頁
免費預(yù)覽已結(jié)束,剩余34頁可下載查看

付費下載

下載本文檔

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

文檔簡介

第2章數(shù)據(jù)的表示和運算計算機(jī)組成原理主要內(nèi)容:數(shù)制與編碼定點數(shù)的表示和運算定點數(shù)的表示:無符號數(shù)的表示;有符號數(shù)的表示。定點數(shù)的運算:定點數(shù)的移位運算;補(bǔ)碼定點數(shù)的加/減運算;定點數(shù)的乘/除運算;溢出概念和判別方法。浮點數(shù)的表示和運算算術(shù)邏輯單元ALU2.2定點數(shù)的表示和運算2.2.1定點數(shù)的表示定點數(shù):在計算機(jī)中,小數(shù)點位置固定不變的數(shù)。12無符號數(shù)的表示機(jī)器字長的全部位數(shù)均用來表示數(shù)值的大小,相當(dāng)于數(shù)的絕對值。對于字長為n位的無符號數(shù)的表示范圍為:0

—2n-1。帶符號數(shù)的表示在計算機(jī)中將數(shù)的符號數(shù)碼化。一般規(guī)定二進(jìn)制的最為符號位,最為“0”表示該數(shù)為正,為“1”表示該數(shù)為負(fù)。這種在機(jī)器中使用符號位也被數(shù)碼化的數(shù)稱為機(jī)器數(shù)。根據(jù)符號位和數(shù)值位的編碼方法不同,機(jī)器數(shù)分為原碼、補(bǔ)碼和反碼等。定點整數(shù)、定點小數(shù)計算機(jī)組成原理數(shù)值范圍和數(shù)據(jù)精度計算機(jī)組成原理數(shù)值范圍數(shù)值范圍是指一種類型的數(shù)據(jù)所能表示的最大值和最小值。數(shù)據(jù)精度通常指實數(shù)所能給出的有效數(shù)字位數(shù);對浮點數(shù)來說,精度不夠會造成誤差,誤差大量積累會出問題。定點小數(shù)表示:

X=X0計算機(jī)組成原理X-1

X-2

X-(n-1)[X]原=-1

X

0Mod

2(純小數(shù))原碼,反碼,補(bǔ)碼的定義n位字長(1位符號位,n-1位數(shù)值位)X1

-

XX(2

-

2-(n-1)[X]反=X2+X[X]補(bǔ)=0

X

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

)≤

X

00

X

1-2-(n-1))+

X

-(1-2-(n-1)

)≤

X

00

X

1-2-(n-1)實例:

X1

=

0.1011[

X

]

=

01011計算機(jī)組成原理-0.10111

10110.00000

00001

0000說明:原碼是符號位加數(shù)的絕對值,符號0正1負(fù)原碼零有兩個編碼,+0

和-0的編碼不同原碼難以用于加減運算,但乘除方便(純小數(shù))原碼的定義與說明定義:[X]原=X1

-

X0

X

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

)≤

X

0實例:

X1

=

0.1011[

X

]補(bǔ)

=

0

1011計算機(jī)組成原理-0.1011101010.00000

0000說明:補(bǔ)碼最高一位是符號位,符號0正1負(fù)補(bǔ)碼表示為:2×符號位+數(shù)的真值補(bǔ)碼零只有一個編碼,故能表示-1補(bǔ)碼能很好地用于加減(乘除)運算(純小數(shù))補(bǔ)碼的定義與說明定義:X2+

X補(bǔ)[X]

=-1

X

0Mod

20

X

1-2-(n-1)補(bǔ)碼的補(bǔ)充說明計算機(jī)組成原理得到一個數(shù)補(bǔ)碼表示的簡便辦法當(dāng)X≥0時,[X]補(bǔ)的符號位取0,數(shù)值位取X的各數(shù)值位上的值,此時有[X]補(bǔ)=X當(dāng)X<0時,[X]補(bǔ)的符號位取1,將X

的各數(shù)值位取反,再在最低位加1,以得到[X]補(bǔ)的各數(shù)值位上的值[X]原與[X]補(bǔ)的相互轉(zhuǎn)換簡便方法從[X]原求[X]補(bǔ)時,對正數(shù)或零,有[X]補(bǔ)=[X]原,對負(fù)數(shù)則符號位不變,各數(shù)值位變反后再在最低位執(zhí)行加1

操作由[X]補(bǔ)求[X]原時,對負(fù)數(shù)仍是符號位不變,各數(shù)值位變反后再在最低位執(zhí)行加1

操作已知[y]補(bǔ)如何簡單求[-y]補(bǔ)<Ⅰ>

[y]補(bǔ)

=

0

y1

y2

yn[

y] =

1

y

y

…y

+2-n補(bǔ)

1

2

n<Ⅱ>

[y]補(bǔ)

=

1

y1

y2

yn[

y] =0

y

y

y

+

2-n補(bǔ)

1

2

n[y]補(bǔ)連同符號位在內(nèi),每位取反,末位加1即得[

y]補(bǔ)[y]補(bǔ)連同符號位在內(nèi),每位取反,末位加1即得[

y]補(bǔ)計算機(jī)組成原理整數(shù)的編碼表示整數(shù)的原碼反碼補(bǔ)碼表示與小數(shù)的三種表示基本相同差別僅表現(xiàn)在小數(shù)點的位置可以認(rèn)為整數(shù)的小數(shù)點在最低數(shù)值位的右側(cè)因此整數(shù)的模與整數(shù)位數(shù)有關(guān)講課中不大用整數(shù)講原反補(bǔ)碼定義例如:整數(shù)6位編碼(1

位符號位,5

位數(shù)值位)X

=[X]原=0

01110[X]補(bǔ)=001110X

=

-

01110[X]原=101110[X]補(bǔ)=1

10010計算機(jī)組成原理X為真值計算機(jī)組成原理整數(shù)的機(jī)器數(shù)n位字長(1位符號位,n-1位數(shù)值位)[X]原=X2n-1

-

XX(2n

-

1)+X[X]反=X2n

+

X[X]補(bǔ)=0

X

2n-1

-1-(2n-1

-1

)≤

X

00

X

2n-1

-1-(2n-1

-1

)≤

X

00

X

2n-1

-1-2n-1

X

0

(mod

2n)000000000000000100000010…011111111000000010000001111111011111111011111111…二進(jìn)制代碼原碼對應(yīng)的真值補(bǔ)碼對應(yīng)的真值反碼對應(yīng)的真值無符號數(shù)對應(yīng)的真值0計算機(jī)組成原理12127128129…253254255…-3-2-1…0+1+2…-2-1-0…+0+1+2…-125-126-127…+0+1+2+127-0-1…設(shè)機(jī)器數(shù)字長為8

位(含1位符號位),表示整數(shù)時,每個編碼分別代表無符號數(shù)、原碼、補(bǔ)碼和反碼的真值各為多少?整數(shù)的移碼表示(用于浮點數(shù)階碼)移碼定義:X為真值,若機(jī)器字長為n位[X]移=2n-1

+X移碼在數(shù)軸上的表示例如:n=8x

=

Bx

=–00110100B[x]移=27

+00110100B=10110100B[x]移=27

–00110100B=01001100B-2n-1

X

2n-1

-1[X]移2n–12n-1–2n-1

2n-1

–100真值X[X]移=2n-1

+X=

2n

+2n-1

+X=2n-1+[X]補(bǔ)計算機(jī)組成原理原、反、補(bǔ)、移碼表示小結(jié)正數(shù)的原碼、反碼、補(bǔ)碼表示均相同,符號位為0,數(shù)值位同數(shù)的真值。0的原碼和反碼有2個編碼,補(bǔ)碼和移碼只1個碼負(fù)數(shù)的原碼、反碼、補(bǔ)碼表示均不同,符號位為1,數(shù)值位:原碼為數(shù)的絕對值反碼為每一位均取反補(bǔ)碼為反碼再在最低位+1由[X]補(bǔ)求[-X]補(bǔ):無論正、負(fù),每一位取反后再在最低位+1同一個整數(shù)的移碼與補(bǔ)碼僅符號位相反。計算機(jī)組成原理2.2.2

定點數(shù)的運算1定點數(shù)的移位運算移位是一種常用的操作在乘法中需要右移在除法中需要左移在代碼處理中也經(jīng)常需要移位操作。移位可分為算術(shù)移位和邏輯移位,有左移和右移之分??梢詫拇嫫骰騿卧械臄?shù)據(jù)進(jìn)行移位。一次可以只移一位,也可以按指令中規(guī)定的次數(shù)移若干位。計算機(jī)組成原理①算術(shù)移位:移位的對象是數(shù)值型數(shù)據(jù),在移位后會發(fā)生數(shù)值大小的變化。對于二進(jìn)制數(shù),左移,絕對值擴(kuò)大;右移,絕對值縮小。算術(shù)移位規(guī)則:符號位不變②邏輯移位:邏輯左移、邏輯右移、循環(huán)左移和循環(huán)右移等。邏輯移位使代碼序列進(jìn)行移位,參與移位的對象被視為純邏輯意義上的代碼組合,邏輯移位只是使數(shù)碼位置發(fā)生變化,沒有正、負(fù)性質(zhì),也沒有數(shù)值大小問題。③算術(shù)移位和邏輯移位的區(qū)別:算術(shù)移位:帶符號數(shù)移位邏輯移位:無符號數(shù)移位計算機(jī)組成原理(2)補(bǔ)碼定點數(shù)的加/減運算計算機(jī)組成原理n

位字長①加法整數(shù)

[X+Y]補(bǔ)=[X]補(bǔ)+[Y]補(bǔ)(mod2n)小數(shù)

[X+Y]補(bǔ)=[X]補(bǔ)+[Y]補(bǔ)(mod2)②減法整數(shù)

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

)]補(bǔ)=[X]補(bǔ)+[-Y]補(bǔ)(mod2n)小數(shù)[X-Y]補(bǔ)=[X+(-Y

)]補(bǔ)=[X]補(bǔ)+[-Y]補(bǔ)(mod2)無需符號判定,數(shù)值位連同符號位一起相加,符號位產(chǎn)生的進(jìn)位自然丟掉。關(guān)鍵是由[Y]補(bǔ)

求[-Y]補(bǔ)

,

[-Y]補(bǔ)=

[Y]補(bǔ)

逐位取反,再在最低位加

1。(3)溢出概念和判別方法計算機(jī)組成原理當(dāng)運算結(jié)果超出機(jī)器數(shù)所能表示的范圍時,稱為溢出。一旦溢出,運算結(jié)果就不正確了,因此必須將溢出的情況檢查出來。主要判別方法:①單符號位:當(dāng)任意符號兩數(shù)相加時,設(shè)Cf為最高數(shù)值位的進(jìn)位,Cs為符號位的進(jìn)位,若Cf=Cs,運算結(jié)果正確;若Cf≠Cs

,則產(chǎn)生溢出。溢出條件:OV=Cs⊕Cf

。②雙符號:變形補(bǔ)碼,第一符號位Sf1,第二符號位Sf2,正數(shù)的雙符號位為00,負(fù)數(shù)的雙符號位為11。符號位參與運算,當(dāng)結(jié)果的兩個符號位不相同時為溢出。溢出條件OV=Sf1⊕Sf2

。補(bǔ)碼加減法溢出判斷方法一:單符號位:數(shù)值位有向符號位的進(jìn)位,但符號位不產(chǎn)生向更的進(jìn)位,數(shù)值位沒有向符號位的進(jìn)位,但符號位產(chǎn)生向更的進(jìn)位方法二:雙符號位(模4):運算結(jié)果為01

(正溢)或10(負(fù)溢),最高符號位Sf1

代表其真正的符號判斷溢出的邏輯電路如何實現(xiàn)呢?計算機(jī)組成原理補(bǔ)碼加減法運算實例X

=0.1011 y

=

-0.0101[X]補(bǔ)

=

001011,模4

補(bǔ)碼[Y]補(bǔ)

= 111011[-Y]補(bǔ)

= 00010100

1011+

00

010100

101101

0000X-Y(溢出)正數(shù)加負(fù)數(shù)不會溢出符號位和數(shù)值位都產(chǎn)生進(jìn)位X+Y

(不溢出)

雙符號位結(jié)果相同不是溢出正數(shù)加正數(shù)結(jié)果為負(fù)是溢出數(shù)值位有進(jìn)位符號位無進(jìn)位是溢出雙符號位結(jié)果不相同是溢出判斷溢出的2套方案是一個事實的2種不同的表述計算機(jī)組成原理單符號位判斷+

C0

C1OV=

C0

C1判斷電路FAFAz1z0OVc1c0y1x1y0x0數(shù)值位向符號位有進(jìn)位但符號位無進(jìn)位輸出或數(shù)值位向符號位沒有進(jìn)位但符號位本身有進(jìn)位輸出是溢出計算機(jī)組成原理雙符號位判斷OV=

z0'

z0

+

z'0

z0

=

z0'

z0判斷電路FAFAOVc'0z'0c1c0z0x'0y'0x0y0運算結(jié)果的2個符號位的值不相同表明有溢出計算機(jī)組成原理[X]原=X0.X1X2…Xn,X0為符號[Y]原=Y0.Y1Y2…Yn,Y0為符號計算機(jī)組成原理(4)定點數(shù)的乘法運算原碼一位乘法:兩個原碼數(shù)相乘,其乘積的符號為相乘兩數(shù)的異或值,數(shù)值為兩數(shù)絕對值之積。補(bǔ)碼一位乘法:乘法直接用補(bǔ)碼進(jìn)行,以減少轉(zhuǎn)換次數(shù)。①原碼一位乘運算方案符號位異或,絕對值相乘XY原

X原Y原

(X0Y0)(|

|

X||

Y|)原碼一位乘運算方案1

1

0

10

0

0

0

+ 1

1

0

1

0

.

1

0

0

0

1

1

1

1解決方案:每次求出部分積,不是一次總累加變每次左移被乘數(shù)為右移部分積,移出的部分保存起來(保存到哪?)乘數(shù)放到一個移位寄存器中,判乘數(shù)每一位的值用最低的一位線路計算機(jī)組成原理該方案用于計算機(jī)會有問題:加法器只有兩個數(shù)據(jù)輸入端加法器與乘運算數(shù)據(jù)位數(shù)相同如何判斷乘數(shù)每一位是0

或者1例:X=0.1101,Y=0.1011,求

X·Y=?最終乘積原碼表示:0

1

0

0

0

1

1

1

1手工運算過程:0.

1

1

0

1* 0.

1

0

1

11

1

0

1實現(xiàn)原碼一位乘法的邏輯線路圖部分積被

數(shù)乘數(shù)F加法器加運算移位線路每位1套第i-1位第

i

+1位

i

位F/2→X

F→X

F*2→X移位電路第i

位最

最低

高位

位三選一電路被乘數(shù)作為加數(shù),用乘數(shù)最低位的值控制累加,結(jié)果右移一位存部分積寄存器,并且乘數(shù)同時右移一位。部分積的最低位移入到乘數(shù)的最計數(shù)器Cd計算機(jī)組成原理低位部分積/乘數(shù)說明起始情況乘數(shù)最低位為1,加X0000001011+00110100110100011011011(丟失)+00110101001100100111101(丟失)+00000000100100010011110

(丟失)+00110101000100100011111

(丟失)右移部分積和乘數(shù)乘數(shù)最低位為1,加X右移部分積和乘數(shù)乘數(shù)最低位為0,加0右移部分積和乘數(shù)乘數(shù)最低位為1,加X右移部分積和乘數(shù)原碼一位乘運算過程舉例X

=

0.1101部分積Y

=

0.1011計算機(jī)組成原理【例】設(shè)X=0.1101,Y=0.1011,求X·Y。其中寄存器B=X,計數(shù)器Cd=4。計算過程:部分積

A

乘數(shù)

C0000001011+x

0

01

1

010

01

1

01右移一位→

0001101101+x

00110101右移一位→

00001110011110+0000000001001右移一位→00010011

11+x001101010001右移一位→00100011

11乘積低位乘積1(丟失)1(丟失)0(丟失)1(丟失)X?Y=0.10001111原碼一位乘運算規(guī)則計算機(jī)組成原理①操作數(shù)、結(jié)果用原碼表示②絕對值運算,符號單獨處理③被乘數(shù)(B)、部分積(A)取雙符號位④乘數(shù)末位(Cn)為判斷位,其狀態(tài)決定下步操作⑤作n次循環(huán)(累加、右移)特點絕對值運算用移位的次數(shù)判斷乘法是否結(jié)束邏輯移位原碼一位分步乘法每次將一位乘數(shù)所對應(yīng)的部分積與原部分積的累加和相加,并移位。硬件:設(shè)置3個寄存器(具有右移位功能):A:存放部分積累加和、乘積

B:存放被乘數(shù)C:存放乘數(shù)、乘積低位一個全加器設(shè)置初值:A

=

00.0000B

=

X

=00.1101C

=

Y

=

.1011計算機(jī)組成原理算法流程0

A、X

B、Y

C、n

CdCn

=

1

?1/2(A+0)

A,CCd

-1

CdCd

=

0

?Y1/2(A+B)A

,CN

NYB0⊕C0

A0②定點補(bǔ)碼一位乘法計算機(jī)組成原理原碼乘法存在的缺點是符號位需要單獨運算,并要在最后給乘積冠以正確的符號。補(bǔ)碼乘法是指采用操作數(shù)的補(bǔ)碼進(jìn)行乘法運算,最后乘積仍為補(bǔ)碼,能自然得到乘積的正確符

號。算法分析:符號位[X]補(bǔ)=X0.X1X2…Xn[Y]補(bǔ)=Y0.Y1Y2…Yn由Y=-Y0+0.Y1Y2…Yn,得[X·Y]補(bǔ)=[X]補(bǔ)(0.Y1Y2…Yn)+[-X]補(bǔ)Y0*

由[X]補(bǔ)=X0

X1X2…Xn

求真值X的推導(dǎo):

[X]補(bǔ)=2X0

+XX

=

[X]補(bǔ)

-

2X0

=

X0

X1X2…Xn

-

2X0=

-X0

+(-X0+

X0

X1X2…Xn)計算機(jī)組成原理=

-X0

+

0.X1X2…Xn(符號位與數(shù)值位分開)展開為部分積的累加和形式:[X·Y]補(bǔ)=[X]補(bǔ)(0.Y1Y2…Yn)+[-X]補(bǔ)Y0-n=[X]補(bǔ)(0.Y1Y2…Yn)-[X]補(bǔ)Y0=[X]補(bǔ)(-Y0+2-1Y1+2-2Y2+…+2-nYn)=[X]補(bǔ)(-Y0+(Y1-2-1Y1)+(2-1Y2-2-2Y2)+…+(2-(n-1)Yn-2-nYn))=[X]補(bǔ)[(Y1-Y0)+2-1

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

(0Yn+1

-Yn)比較法—

(Booth)算法:用相鄰兩位乘數(shù)比較的結(jié)果決定加[X]補(bǔ)、

[-X]補(bǔ)或0。0011(

0

)1/2A補(bǔ)(1)

1/2(A補(bǔ)+[X]補(bǔ))(-1)

1/2(A補(bǔ)+[-X]補(bǔ))1/2A補(bǔ)0101

(

0

)算法:在乘數(shù)Yn后添加Yn+1=0。按照Yn+1

,Yn相鄰兩位的三種情況,其運算規(guī)則如下:Yn( )

Yn+1(低位)

操作(A補(bǔ)為部分積累加和)右移一位計算機(jī)組成原理Booth算法運算規(guī)則計算機(jī)組成原理①部分積A、被乘數(shù)B取雙符號位,符號位參加運算;②乘數(shù)C取單符號位,符號參加移位,以決定最后是否修正;③

C末位設(shè)置附加位Cn+1,初值為0,

+1組成判斷位,決定運算操作,作n步循環(huán);④第n+1步(可能不用)由(Y1-Y0)決定,僅修正,不移位?!纠縓=-0.1101,Y=0.1011,求[X·Y]補(bǔ)。初值:A=00.0000,B=[X]補(bǔ)=11.0011,-B=[-X]補(bǔ)=00.1101,C

=[Y]補(bǔ)=0.1011計算過程:初始值,最后一位補(bǔ)0Y4Y5=10

+[-X]補(bǔ)右移一位Y3Y4=11+0右移一位Y2Y3=01+[X]補(bǔ)右移一位Y1Y2=10+[-X]補(bǔ)右移一位Y0Y1=01+[X]補(bǔ)+→+→+→+→+部分積0

0 0

0

0

0乘數(shù)Y Yi

Yi+10.

1

0

1

1

0說明0

01

1

0

10

01

1

0

10

00

1

1

01010110

00

0

0

00

00

1

1

00

00

0

1

10

101

011

10

0

1

11

10

1

1

01

11

0

1

10

010100

01

1

0

10

01

0

0

00

00

1

0

00

001011

10

0

1

11

10

1

1

10

001不移位乘積

乘積低位[X·Y]補(bǔ)=1.01110001,

X·Y=-0.10001111(5)定點除法運算計算機(jī)組成原理定點原碼一位除法恢復(fù)余數(shù)法:被除數(shù)(余數(shù))減去除數(shù),如果為0或者為正值時,上商為1,不恢復(fù)余數(shù);如果結(jié)果為負(fù),上商為0,再將除數(shù)加到余數(shù)中,恢復(fù)余數(shù)。余數(shù)左移1位。加減交替法:當(dāng)余數(shù)為正時,商上1,求下一位商的辦法,余數(shù)左移一位,再減去除數(shù);當(dāng)余數(shù)為負(fù)時,商上0,求下一位商的辦法,余數(shù)左移一

位,再加上除數(shù)。定點除法運算計算機(jī)組成原理定點補(bǔ)碼一位除法(加減交替法)如果被除數(shù)與除數(shù)同號,用被除數(shù)減去除數(shù);若兩數(shù)異號,被除數(shù)加上除數(shù)。如果所得余數(shù)與除數(shù)同號商上1,否則,商上0,該商為結(jié)果的符號位。求商的數(shù)值部分。如果上次商上1,將除數(shù)左移一位后減去除數(shù);如果上次商上0,將余數(shù)左

溫馨提示

  • 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

提交評論