1 / 17

第六章 算術電路

第六章 算術電路. 二進位加減法. 二進位加法 (binary addition) 0+0=0 0+1=1 1+0=1 1+1=10 註標 (subscript) 1 2 +1 2 =10 2 7 8 +1 8 =10 8 9 10 +1 10 =10 10 F 16+ 1 16= 10 16 更大二進位數加法 11100 2 +11010 2 =110110 2 8 位元運算 Ex. 6-1 pp. 310 Ex. 6-2 pp. 311 Ex. 6-3 pp. 312

harva
Download Presentation

第六章 算術電路

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第六章算術電路

  2. 二進位加減法 • 二進位加法(binary addition) 0+0=0 0+1=1 1+0=1 1+1=10 • 註標(subscript) 12+12=102 78+18=108 910+110=1010 F16+116=1016 • 更大二進位數加法111002+110102=1101102 • 8位元運算Ex. 6-1 pp. 310 Ex. 6-2 pp. 311 Ex. 6-3 pp. 312 • 二進位減法(binary subtraction) 0-0=0 1-0=1 1-1=0 10-1=1Ex. 1101-1010=11Ex. 6-4 pp. 315

  3. 無符號二進位數字 • 無符號二進位數字(unsigned binary numbers)8位元 0000 0000 (00H) ~ 1111 1111 (FFH) 010 ~ 2551016位元 0000 0000 0000 0000 (0000H)~1111 1111 1111 1111 (FFFFH) 010 ~ 6553510

  4. 溢位 • 8位元無符號進行二進位加法運算,若結果大於255則會造成溢位(overflow),即有進位到第9行。大多數微處理機均有一邏輯電路稱為進位旗標(carry flag),偵測是否有溢位,以指示此8位元結果是錯誤的。 • Ex. 6-5 pp.316 • Ex. 6-6 pp.317 • Ex. 6-7 pp.318 • 8位元運算電路只可處理0~255間之數。若計算中有溢位時,程式師需以程式察看進位旗標後處理。

  5. 帶符號數字 • 帶符號數字(sign-magnitude numbers)以MSB表示符號,其餘位元表示大小。+7  0000 0111-16  1001 0000 • 帶符號數字範圍8位元  0000 0001 (+1) 1000 0001 (-1) 0111 1111 (+127) 1111 1111 (-127)16位元  0000 0000 0000 0001 (+1) 0111 1111 1111 1111 (+32767) 1000 0000 0000 0001 (-1) 1111 1111 1111 1111 (-32767) • 待符號數字最大優點是簡單,但所需處理電路較複雜。

  6. 2的補數表示法 • 2的補數表示法(2’s complement representation),可簡化執行運算所需邏輯電路。 • 1的補數(1’s complement)將二進位數字每一位元取補數。例: 1010  0101 1110 1100  0001 0011

  7. 2的補數表示法 • 2的補數 = 1的補數+1例: 1011  0101 1110 1100  0001 0100 • 正數與負數MSB=0 正數 MSB=1  負數若一數取2的補數即等於改變數字符號。Ex. 3  0011 -3  1101

  8. 2’s 與十進位數之轉換 • Ex. +23  0001 0111 -48  1101 0000 0111 0111  +119 1110 1000  -24 • 2的補數表示法,最大負數之大小比最大正數之大小還大1。Ex. 8位元表示法  +127 ~ -128 • Ex. 6-8 pp.326 • Ex. 6-9 pp.326

  9. 2的補數之算術運算 • 2的補數是處理正數及負數最常用之碼。 • 加法 • 兩數均為正: 83+16=99  0101 0011+0001 0000 = 0110 0011 • 正數與較它小的負數:125+(-68)=57  0111 1101+1011 1100= 1 0011 1001 • 正數與較它大之負數:37+(-115)=-78  0010 0101+1000 1101=1011 0010 • 兩數均為負數:(-43)+(-78)=-121  1101 0101+1011 0010=1 1000 0111 • 任何正數及負數使用2的補數法輸入到加法電路,均可產生正確結果。(但其結果需在-128~127內否則會溢位)

  10. 2的補數之算術運算 • 減法加上一個負數相當於減掉一個正數。所以進行減法時,可將減數取2的補數後加上被減數。 • 二數均為正數83-16=67  0101 0011+1111 0000= 1 0100 0011 • 正數及較它小的負數68-(-27)=95  0100 0100+0001 1011= 0101 1111 • 正數及較它大之負數14-(-108)=122  0000 1110+0110 1100= 0111 1010 • 兩數均為負數(-43)-(-78)=35  1101 0101+0100 1110=1 0010 0011

  11. 2的補數之算術運算 • 溢位(overflow)8位元算術運算,可能發生錯誤之處即是其和已超過-128~127的範圍。當這種情況發生時,則會發生溢位到符號位元,造成符號變化。 • 加法運算時,當兩數同符號才可能產生溢位。Ex. 100+50=150 0110 0100+0011 0010=1001 0110Ex. (-85)+(-97)=-182  1010 1011+1001 1111=1 0100 1010

  12. 溢位之處理 • 溢位是軟體問題而非硬體問題,程式師必須於程式設計中考慮。 • 程式需先進行符號檢查,若兩符號相同,則其相加結果應和此二進位數之符號相同。若符號不同時,則指令應指示電腦使用16位元算術運算。 • Ex. 6-10 pp.335

  13. 半加器 • 算術電路基本電路方塊:半加器、全加器、控制反向器。 • 半加器(half adder)單一位元相加

  14. 全加器 CARRY OUT CARRY IN • 全加器(full-adder)對於更多位元的相加,需採用全加器,方能進行3個位元相加。第三位元來自前一行的進位。

  15. 控制反向器 • 控制反向器(controlled inverter)當INVERT為低準位時,可將8位元輸入傳至輸出。當INVERT為高準位時,可將8位元輸入反向後傳至輸出。 • 經由控制反向器,可取得1’s的補數。

  16. 加法-減法器 • 加法-減法器(the adder-subtracter)可用來處理二進位的加減法。所有全加器的進位輸出乃是較其高1位元全加器之進位輸入。 • SUB=L  加法運算SUB=H  減法運算

  17. 加法-減法器 • 加法 SUB=0 Ex. 0111 1101+1011 1101=1 0011 1010  125+(-67)=58 • 減法 SUB=1Ex. 0101 0010-0001 0001=1 0100 0001  85-17=65

More Related