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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

思考設X=-0.1010Y=0.0101求(X+Y)補和(X-Y)補設機器數字長為8位(含1位符號位)且A=–97,B=+41,用補碼求A

B思考定點整數、小數有原碼、補碼表示形式,手工在紙上怎么加減?舉例分析(兩正數相加、兩負數相加、正負兩個數相加)。(符號位直接參與運算!)[x]原+[y]原=?[x+y]原;[x]原

+[-y]原=?[x-y]原[x]補+[y]補=?[x+y]補;[x]補+[-y]補=?[x-y]補計算機中表示數據的寄存寄或存儲單元長度固定,如果運行結果超過這個長度會產生什么結果?什么情況下會發生超出表示范圍的現象?這個結果能否被利用?試從計算機的角度來判斷運算結果什么時候出錯了?定點數加減運算課程結構計算機系統統計硬件運算器數據表示數據數據定點原碼反碼補碼移碼浮點一般表示規格化IEEE754非數值數據字符漢字BCD碼校驗碼奇偶校驗海明校驗循環冗余校驗運算方法定點數補碼加減乘除浮點數加減乘除規格化溢出判斷運算器一般運算快速運算典型ALU存儲器控制器總線輸入輸出軟硬件接口軟件主要內容定點補碼加減法溢出檢測基本加法器解:[A]補[B]補[A]補

+[B]補+=0.1011=1.1011=10.0110=[A+B]補驗證例設A=0.1011,B=–

0.0101求[A+B]補0.1011–0.01010.0110∴A+B

=0.0110[A]補[B]補[A]補

+[B]補+=1,0111=1,1011=11,0010=[A+B]補驗證–1001–1110–0101+例設A=–9,B=–5求[A+B]補解:∴A+B

=–1110①

補碼加法的運算公式為:[x+y]補=[x]補+[y]補②

補碼減法的運算公式為:[x-y]補=

[x]補+[-y]補

③加減法運算規則:·參加運算的數都用補碼表示。·數據的符號與數據一樣參加運算。·求差時將減數求補,用求和代替求差。·運算結果為補碼。如果符號位為0,表明運算結果為正;如果符號位為1,則表明運算結果為負。·符號位的進位為模值,應該丟掉。定點補碼加減法①補碼加法的運算公式為:[x+y]補=[x]補+[y]補證明:下面以模為2定義的補碼為例,分幾種情況來證明這個公式。

(1)

x>0,y>0,則x+y>0

由于參加運算的數都為正數,故運算結果也一定為正數。又由于正數的補碼與真值有相同的表示形式,即[x]補=x[y]補=y

所以[x]補+[y]補=x+y=[x+y]補

(2)x>0,y<0,則x+y>0或x+y<0

當參加運算的數一個為正數,一個為負數時,則運算結果有正、負兩種可能。根據補碼定義有:

[x]補=x[y]補=2+y所以[x]補+[y]補=2+(x+y)當x+y>0時,2+(x+y)>2,2為符號位進位,即模丟掉。又因為(x+y)>0,所以

[x]補+[y]補=x+y=[x+y]補當x+y<0時,2+(x+y)<2,又因為(x+y)<0,所以

[x]補+[y]補=2+x+y=[x+y]補這里應將(x+y)看成一個整體。定點補碼加減法

(3)

x<0,

y>0,

則x+y>0或x+y<0

這種情況和第②種情況類似,即把x與y的位置對調即可得證。(4)

x<0,

y<0,

則x+y<0

由于參加運算的數都為負數,故運算結果也一定為負數。又由于負數的補碼為:

[x]

補=

2+x[y]

補=

2+

y

所以

[x]補+[y]

補=

2+(2+x+y)

由于x+y為負數,其絕對值又小于1,那么(2+

x

y)就一定是小于2而大于1的數,所以上式等號右邊的2必然丟掉,又因為x+y<0,所以

[x]補+[y]補=

(2+x+y)=

2+(x+y)=[x+y]

至此證明了在模為2的定義下,任意兩個數的補碼之和等于該兩個數之和的補碼。這是補碼加法的理論基礎,其結論也適用于定點整數。

定點補碼加減法②

補碼減法的運算公式為:

[x]補-[y]補=

[x]補+[-y]

證明:因為[x]補+[y]補=[x+y]補令x=-y代入,則有[-y]補+[y]補=[-y+y]補=[0]補

=0

所以-[y]補=[-y]補所以:[x]補-[y]補=[x]補+(-[y]補)=[x]補+[-y]

定點補碼加減法

不難發現,只要能通過[y]

補求得[-y]

補,就可以將補碼減法運算化為補碼加法運算。

已知[y]

補,求[-y]

補的法規是:對[y]

補各位(包括符號位)取反、末位加1,就可以得到[-y]

補。

例如:已知[y]

補=1.1010,則[-y]

補=0.0110;又如:已知[y]

補=0.1110,則[-y]

補=1.0010;

定點補碼加減法證明:[-x]

補與[x]

補的關系。證明:①當0≤x<1時,設

[x]

補=0.x1x2…

xn

-x=-0.x1x2…

xn所以

[-x]

補=1.x1*x2*…

xn*

+2-n比較[x]

補和[-x]

補,發現將[x]

補連同符號位求反,末位加1,即得[-x]

補。

②當-1≤x<0時,設

[x]

補=1.x1x2…

xn則

x

=-(0.x1*x2*…

xn*+2-n

)所以

-x=0.1.x1*x2*…

xn*+2-n故

[x]

補=0.…+2-n比較[x]

補和[-x]

補,發現將[x]

補連同符號位求反,末位加1,即得[-x]

補。(1)設X=-0.1010Y=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.0001X+Y=-0.0101X-Y=-0.1111

加減法運算示例(2)

設X=-0.1011Y=-0.0101求(X+Y)補和(X-Y)補解:(X)補

=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.1010X+Y=-1X-Y=-0.0110

加減法運算示例例練習1設x=y=,用補碼求x+y9161116x+y=–0.1100=1216–練習2設機器數字長為8位(含1位符號位)且A=–97,B=+41,用補碼求A

BA

–B=+1110110=+118錯錯主要內容定點補碼加減法溢出檢測基本加法器溢出判斷

由于機器碼的位數通常是給定的(如16位字長,32位字長),因此,數的表示范圍是有限的,若兩數進行加減運算的結果超出給定的取值范圍,就會產生溢出。溢出是指運算結果超過了數的表示范圍。兩個符號相同的數相加,才可能產生溢出;兩個符號相異的數相加,不可能產生溢出。例,X=+0.1011,Y=+0.1001,X+Y=?[X]補0.1011+[Y]補0.10011.0100此時,兩個正數相加的結果成為負數,顯然是錯誤的。溢出判斷又如,X=-0.1101,Y=-0.1011,X+Y=?[X]補1.0011+[Y]補1.01010.1000兩個負數相加的結果成為正數,這同樣是錯誤的。為判斷溢出是否產生,可以采用三種檢測方法。溢出判斷1、單符號位操作檢測方法:當運算結果的符號位與操作數的符號位不一致時,表示溢出;當加數和被加數符號位不同時,相加的結果絕對不會溢出。例,X=+0.1001,Y=+0.1110,是否溢出?

[X]補0.1001+[Y]補0.11101.0111

運算結果產生溢出。XfYfSfV00111101其它0溢出判斷2、進位檢測法Cf C0

0 0 正確(正數)

0 1 上溢

1 0 下溢

1 1 正確(負數)V=Cf

⊕C0,其中Cf為符號位產生的進位,C0為最高有效位產生的進位。看高位的進位輸入與其進位輸出是否一致從真值表可判斷當兩個單符號位補碼進行加減運算時,若最高數值位向符號位的進位值C0與符號位產生的進位輸出值Cf相同時,則沒有溢出發生。如果兩個進位值不同,則有溢出發生。溢出表達式:V=Cf⊕C0。設xf和yf表示兩個相加數的符號,C0表示高位的進位信號,Cf表示符號位的進位信號,S表示結果的符號,V為溢出信號

例,X=+0.1011,Y=+0.1101[X]補0.1011+[Y]補0.11011.1000若最高數值位向符號位的進位為1,符號位產生的進位為0,表示有溢出。又如,X=-0.1011,Y=-0.1100[X]補1.0101+[Y]補1.01000.1001若最高數值位向符號位的進位為0,符號位產生的進位為1,表示有溢出。溢出判斷3、變形補碼檢測法(雙符號位)方法:每個操作數在運算時都采用兩個符號位,正數用00表示,負數用11表示,兩個符號位與碼值一起參加運算;若運算結果的兩個符號位的代碼不一致時表示溢出,兩個符號位代碼一致時,沒有溢出。設左邊第一位為第一符號位Sf1,相鄰的為第二符號位Sf2,則溢出邏輯表達式:

V=Sf1⊕Sf2

若V=0無溢出;V=1有溢出。

溢出判斷主要內容定點補碼加減法溢出檢測基本加法器基本的加法器基本的加法和減法器半加器

Hi=Ai⊕Bi

不考慮進位全加器

考慮低位進位Ci-1和向高位的進位Ci

一位全加器真值表輸入輸出AiBiCiSiCi+10000000110010100110110010101011100111111基本的加法器基本的加法器-FA邏輯電路和框圖FA(全加器)邏輯電路圖FA框圖圖行波進位的補碼加法/加法器基本的加法器-n位行波進位加法器基本的加法器-n位行波進位加法器B0A0MB1A1Bn-2An-2Bn-1An-1溢出S0S1Sn-2Sn-1一個“與”門或者一個“或”門的時間延遲為一個T,異或門為3T0時刻3T時刻4T時刻6T時刻6T+2T時刻9T時刻6T+4T時刻6T+2nT時刻6T+2(n-1)T時刻11T時刻6T+2(n-1)T+3T時刻6T+2nT+3T時刻C0C2Cn-1C1Cn并行加法器由知令&A1B1=1A0B0=1A1B1C0&&A0B0&&C2基本的加法器-實現加法的邏輯圖①實現加法時應提供以下控制信號:A→ALU,B→ALU,+,ALU→A②實現減法時應提供以下控制信號:A→ALU,B*→ALU,ALU+1,+,ALU→A小結定點補碼加減法運算方法,理解減法運算用加法來實現三種溢出檢測方法及溢出判斷的邏

溫馨提示

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

最新文檔

評論

0/150

提交評論