Lecture 5 運算器-定點加減法_第1頁
Lecture 5 運算器-定點加減法_第2頁
Lecture 5 運算器-定點加減法_第3頁
Lecture 5 運算器-定點加減法_第4頁
Lecture 5 運算器-定點加減法_第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、思考n設(shè)設(shè)X=-0.1010 Y=0.0101 求求(X+Y)補補 和和 (X-Y)補補設(shè)機器數(shù)字長為設(shè)機器數(shù)字長為 8 位(含位(含 1 位符號位)位符號位)且且 A = 97,B = +41,用補碼求,用補碼求 A B思考n定點整數(shù)、小數(shù)有原碼、補碼表示形式,手工在紙上怎么定點整數(shù)、小數(shù)有原碼、補碼表示形式,手工在紙上怎么加減?舉例分析加減?舉例分析(兩正數(shù)相加、兩負數(shù)相加、正負兩個數(shù)相兩正數(shù)相加、兩負數(shù)相加、正負兩個數(shù)相加加)。(符號位直接參與運算符號位直接參與運算!)nx原原+y原原=?x+y原原;x原原 +-y原原=?x-y原原nx補補+y補補=?x+y補補;x補補+ -y補補=?x

2、-y補補n計算機中表示數(shù)據(jù)的寄存寄或存儲單元長度固定,計算機中表示數(shù)據(jù)的寄存寄或存儲單元長度固定,n如果運行結(jié)果超過這個長度會產(chǎn)生什么結(jié)果?如果運行結(jié)果超過這個長度會產(chǎn)生什么結(jié)果?n什么情況下會發(fā)生超出表示范圍的現(xiàn)象?什么情況下會發(fā)生超出表示范圍的現(xiàn)象?n這個結(jié)果能否被利用?這個結(jié)果能否被利用?n試從計算機的角度來判斷運算結(jié)果什么時候出錯了?試從計算機的角度來判斷運算結(jié)果什么時候出錯了?定點數(shù)加減運算課程結(jié)構(gòu)主要內(nèi)容n定點補碼加減法定點補碼加減法n溢出檢測溢出檢測n基本加法器基本加法器解:解:A補補B補補A補補 + B補補+= 0 . 1 0 1 1= 1 . 1 0 1 1= 1 0 . 0

3、 1 1 0= A + B補補驗證驗證例例設(shè)設(shè) A = 0.1011,B = 0.0101求求 A + B補補0.1011 0.01010.0110 A + B = 0 . 0 1 1 0A補補B補補A補補 + B補補+= 1 , 0 1 1 1= 1 , 1 0 1 1= 1 1 , 0 0 1 0= A + B補補驗證驗證 1001 1110 0101+例例設(shè)設(shè) A = 9,B = 5 求求 A+B補補解:解: A + B = 1110 補碼加法的運算公式為:補碼加法的運算公式為:xy補補x補補y補補 補碼減法的運算公式為:補碼減法的運算公式為:xy補補 x補補y補補 加減法運算規(guī)則:加減

4、法運算規(guī)則:參加運算的數(shù)都用補碼表示。參加運算的數(shù)都用補碼表示。數(shù)據(jù)的符號與數(shù)據(jù)一樣參加運算。數(shù)據(jù)的符號與數(shù)據(jù)一樣參加運算。求差時將減數(shù)求補,用求和代替求差。求差時將減數(shù)求補,用求和代替求差。運算結(jié)果為補碼。如果符號位為運算結(jié)果為補碼。如果符號位為0,表明運算結(jié)果為正;,表明運算結(jié)果為正; 如果符號位為如果符號位為1,則表明運算結(jié)果為負。,則表明運算結(jié)果為負。符號位的進位為模值,應(yīng)該丟掉。符號位的進位為模值,應(yīng)該丟掉。定點補碼加減法 補碼加法的運算公式為:補碼加法的運算公式為:xy補補x補補y補補證明:下面以模為證明:下面以模為2定義的補碼為例,分幾種情況來證明這個公式。定義的補碼為例,分幾種

5、情況來證明這個公式。 (1) x0, y0, 則則xy 0 由于參加運算的數(shù)都為正數(shù),故運算結(jié)果也一定為正數(shù)。又由于正數(shù)的補碼與真由于參加運算的數(shù)都為正數(shù),故運算結(jié)果也一定為正數(shù)。又由于正數(shù)的補碼與真值有相同的表示形式,即值有相同的表示形式,即 x 補補x y 補補y 所以所以 x補補y補補xyxy 補補 (2) x0, y 0或或xy 0 時,時, 2 (xy)2,2為符號位進位,即模丟掉為符號位進位,即模丟掉 。 又因為又因為(xy)0,所以,所以 x 補補y 補補xy xy 補補 當(dāng)當(dāng)xy0 時,時,2(xy) 2,又因為,又因為(xy) 0,所以,所以 x 補補y 補補 2xy xy

6、補補 這里應(yīng)將這里應(yīng)將(xy)看成一個整體??闯梢粋€整體。定點補碼加減法 (3 3) x0, 則則xy 0 或或 xy 0 這種情況和第種情況類似,即把這種情況和第種情況類似,即把x與與y的位置對調(diào)即可得證。的位置對調(diào)即可得證。 (4) x0, y0, 則則xy 0 由于參加運算的數(shù)都為負數(shù),故運算結(jié)果也一定為負數(shù)。又由于負數(shù)的補碼為:由于參加運算的數(shù)都為負數(shù),故運算結(jié)果也一定為負數(shù)。又由于負數(shù)的補碼為: x 補補 2x y 補補 2 y 所以所以 x補補y 補補 2(2xy) 由于由于xy為負數(shù),為負數(shù),其絕對值又小于其絕對值又小于1,那么,那么(2 x y)就一定是小于就一定是小于2而大于

7、而大于1的數(shù),的數(shù),所以上式等號右邊的所以上式等號右邊的2必然丟掉,又因為必然丟掉,又因為xy0,所以,所以 x補補y補補 (2xy) 2(xy)xy 補補 至此證明了在模為至此證明了在模為2的定義下,任意兩個數(shù)的補碼之和等于該兩個數(shù)之和的補碼。的定義下,任意兩個數(shù)的補碼之和等于該兩個數(shù)之和的補碼。 這是補碼加法的理論基礎(chǔ),其結(jié)論也適用于定點整數(shù)。這是補碼加法的理論基礎(chǔ),其結(jié)論也適用于定點整數(shù)。 定點補碼加減法 補碼減法的運算公式為:補碼減法的運算公式為: x補補y補補 x補補y 補補 證明:證明:因為因為 x補補y補補=xy補補 令令x = y 代入,代入,則有則有 y補補y補補=yy補補

8、= 0補補 = 0 所以所以 y補補=y補補所以:所以: x補補y補補 x補補( (y補補)=)=x補補y 補補 定點補碼加減法 不難發(fā)現(xiàn),只要能通過不難發(fā)現(xiàn),只要能通過y 補補求得求得y 補補,就可以將補碼,就可以將補碼減法運算化為補碼加法運算。減法運算化為補碼加法運算。 已知已知y 補補,求,求y 補補的法規(guī)是:對的法規(guī)是:對y 補補各位各位(包括符號包括符號位位)取反、末位加取反、末位加1,就可以得到,就可以得到y(tǒng) 補補。 例如:已知例如:已知y 補補1.1010,則,則y 補補0.0110; 又如:已知又如:已知y 補補0.1110,則,則y 補補1.0010; 定點補碼加減法證明:證

9、明:-x 補補 與與x 補補的關(guān)系。的關(guān)系。證明:證明: 當(dāng)當(dāng)0 x1時,設(shè)時,設(shè) x 補補=0.x1 x2 xn -x =-0.x1 x2 xn所以所以 -x 補補=1.x1* x2* xn* 2-n比較比較x 補補和和-x 補補,發(fā)現(xiàn)將,發(fā)現(xiàn)將x 補補連同符號位求反,末位加,即得連同符號位求反,末位加,即得x 補補。 當(dāng)當(dāng)-1x0時,設(shè)時,設(shè) x 補補=1.x1 x2 xn 則則 x =-( 0.x1* x2* xn*2n ) 所以所以 -x= 0. 1.x1* x2* xn*2-n故故 x 補補= 0. 2-n比較比較x 補補和和x 補補,發(fā)現(xiàn),發(fā)現(xiàn)將將x 補補連同符號位求反,末位加,即

10、連同符號位求反,末位加,即得得x 補補。 (1) 設(shè)設(shè)X=-0.1010 Y=0.0101 求求(X+Y)補補 和和 (X-Y)補補解解: (X)補補 = 1.0110 (Y)補補 =0.0101 (-Y)補補 = 1.1011 (X)補補 1.0110 (X)補補 1.0110 + (Y)補補 0.0101 + (-Y)補補 1.1011 (X+Y)補補 1.1011 (X-Y)補補 1.0001 X+Y = -0.0101 X-Y = - 0.1111 加減法運算示例加減法運算示例 (2) 設(shè)設(shè)X=-0.1011 Y=-0.0101 求求(X+Y)補補 和和 (X-Y)補補解解: (X)補

11、補 = 1.0101 (Y)補補 =1.1011 (-Y)補補 = 0.0101 (X)補補 1.0101 (X)補補 1.0101 + (Y)補補 1.1011 + (-Y)補補 0.0101 (X+Y)補補 1.0000 (X-Y)補補 1.1010 X+Y = -1 X-Y = - 0.0110 加減法運算示例加減法運算示例例例練習(xí)練習(xí) 1設(shè)設(shè) x = y = ,用補碼求,用補碼求 x+y9161116x + y = 0.1100 =1216練習(xí)練習(xí) 2 設(shè)機器數(shù)字長為設(shè)機器數(shù)字長為 8 位(含位(含 1 位符號位)位符號位) 且且 A = 97,B = +41,用補碼求,用補碼求 A

12、BA B = + 1110110 = + 118錯錯錯錯主要內(nèi)容n定點補碼加減法定點補碼加減法n溢出檢測溢出檢測n基本加法器基本加法器溢出判斷溢出判斷 由于機器碼的位數(shù)通常是給定的(如由于機器碼的位數(shù)通常是給定的(如16位字長,位字長,32位字長),因位字長),因此,數(shù)的表示范圍是有限的,若兩數(shù)進行加減運算的結(jié)果超出給此,數(shù)的表示范圍是有限的,若兩數(shù)進行加減運算的結(jié)果超出給定的取值范圍,就會產(chǎn)生溢出。定的取值范圍,就會產(chǎn)生溢出。溢出是指運算結(jié)果超過了數(shù)的表示范圍。溢出是指運算結(jié)果超過了數(shù)的表示范圍。兩個符號相同的數(shù)相加,才可能產(chǎn)生溢出;兩個符號相同的數(shù)相加,才可能產(chǎn)生溢出;兩個符號相異的數(shù)相加

13、,不可能產(chǎn)生溢出。兩個符號相異的數(shù)相加,不可能產(chǎn)生溢出。q例,例,X=+0.1011,Y=+0.1001,X+Y=? X補補 0.1011 + Y補補 0.1001 1.0100此時,兩個正數(shù)相加的結(jié)果成為負數(shù),顯然是錯誤的。此時,兩個正數(shù)相加的結(jié)果成為負數(shù),顯然是錯誤的。溢出判斷溢出判斷q又如,又如,X=0.1101,Y=0.1011,X+Y=? X補補 1.0011 + Y補補 1.0101 0.1000q兩個負數(shù)相加的結(jié)果成為正數(shù),這同樣是錯誤的。兩個負數(shù)相加的結(jié)果成為正數(shù),這同樣是錯誤的。q為判斷溢出是否產(chǎn)生,可以采用三種檢測方法。為判斷溢出是否產(chǎn)生,可以采用三種檢測方法。設(shè)設(shè) X 的

14、符號為的符號為 Xf,Y 的符號為的符號為 Yf,運算結(jié)果的符號為,運算結(jié)果的符號為 Sf。 溢出邏輯表達式:溢出邏輯表達式:syxsyxffffffV, 若, 若 V0 無溢出;無溢出; V1 有溢出。有溢出。 即:兩個符號相同的數(shù)相運算,其運算結(jié)果符號相反就產(chǎn)生了溢出現(xiàn)象。即:兩個符號相同的數(shù)相運算,其運算結(jié)果符號相反就產(chǎn)生了溢出現(xiàn)象。 溢出判斷溢出判斷1、單符號位操作檢測、單符號位操作檢測n方法:當(dāng)運算結(jié)果的符號位與操作數(shù)的符號位不一致時,表示溢出;當(dāng)加數(shù)和被加方法:當(dāng)運算結(jié)果的符號位與操作數(shù)的符號位不一致時,表示溢出;當(dāng)加數(shù)和被加數(shù)符號位不同時,相加的結(jié)果絕對不會溢出。數(shù)符號位不同時,

15、相加的結(jié)果絕對不會溢出。n例,例,X=+0.1001,Y=+0.1110, 是否溢出?是否溢出? X補補 0.1001 + Y補補 0.1110 1.0111 運算結(jié)果產(chǎn)生溢出。運算結(jié)果產(chǎn)生溢出。XfYfSfV00111101其它其它0溢出判斷溢出判斷2、進位檢測法、進位檢測法nCf C000正確(正數(shù))正確(正數(shù))01上溢上溢10下溢下溢11正確(負數(shù))正確(負數(shù))nV=Cf C0 ,其中其中Cf為符號位產(chǎn)生的進位為符號位產(chǎn)生的進位,C0為最高有為最高有效位產(chǎn)生的進位。效位產(chǎn)生的進位。n看高位的進位輸入與其進位輸出是否一致看高位的進位輸入與其進位輸出是否一致n從真值表可判斷當(dāng)兩個單符號位補碼

16、進行加減運算時,若最高數(shù)值從真值表可判斷當(dāng)兩個單符號位補碼進行加減運算時,若最高數(shù)值位向符號位的進位值位向符號位的進位值C0與符號位產(chǎn)生的進位輸出值與符號位產(chǎn)生的進位輸出值Cf相同時,則沒相同時,則沒有溢出發(fā)生。如果兩個進位值不同,則有溢出發(fā)生。有溢出發(fā)生。如果兩個進位值不同,則有溢出發(fā)生。n溢出表達式:溢出表達式: V Cf C0。 xf yf C0 S Cf V 說 明 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 0 1 0 0 0 1 0 1 1 1 0 1 0 0 0 0 1 0 兩正數(shù)加,結(jié)果為正,沒有溢出

17、兩正數(shù)加,結(jié)果為負,有溢出 兩異號數(shù)加,沒有溢出 兩異號數(shù)加,沒有溢出 兩異號數(shù)加,沒有溢出 兩異號數(shù)加,沒有溢出 兩負數(shù)加,結(jié)果為正,有溢出 兩負數(shù)加,結(jié)果為負,沒有溢出 設(shè)設(shè)xfxf和和yfyf表示兩個相加數(shù)的符號,表示兩個相加數(shù)的符號,C0C0表示高位的進位信號,表示高位的進位信號,CfCf表示符號位的進位信號,表示符號位的進位信號,S S表示結(jié)果的符號,表示結(jié)果的符號,V V為溢出信號為溢出信號n 例,例,X=+0.1011,Y=+0.1101 X補補 0.1011 + Y補補 0.1101 1.1000若最高數(shù)值位向符號位的進位為若最高數(shù)值位向符號位的進位為1,符號位產(chǎn)生的進位為,符

18、號位產(chǎn)生的進位為0,表示有溢出。,表示有溢出。n又如,又如,X=-0.1011,Y=-0.1100 X補補 1.0101 + Y補補 1.0100 0.1001若最高數(shù)值位向符號位的進位為若最高數(shù)值位向符號位的進位為0,符號位產(chǎn)生的進位為,符號位產(chǎn)生的進位為1,表示有溢出。,表示有溢出。溢出判斷溢出判斷3、變形補碼檢測法、變形補碼檢測法(雙符號位雙符號位)n方法:每個操作數(shù)在運算時都采用兩個符號位,正數(shù)用方法:每個操作數(shù)在運算時都采用兩個符號位,正數(shù)用00表示,負數(shù)用表示,負數(shù)用11表示,兩個符號位與碼值一起參加運算;表示,兩個符號位與碼值一起參加運算;若運算結(jié)果的兩個符號位的代碼不一致時表示

19、溢出,兩個若運算結(jié)果的兩個符號位的代碼不一致時表示溢出,兩個符號位代碼一致時,沒有溢出。符號位代碼一致時,沒有溢出。n設(shè)左邊第一位為第一符號位設(shè)左邊第一位為第一符號位Sf1,相鄰的為第二符號位相鄰的為第二符號位Sf2,則則 溢出邏輯表達式:溢出邏輯表達式: VSf1 Sf2 若若V0無溢出;無溢出;V1有溢出。有溢出。溢出判斷溢出判斷主要內(nèi)容n定點補碼加減法定點補碼加減法n溢出檢測溢出檢測n基本加法器基本加法器基本的加法器基本的加法器n基本的加法和減法器基本的加法和減法器n半加器半加器HiAi Bi不考慮進位不考慮進位n全加器全加器考慮低位進位考慮低位進位Ci-1和向高位的進位和向高位的進位C

20、i 一位全加器真值表一位全加器真值表輸入輸出AiBiCiSiCi10000000110010100110110010101011100111111基本的加法器基本的加法器iiiiCBASiiiiiiiiiiiiiiiiiCBABACBABACBCABAC).( .)(1基本的加法器基本的加法器FA邏輯電路和框圖邏輯電路和框圖FA(全加器)邏輯電路圖iiiiCBASiiiiiiiiiiiiiiiiiCBABACBABACBCABAC).( .)(1FA框圖圖行波進位的補碼加法/加法器基本的加法器基本的加法器 n位行波進位加法器位行波進位加法器基本的加法器基本的加法器 n位行波進位加法器位行波進位

21、加法器B0B0A0A0MB1B1A1A1B Bn-2n-2A An-2n-2B Bn-1n-1A An-1n-1溢出溢出S S0 0S S1 1S Sn-2n-2S Sn-1n-1一個“與”門或者一個“或”門的時間延遲為一個T,異或門為3T0 0時刻時刻3T3T時刻時刻4T4T時刻時刻6T6T時刻時刻6T6T2T2T時刻時刻9T9T時刻時刻6T6T4T4T時刻時刻6T6T2nT2nT時刻時刻6T6T2(n-1)T2(n-1)T時刻時刻11T11T時刻時刻6T6T2(n-1)T+3T2(n-1)T+3T時刻時刻6T6T2nT+3T2nT+3T時刻時刻C C0 0C C2 2C Cn-1n-1C

22、C1 1C Cn n并行加法器iiiiiiCBABAC)(10001CPGC由知令iiiiiiBAPBAG,0010111112CPPGPGCPGC.1111nnnnnGCPGC.&A1 B1=1A0 B0=1A1 B1C0&A0 B0&C2基本的加法器基本的加法器實現(xiàn)加法的邏輯圖實現(xiàn)加法的邏輯圖 實現(xiàn)加法時應(yīng)提供以下控制信號:AALU,BALU,+,ALUA 實現(xiàn)減法時應(yīng)提供以下控制信號:AALU,B*ALU,ALU+1,+,ALUA小結(jié)n定點補碼加減法運算方法,理解減法運算用加法來實現(xiàn)定點補碼加減法運算方法,理解減法運算用加法來實現(xiàn)n三種溢出檢測方法及溢出判斷的邏輯

23、表達式三種溢出檢測方法及溢出判斷的邏輯表達式n基本加法器:半加器,全加器中和及進位的表達式、理解基本加法器:半加器,全加器中和及進位的表達式、理解電路實現(xiàn)電路實現(xiàn)作業(yè)55-1.兩個定點補碼數(shù)分別放在寄存器兩個定點補碼數(shù)分別放在寄存器A,B中,中,A0,B0是符是符號位,試列出兩數(shù)加減運算的溢出判斷條件并畫出邏輯電號位,試列出兩數(shù)加減運算的溢出判斷條件并畫出邏輯電路。路。5-2.用補碼運算求用補碼運算求x-y,并判斷是否溢出。并判斷是否溢出。x=-0.0100, y=0.1001x=-0.1011, y=-0.10105-3.已知已知x補補=1.1001,y補補=1.1110,計算,計算2x補補

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論