版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、 第二章第二章 運(yùn)算方法和運(yùn)算器運(yùn)算方法和運(yùn)算器2 2.2 定點(diǎn)加法、減法運(yùn)算定點(diǎn)加法、減法運(yùn)算一、補(bǔ)碼的加減法運(yùn)算一、補(bǔ)碼的加減法運(yùn)算 1、加法、加法 任意兩個(gè)數(shù)的補(bǔ)碼之和,等于該兩任意兩個(gè)數(shù)的補(bǔ)碼之和,等于該兩數(shù)和的補(bǔ)碼。數(shù)和的補(bǔ)碼。 X+YX+Y補(bǔ)補(bǔ)= X= X補(bǔ)補(bǔ)+Y+Y補(bǔ)補(bǔ) (mod 2) (mod 2) 兩個(gè)數(shù)不管正負(fù),均用補(bǔ)碼表示,兩個(gè)數(shù)不管正負(fù),均用補(bǔ)碼表示,符號位應(yīng)當(dāng)做數(shù)值參加運(yùn)算符號位應(yīng)當(dāng)做數(shù)值參加運(yùn)算,符號位相,符號位相加所產(chǎn)生的進(jìn)位要丟掉,結(jié)果為補(bǔ)碼。加所產(chǎn)生的進(jìn)位要丟掉,結(jié)果為補(bǔ)碼??梢宰C明:可以證明:X+YX+Y補(bǔ)補(bǔ)= X= X補(bǔ)補(bǔ)+Y+Y補(bǔ)補(bǔ)X-YX-Y補(bǔ)補(bǔ)= X
2、= X補(bǔ)補(bǔ)+-Y+-Y補(bǔ)補(bǔ) -Y-Y補(bǔ)補(bǔ)的求法:將的求法:將YY補(bǔ)補(bǔ)連同符號位求反加連同符號位求反加1 1。例例: X1001 Y0101,求,求 X+Y? 解解: X補(bǔ)補(bǔ)=01001 Y補(bǔ)補(bǔ)=00101 X+Y補(bǔ)補(bǔ)=X補(bǔ)補(bǔ)+Y補(bǔ)補(bǔ)=01001+00101 =01110例例: X1001 Y-0101,求,求 X+Y? 解解: X補(bǔ)補(bǔ)=01001 Y補(bǔ)補(bǔ)=11011 X+Y補(bǔ)補(bǔ)=X補(bǔ)補(bǔ)+Y補(bǔ)補(bǔ)=01001+11011 =定點(diǎn)運(yùn)算器定點(diǎn)運(yùn)算器 定點(diǎn)加減法定點(diǎn)加減法 例例: X0.1011 Y-0.0101,求,求 X+Y? 解解:X補(bǔ)=0. 1 0 1 1Y補(bǔ)=1. 1 0 1 1+011010
3、.丟到1 X補(bǔ)+Y補(bǔ)=0.0110X+Y=定點(diǎn)運(yùn)算器定點(diǎn)運(yùn)算器 定點(diǎn)加減法定點(diǎn)加減法 例例: X-11001 ,Y-00011,求,求 X+Y? 解解:X補(bǔ)=1 0 0 1 1 1Y補(bǔ)=1 1 1 1 0 1+00101 1丟到1 X補(bǔ)+Y補(bǔ)=100100X+Y=-111000由以上兩例看到由以上兩例看到,補(bǔ)補(bǔ)碼加法的特點(diǎn)碼加法的特點(diǎn):一是符號位要作為一是符號位要作為數(shù)的一部分一起參數(shù)的一部分一起參加運(yùn)算。加運(yùn)算。二是要在模二是要在模2的意的意義下相加,即超過義下相加,即超過2的進(jìn)位要丟掉的進(jìn)位要丟掉!定點(diǎn)運(yùn)算器定點(diǎn)運(yùn)算器定點(diǎn)加減法定點(diǎn)加減法 補(bǔ)碼的減法:補(bǔ)碼的減法: XX補(bǔ)補(bǔ)- Y- Y補(bǔ)補(bǔ)
4、=X+=X+(-Y-Y) 補(bǔ)補(bǔ)=X=X補(bǔ)補(bǔ)+-Y+-Y補(bǔ)補(bǔ) (-Y-Y)的補(bǔ)碼稱為)的補(bǔ)碼稱為YY補(bǔ)補(bǔ)的機(jī)器負(fù)數(shù),由的機(jī)器負(fù)數(shù),由YY補(bǔ)補(bǔ)求求-Y-Y補(bǔ)補(bǔ)的過程稱為將的過程稱為將YY補(bǔ)補(bǔ)“變補(bǔ)變補(bǔ)”或?qū)驅(qū)Y補(bǔ)補(bǔ)求求補(bǔ),補(bǔ),由由YY補(bǔ)補(bǔ)求求-Y-Y補(bǔ)補(bǔ)的方法是,不管的方法是,不管Y Y的真值為的真值為正或?yàn)樨?fù),都是將正或?yàn)樨?fù),都是將YY補(bǔ)補(bǔ)的各位連同符號位在內(nèi)的各位連同符號位在內(nèi)全變反后,最低位加全變反后,最低位加1 1。定點(diǎn)運(yùn)算器定點(diǎn)運(yùn)算器 定點(diǎn)加減法定點(diǎn)加減法 例例: X-0.1011 Y-0.0110,求,求 XY? 解解:X補(bǔ)補(bǔ)=1. 0 1 0 1-Y補(bǔ)補(bǔ)=0. 0 1 1 0+1
5、101 1.XY補(bǔ)補(bǔ)1.1011XY=-二、溢出及其判別方法:二、溢出及其判別方法: 在計(jì)算機(jī)中,由于機(jī)器碼的尾數(shù)通在計(jì)算機(jī)中,由于機(jī)器碼的尾數(shù)通常是給定的(如常是給定的(如1616位字長,位字長,3232位字長),位字長),因此,在計(jì)算機(jī)中數(shù)的表示范圍是有限因此,在計(jì)算機(jī)中數(shù)的表示范圍是有限的,若兩數(shù)進(jìn)行加減運(yùn)算的結(jié)果超出了的,若兩數(shù)進(jìn)行加減運(yùn)算的結(jié)果超出了給定的取值范圍,就稱為給定的取值范圍,就稱為溢出溢出。一旦出。一旦出現(xiàn)溢出,必須及時(shí)處理,否則會(huì)出現(xiàn)錯(cuò)現(xiàn)溢出,必須及時(shí)處理,否則會(huì)出現(xiàn)錯(cuò)誤。誤。1、溢出、溢出例1:X=1010 Y=1001 求 X+Y解: X補(bǔ)= 0 1 0 1 0+
6、Y補(bǔ)= 0 1 0 0 1 1 0 0 1 1例2:X=-1010 Y=-1011 求 X+Y解: X補(bǔ)= 1 0 1 1 0+ Y補(bǔ)= 1 0 1 0 1 0 1 0 1 1較大正數(shù)相加產(chǎn)生進(jìn)位,影響符號位較大的負(fù)數(shù)對應(yīng)較小的正數(shù)補(bǔ)碼相加無進(jìn)位,符號位自己相加2、溢出原因:、溢出原因: 1)兩個(gè)正數(shù)太大:)兩個(gè)正數(shù)太大:產(chǎn)生進(jìn)位而改變了符號位; 2)兩個(gè)負(fù)數(shù)絕對值太大:)兩個(gè)負(fù)數(shù)絕對值太大:對應(yīng)的補(bǔ)碼太小,不 能向符號位產(chǎn)生進(jìn)位,使符號位相加后,向前產(chǎn)生進(jìn)位。1、兩異號數(shù)相加或兩同號數(shù)相減是否兩異號數(shù)相加或兩同號數(shù)相減是否 會(huì)產(chǎn)生溢出?會(huì)產(chǎn)生溢出?2、僅當(dāng)兩同號數(shù)相加或兩異號數(shù)相減、僅當(dāng)兩同
7、號數(shù)相加或兩異號數(shù)相減 時(shí)才有可能產(chǎn)生溢出?時(shí)才有可能產(chǎn)生溢出?問題:問題:決不會(huì)產(chǎn)生溢出決不會(huì)產(chǎn)生溢出正確正確 例例: X-0.100 Y-0.101,求,求 X+Y? 解解:X補(bǔ)=1. 1 0 0Y補(bǔ)=1. 0 1 1+11110.丟到1 兩負(fù)數(shù)相加,結(jié)果應(yīng)為負(fù)數(shù),但運(yùn)算結(jié)兩負(fù)數(shù)相加,結(jié)果應(yīng)為負(fù)數(shù),但運(yùn)算結(jié)果為正數(shù),表明有溢出發(fā)生果為正數(shù),表明有溢出發(fā)生。數(shù)據(jù)向前數(shù)據(jù)向前無進(jìn)位,符號位向前有進(jìn)位無進(jìn)位,符號位向前有進(jìn)位3、溢出的判斷、溢出的判斷 1)采用)采用單符號位單符號位的判斷方法的判斷方法 例例: X100 ,Y-11,求,求 X-Y? 解:X補(bǔ)=0 1 0 0 -Y補(bǔ)=0 1 1
8、0+01 1一個(gè)正數(shù)減去一個(gè)負(fù)數(shù),結(jié)果為正數(shù),但計(jì)算一個(gè)正數(shù)減去一個(gè)負(fù)數(shù),結(jié)果為正數(shù),但計(jì)算結(jié)果為負(fù)數(shù),表明有溢出發(fā)生,出錯(cuò)結(jié)果為負(fù)數(shù),表明有溢出發(fā)生,出錯(cuò)數(shù)據(jù)向前有進(jìn)位,符號位向前無進(jìn)位數(shù)據(jù)向前有進(jìn)位,符號位向前無進(jìn)位0溢出邏輯表達(dá)式為溢出邏輯表達(dá)式為:V=Cf C0 (其中(其中Cf為符號位產(chǎn)生的進(jìn)位,為符號位產(chǎn)生的進(jìn)位, C0為最高有效位產(chǎn)生的進(jìn)位)為最高有效位產(chǎn)生的進(jìn)位) 溢出的原因:溢出的原因: 之所以發(fā)生錯(cuò)誤之所以發(fā)生錯(cuò)誤, ,是因?yàn)檫\(yùn)算結(jié)果產(chǎn)生了是因?yàn)檫\(yùn)算結(jié)果產(chǎn)生了溢出。兩個(gè)正數(shù)相加溢出。兩個(gè)正數(shù)相加, ,結(jié)果大于機(jī)器所能表示結(jié)果大于機(jī)器所能表示的最大正數(shù)的最大正數(shù), ,稱為稱為
9、上溢上溢。而兩個(gè)負(fù)數(shù)相加。而兩個(gè)負(fù)數(shù)相加, ,結(jié)果結(jié)果小于機(jī)器所能表示的最小負(fù)數(shù)小于機(jī)器所能表示的最小負(fù)數(shù), ,稱為稱為下溢下溢。 為了判斷為了判斷“溢出溢出”是否發(fā)生是否發(fā)生, ,可采用兩種可采用兩種檢測的方法。第一種方法是采用雙符號位法檢測的方法。第一種方法是采用雙符號位法, ,這稱為這稱為“變形補(bǔ)碼變形補(bǔ)碼”或或“模模4 4補(bǔ)碼補(bǔ)碼”。從而可。從而可使模使模2 2補(bǔ)碼所能表示的數(shù)的范圍擴(kuò)大一倍。補(bǔ)碼所能表示的數(shù)的范圍擴(kuò)大一倍。定點(diǎn)運(yùn)算器定點(diǎn)運(yùn)算器 定點(diǎn)加減法定點(diǎn)加減法2)采用雙符號位的判斷方法)采用雙符號位的判斷方法 每個(gè)操作數(shù)的補(bǔ)碼符號用兩個(gè)二進(jìn)制數(shù)表示,每個(gè)操作數(shù)的補(bǔ)碼符號用兩個(gè)二進(jìn)
10、制數(shù)表示,稱為交形補(bǔ)碼,用稱為交形補(bǔ)碼,用“00”00”表示正數(shù),表示正數(shù),“11”11”表示負(fù)表示負(fù)數(shù),左邊第一位叫第一符號位,右邊第一位稱為第數(shù),左邊第一位叫第一符號位,右邊第一位稱為第二符號位,兩個(gè)符號位同時(shí)參加運(yùn)算,如果運(yùn)算結(jié)二符號位,兩個(gè)符號位同時(shí)參加運(yùn)算,如果運(yùn)算結(jié)果兩符號位相同,則沒有溢出發(fā)生。如果運(yùn)算結(jié)果果兩符號位相同,則沒有溢出發(fā)生。如果運(yùn)算結(jié)果兩符號位不同,則表明產(chǎn)生了溢出。兩符號位不同,則表明產(chǎn)生了溢出。“1010”表示負(fù)表示負(fù)溢出(下溢出),說明運(yùn)算結(jié)果為負(fù)數(shù),溢出(下溢出),說明運(yùn)算結(jié)果為負(fù)數(shù),“0101”表表示正溢出(下溢出),說明運(yùn)算結(jié)果為正數(shù)。示正溢出(下溢出)
11、,說明運(yùn)算結(jié)果為正數(shù)。 定點(diǎn)運(yùn)算器定點(diǎn)運(yùn)算器 定點(diǎn)加減法定點(diǎn)加減法采用雙符號位的判斷方法采用雙符號位的判斷方法 高符號位高符號位低符號位低符號位 結(jié)果結(jié)果00正正01上溢上溢10下溢下溢11負(fù)負(fù)定點(diǎn)運(yùn)算器定點(diǎn)運(yùn)算器 定點(diǎn)加減法定點(diǎn)加減法3)利用進(jìn)位值的判斷方法)利用進(jìn)位值的判斷方法 兩補(bǔ)碼數(shù)進(jìn)行加減運(yùn)算時(shí),若最高數(shù)兩補(bǔ)碼數(shù)進(jìn)行加減運(yùn)算時(shí),若最高數(shù)值位產(chǎn)生向符號的進(jìn)位而符號位不產(chǎn)生進(jìn)值位產(chǎn)生向符號的進(jìn)位而符號位不產(chǎn)生進(jìn)位時(shí),發(fā)生正溢出,若最高數(shù)值位無進(jìn)位位時(shí),發(fā)生正溢出,若最高數(shù)值位無進(jìn)位而符號位有進(jìn)位時(shí),發(fā)生負(fù)溢出而符號位有進(jìn)位時(shí),發(fā)生負(fù)溢出 。 例: X+0.1100 Y+0.1000,求
12、X+Y? 解:X補(bǔ)=00. 1100Y補(bǔ)=00. 1000+01.0100正數(shù)太大了,向前有進(jìn)位,而符號位向前無正數(shù)太大了,向前有進(jìn)位,而符號位向前無進(jìn)位;兩個(gè)符號位:進(jìn)位;兩個(gè)符號位:0101,表示溢出,表示溢出n例: X-0.1100 Y-0.1000,求 X+Y? 解:X補(bǔ)=11. 0100Y補(bǔ)=11. 1000+10.1100 負(fù)數(shù)絕對值太大了對應(yīng)的補(bǔ)碼小,向前無進(jìn)位,而符號負(fù)數(shù)絕對值太大了對應(yīng)的補(bǔ)碼小,向前無進(jìn)位,而符號位向前有進(jìn)位;位向前有進(jìn)位; 兩個(gè)符號位:兩個(gè)符號位:1010,表示溢出,表示溢出溢出邏輯表達(dá)式為溢出邏輯表達(dá)式為:V=Sf1 Sf2 (其中(其中Sf1為最高符號位
13、,為最高符號位,Sf2為第二符號位)為第二符號位) 由此可以得出如下結(jié)論:由此可以得出如下結(jié)論: 1. 1. 當(dāng)以模當(dāng)以模4 4補(bǔ)碼運(yùn)算補(bǔ)碼運(yùn)算, ,運(yùn)算結(jié)果的二符號位相異時(shí)運(yùn)算結(jié)果的二符號位相異時(shí), ,表示溢出;相同時(shí)表示溢出;相同時(shí), ,表示未溢出。表示未溢出。 2. 2. 模模4 4補(bǔ)碼相加的結(jié)果補(bǔ)碼相加的結(jié)果, ,不論溢出與否不論溢出與否, ,最高符號位最高符號位始終指示正確的符號。始終指示正確的符號。三、基本的加法三、基本的加法/減法器減法器1、一位半加器、一位半加器兩個(gè)輸出端的邏輯表達(dá)式:兩個(gè)輸出端的邏輯表達(dá)式:SiAi Bi Ci1AiB三、基本的加法三、基本的加法/減法器減法器
14、2、一位全加器、一位全加器FAAiBiCiCi+1Si向高位進(jìn)位本位輸出結(jié)果輸入輸出AiBiCiSiCi+10000000110010100110110010101011100111111表表2.2 一位全加器真值表一位全加器真值表兩個(gè)輸出端的邏輯表達(dá)式:兩個(gè)輸出端的邏輯表達(dá)式:SiAi Bi CiCi1AiBiBiCiCiASiAi Bi CiCi1AiBiBiCiCiAi按此表達(dá)式組成的一位全加按此表達(dá)式組成的一位全加器示圖:器示圖:Ci+1=(Ai Bi)Ci AiBn個(gè)1位的全加器(FA)可級聯(lián)成一個(gè)n位的行波進(jìn)位加減器。M為方式控制輸入線,當(dāng)M0時(shí),作加法(AB)運(yùn)算;當(dāng)M1時(shí),作減
15、法(AB)運(yùn)算,在后一種情況下,AB運(yùn)算轉(zhuǎn)化成A補(bǔ)B補(bǔ)運(yùn)算,求補(bǔ)過程由B1來實(shí)現(xiàn)。單符號位判溢出單符號位判溢出 雙符號雙符號 正溢出正溢出 0.1001 00.1001 + 0.1100 00.1100 1.0101 10.0101 負(fù)溢出負(fù)溢出 1.0111 11.0111 + 1.0011 + 11.0011 10.1010 補(bǔ)碼加減法的邏輯實(shí)現(xiàn)補(bǔ)碼加減法的邏輯實(shí)現(xiàn)圖示:圖示:n個(gè)個(gè)1位全加器組成。位全加器組成。 單符號位判溢出。單符號位判溢出。V=c0 c1 雙符號位判溢出。雙符號位判溢出。V=Sf1 Sf2y0y1V=1cn=0 做加法c0=1 做減法(求反加1)定點(diǎn)運(yùn)算器定點(diǎn)運(yùn)算器定
16、點(diǎn)乘法定點(diǎn)乘法定點(diǎn)原碼一位乘法定點(diǎn)原碼一位乘法設(shè)被乘數(shù)設(shè)被乘數(shù)XX原原=X=Xf fX Xn-1n-1X Xn-2n-2X X1 1X X0 0 乘乘 數(shù)數(shù)YY原原=Y=Yf fY Yn-1n-1Y Yn-2n-2Y Y1 1Y Y0 0 乘乘 積積XX原原=Z=Zf fZ Z2n-12n-1Z Z2n-22n-2Z Z1 1Z Z0 0 運(yùn)算原則:同號相乘為正,異號相乘運(yùn)算原則:同號相乘為正,異號相乘為負(fù),符號可按:異或運(yùn)算得到,數(shù)值部為負(fù),符號可按:異或運(yùn)算得到,數(shù)值部分的運(yùn)算方法與普通的十進(jìn)制乘數(shù)相類似分的運(yùn)算方法與普通的十進(jìn)制乘數(shù)相類似 。定點(diǎn)運(yùn)算器定點(diǎn)運(yùn)算器定點(diǎn)乘法定點(diǎn)乘法 手工算法
17、手工算法0. 1 1 0 10. 1 0 1 1 1 1 0 1 1 1 0 1 0 0 0 0 1 1 0 1+ 1 0 0 0 1 1 1 1 0.l 兩個(gè)n位數(shù)相乘,其積為2n位,則需要2n位長的加法器,這不適用于定點(diǎn)機(jī)的形式。l 機(jī)器一次只能進(jìn)行兩個(gè)數(shù)的相加,不能進(jìn)行多個(gè)數(shù)據(jù)的加法。l 手工計(jì)算中,乘數(shù)的每一位是0還是1都可直接看見,而在計(jì)算機(jī)中,采用放乘數(shù)的寄存器的每一位直接決定本次相加數(shù)是被乘數(shù)還是0是很不方便的,若采用該寄存器的最低一位來執(zhí)行這種判斷就簡便了。定點(diǎn)運(yùn)算器定點(diǎn)運(yùn)算器定點(diǎn)乘法定點(diǎn)乘法運(yùn)算法則運(yùn)算法則: 計(jì)算機(jī)中執(zhí)行乘法時(shí),積的符號位由被乘數(shù)計(jì)算機(jī)中執(zhí)行乘法時(shí),積的符號
18、位由被乘數(shù)和乘數(shù)的符號位通過一個(gè)半加器實(shí)現(xiàn)。和乘數(shù)的符號位通過一個(gè)半加器實(shí)現(xiàn)。 數(shù)值部分的運(yùn)算規(guī)則是:從最低位數(shù)值部分的運(yùn)算規(guī)則是:從最低位Y Y0 0開始,開始,當(dāng)乘數(shù)當(dāng)乘數(shù)Y Yi i為為1 1時(shí),將上次部分積加上被乘數(shù)的絕時(shí),將上次部分積加上被乘數(shù)的絕對值,然后右移一位,得到新的部分積;對值,然后右移一位,得到新的部分積;當(dāng)當(dāng)Y Yi i為為0 0時(shí),則寫下全時(shí),則寫下全0 0。然后再對乘數(shù)。然后再對乘數(shù)Y Y的高一位進(jìn)行的高一位進(jìn)行類似乘法運(yùn)算。重復(fù)類似乘法運(yùn)算。重復(fù)“加加右移右移”操作操作N N次,可次,可得到最后的乘積。得到最后的乘積。 定點(diǎn)運(yùn)算器定點(diǎn)運(yùn)算器定點(diǎn)乘法定點(diǎn)乘法 例例:
19、X=0.1101,Y=0.1011, 求求X*Y=? 解:解: |X|=00.1101 |Y|=00.1011 部分積部分積 乘數(shù)乘數(shù) 說明說明0 0. 0 0 0 00 0. 1 1 0 1+Yf 1 0 1 10 0. 1 1 0 10 0. 0 1 1 0 0 0. 1 1 0 1+0 1. 0 0 1 10 0. 1 0 0 10 0. 0 0 0 0+0 0. 1 0 0 10 0. 0 1 0 00 0. 1 1 0 10 1. 0 0 0 10 0. 1 0 0 0+1 Yf 1 0 11 1 Yf 1 01 1 1 Yf 11 1 1 1 YfZ0=0Y0=1, +XY2=1,
20、 +XY1=0, +0Y0=1, +X右移,得Z1右移,得Z2右移,得Z3右移,得Z4=X*Y定點(diǎn)運(yùn)算器定點(diǎn)運(yùn)算器定點(diǎn)乘法定點(diǎn)乘法 結(jié)果: 計(jì)算:X=-0.1101 Y=0.0110,用原碼陣列乘法器求X*Y?X*Y=0.10001111X*Y=1. 2.5.1 邏輯運(yùn)算邏輯運(yùn)算 計(jì)算機(jī)中除了進(jìn)行加、減、乘、除等計(jì)算機(jī)中除了進(jìn)行加、減、乘、除等基本算術(shù)運(yùn)算外基本算術(shù)運(yùn)算外, ,還可對兩個(gè)或一個(gè)邏輯數(shù)還可對兩個(gè)或一個(gè)邏輯數(shù)進(jìn)行邏輯運(yùn)算。進(jìn)行邏輯運(yùn)算。 所謂邏輯數(shù)所謂邏輯數(shù), ,是指不帶符號的二進(jìn)制數(shù)。利用是指不帶符號的二進(jìn)制數(shù)。利用邏輯運(yùn)算可以進(jìn)行兩個(gè)數(shù)的比較邏輯運(yùn)算可以進(jìn)行兩個(gè)數(shù)的比較, ,或
21、者從某個(gè)或者從某個(gè)數(shù)中選取某幾位等操作。數(shù)中選取某幾位等操作。 計(jì)算機(jī)中的邏輯運(yùn)算計(jì)算機(jī)中的邏輯運(yùn)算, ,主要是指主要是指邏輯非邏輯非、邏輯邏輯加加、邏輯乘邏輯乘、邏輯異邏輯異四種基本運(yùn)算。四種基本運(yùn)算。 1.邏輯非運(yùn)算邏輯非運(yùn)算邏輯非也稱邏輯非也稱求反求反。如: 1 101001011,01001011,2 211110000,11110000,求求1 1, ,2 2。110110100200001111 2.邏輯加運(yùn)算按位求它們的邏輯加運(yùn)算按位求它們的“或或” 10100001,10100001,10011011, 10011011, 求求。1 0 1 0 0 0 0 1 1 0 0 1
22、1 0 1 1 1 0 1 1 1 0 1 1 3.邏輯乘運(yùn)算按位求它們的邏輯乘運(yùn)算按位求它們的“與與” 10111001,10111001,11110011,11110011,求求。 1 0 1 1 1 0 0 1 1 1 1 1 0 0 1 1 1 0 1 1 0 0 0 1 4.邏輯異運(yùn)算邏輯異運(yùn)算按位求它們的模2和10101011,11001100,求。 解解: 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 0 0 1 1 0 0 1 1 1 即 定點(diǎn)運(yùn)算器的組成定點(diǎn)運(yùn)算器的組成 運(yùn)算器主要由算術(shù)邏輯部件,通用寄存器和狀態(tài)寄存運(yùn)算器主要由算術(shù)邏輯部件,通用寄存器和狀態(tài)寄存
23、器組成。器組成。 算術(shù)邏輯部件算術(shù)邏輯部件ALUALU(Arithmetic and Logic UnitArithmetic and Logic Unit): :主要完成對二進(jìn)制信息的定點(diǎn)運(yùn)算,如:加、減、乘、除、主要完成對二進(jìn)制信息的定點(diǎn)運(yùn)算,如:加、減、乘、除、與、或、非、異或、邏輯移位、算術(shù)移位等。與、或、非、異或、邏輯移位、算術(shù)移位等。 通用寄存器通用寄存器: :主要用來保存參加運(yùn)算的操作數(shù)和運(yùn)算主要用來保存參加運(yùn)算的操作數(shù)和運(yùn)算的結(jié)果。的結(jié)果。 狀態(tài)寄存器狀態(tài)寄存器: :用來記錄算術(shù)、邏輯運(yùn)算或測試操作的用來記錄算術(shù)、邏輯運(yùn)算或測試操作的狀態(tài)結(jié)果。一般有零標(biāo)志位,負(fù)標(biāo)志位,溢出標(biāo)志
24、位、進(jìn)狀態(tài)結(jié)果。一般有零標(biāo)志位,負(fù)標(biāo)志位,溢出標(biāo)志位、進(jìn)位或借位標(biāo)志位等。位或借位標(biāo)志位等。定點(diǎn)運(yùn)算器的組成定點(diǎn)運(yùn)算器的組成多功能算術(shù)多功能算術(shù)/邏輯運(yùn)算單元邏輯運(yùn)算單元基本思想基本思想 一位全加器(一位全加器(FAFA)的邏輯表達(dá)式為:)的邏輯表達(dá)式為: F Fi i=A=Ai i B Bi i C Ci i C Ci+1i+1=A=Ai iB Bi i+B+Bi iC Ci i+C+Ci iA Ai i 為了將全加器的功能進(jìn)行擴(kuò)展以完成多種算術(shù)邏輯為了將全加器的功能進(jìn)行擴(kuò)展以完成多種算術(shù)邏輯運(yùn)算,先不將輸入運(yùn)算,先不將輸入A Ai i和和B Bi i和下一位的進(jìn)位和下一位的進(jìn)位C Ci i
25、直接進(jìn)行全加,直接進(jìn)行全加,而是將而是將A Ai i和和B Bi i先組合由先組合由S S0 0,S S1 1,S S2 2,S S3 3控制的組合函數(shù)控制的組合函數(shù)X Xi i和和Y Yi i,然后再將,然后再將X Xi i,Y Yi i和下一位進(jìn)位數(shù)通過全加器進(jìn)行全和下一位進(jìn)位數(shù)通過全加器進(jìn)行全加,這樣,不同的控制參數(shù)可以得到不同的組合函數(shù),加,這樣,不同的控制參數(shù)可以得到不同的組合函數(shù),以能夠?qū)崿F(xiàn)多種算術(shù)運(yùn)算和邏輯運(yùn)算。以能夠?qū)崿F(xiàn)多種算術(shù)運(yùn)算和邏輯運(yùn)算。定點(diǎn)運(yùn)算器的組成定點(diǎn)運(yùn)算器的組成多功能算術(shù)多功能算術(shù)/邏輯運(yùn)算單元邏輯運(yùn)算單元S1全加器函數(shù)發(fā)生器FiC n+i+1C n+iXiYiA
26、i BiS0S2S3S0 S1 Yi S2 S3 Xi 0 0 Ai 0 0 1 0 1 AiBi 0 1 Ai+Bi 1 0 AiBi 1 0 Ai+Bi 1 1 0 1 1 AiXi 、Yi與控制參數(shù)和輸入量的關(guān)系定點(diǎn)運(yùn)算器的組成定點(diǎn)運(yùn)算器的組成多功能算術(shù)多功能算術(shù)/邏輯運(yùn)算單元邏輯運(yùn)算單元ALUALU的某一位邏輯表達(dá)式如下:的某一位邏輯表達(dá)式如下: X Xi i=S=S3 3A Ai iB Bi i+S+S2 2A Ai iB Bi iY Yi i=A=Ai i+S+S0 0B Bi i+S+S1 1B Bi iF Fi i=Y=Yi i+X+Xi i+C+Cn+in+iC Cn+i+1
27、n+i+1=Y=Yi i+X+Xi iC Cn+in+定點(diǎn)運(yùn)算器的組成定點(diǎn)運(yùn)算器的組成多功能算術(shù)多功能算術(shù)/邏輯運(yùn)算單元邏輯運(yùn)算單元 每一位的進(jìn)位公式可遞推如下:每一位的進(jìn)位公式可遞推如下:C n+1=Y0+X0CnC n+2=Y1+X1Cn+1= Y1+ Y0X1+X0X1CnC n+3=Y2+X2Cn+2 =Y2 +X2 Y1+ Y0X1 X2 +X0X1 X2 CnC n+4=Y3+X3Cn+3 =Y3+X3 Y2 +X2 X3 Y1+ Y0X1 X2 X3 +X0X1 X2 X3 C定點(diǎn)運(yùn)算器的組成定點(diǎn)運(yùn)算器的組成多功能算術(shù)多功能算術(shù)/邏輯運(yùn)算單元邏輯運(yùn)算單元設(shè)設(shè): 該式表明,第0位的
28、進(jìn)位輸入可以直接傳送到最高進(jìn)位位上去,因而可以實(shí)現(xiàn)高速運(yùn)算。G= Y3+X3 Y2 +X2 X3 Y1+ Y0X1 X2 X3 P= X0X1 X2 X3則: C n+4=G+PCn其中:G稱為進(jìn)位發(fā)生輸出 P稱為進(jìn)位傳送輸出 用負(fù)邏輯表示的用負(fù)邏輯表示的4 4位算術(shù)位算術(shù)/ /邏輯運(yùn)算單元邏輯運(yùn)算單元(ALU)(ALU)的邏輯電路圖的邏輯電路圖如下如下, ,它是根據(jù)上面的原始推導(dǎo)公式用它是根據(jù)上面的原始推導(dǎo)公式用TTLTTL電路實(shí)現(xiàn)的。這個(gè)電路實(shí)現(xiàn)的。這個(gè)期間的商業(yè)標(biāo)號為期間的商業(yè)標(biāo)號為74181ALU74181ALU。兩級先行進(jìn)位 并行進(jìn)位并行進(jìn)位 16位二級并行進(jìn)位位二級并行進(jìn)位ALU7
29、418174181741817418174182C0C4C8C12C1674181 - 4片74182 - 1片32位ALU64位位3級先行進(jìn)位級先行進(jìn)位ALU74181-16片片 74182-5片片C0181181741827418274182C定點(diǎn)運(yùn)算器的定點(diǎn)運(yùn)算器的基本結(jié)構(gòu)基本結(jié)構(gòu) 運(yùn)算器包括運(yùn)算器包括ALU、陣列乘除器、寄存器、陣列乘除器、寄存器、多路開關(guān)、三態(tài)緩沖器、數(shù)據(jù)總線等邏輯多路開關(guān)、三態(tài)緩沖器、數(shù)據(jù)總線等邏輯部件。部件。 計(jì)算機(jī)的運(yùn)算器的結(jié)構(gòu)一般有三種。計(jì)算機(jī)的運(yùn)算器的結(jié)構(gòu)一般有三種。定點(diǎn)運(yùn)算器的基本結(jié)構(gòu)定點(diǎn)運(yùn)算器的基本結(jié)構(gòu)ABALU通 用寄存器特 殊寄存器單總線結(jié)構(gòu)的運(yùn)算器
30、單總線結(jié)構(gòu)的運(yùn)算器 輸入數(shù)據(jù)和操作結(jié)構(gòu)需要三次串行的選通操作,但它并不會(huì)對每種指令都增加很多執(zhí)行時(shí)間。由于只控制一條總線,所以控制電路比較簡單。通 用寄存器特 殊寄存器特 殊寄存器ALU緩沖器總線1總線2 兩個(gè)操作數(shù)同時(shí)加兩個(gè)操作數(shù)同時(shí)加到到ALUALU進(jìn)行運(yùn)算,只需要進(jìn)行運(yùn)算,只需要一次操作控制,而且馬一次操作控制,而且馬上得到運(yùn)算結(jié)果。上得到運(yùn)算結(jié)果。 ALUALU的輸出不能直接加到總線上去,的輸出不能直接加到總線上去,這是因?yàn)?,?dāng)形成操作結(jié)構(gòu)的輸出時(shí),這是因?yàn)椋?dāng)形成操作結(jié)構(gòu)的輸出時(shí),兩條總線都被輸入數(shù)據(jù)占據(jù),因而必兩條總線都被輸入數(shù)據(jù)占據(jù),因而必須在須在ALUALU的輸出端設(shè)置緩沖器。
31、的輸出端設(shè)置緩沖器。雙總線結(jié)構(gòu)的運(yùn)算器雙總線結(jié)構(gòu)的運(yùn)算器定點(diǎn)運(yùn)算器的基本結(jié)構(gòu)定點(diǎn)運(yùn)算器的基本結(jié)構(gòu)定點(diǎn)運(yùn)算器的基本結(jié)構(gòu)定點(diǎn)運(yùn)算器的基本結(jié)構(gòu)通 用寄存器ALU特 殊寄存器總 線旁路器總線1總線2總線3 ALU的兩個(gè)輸入端分別由總線提供,而ALU的輸出則與第三條總線相連。這樣,算術(shù)邏輯操作就可以在一步的控制之內(nèi)完成。 設(shè)置一個(gè)總線旁路器,如果一個(gè)操作數(shù)不需要修改,而直接從總線2傳送到總線3,那么可以通過控制總線旁路器把數(shù)據(jù)傳出。2.6 浮點(diǎn)數(shù)的表示浮點(diǎn)數(shù)的表示浮點(diǎn)運(yùn)算器浮點(diǎn)運(yùn)算器浮點(diǎn)運(yùn)算方法浮點(diǎn)運(yùn)算方法浮點(diǎn)數(shù)的加法、減法運(yùn)算浮點(diǎn)數(shù)的加法、減法運(yùn)算 設(shè)有兩個(gè)浮點(diǎn)數(shù)的分別為X=Mx*2Ex,Y=My*2
32、Ey,實(shí)現(xiàn)浮點(diǎn)加減法算的基本步驟分為四步完成: 0 0操作數(shù)檢查操作數(shù)檢查:用來判斷兩個(gè)操作數(shù)中是否有一個(gè)為0. 對階操作對階操作:即比較兩個(gè)浮點(diǎn)數(shù)的階碼值的大小,求E=Ex-Ey,然后將小階對大階。 尾數(shù)進(jìn)行加或減運(yùn)算尾數(shù)進(jìn)行加或減運(yùn)算:實(shí)現(xiàn)尾數(shù)的加減運(yùn)算,執(zhí)行兩個(gè)完成對階后的浮點(diǎn)數(shù)的求和(差)的過程 規(guī)格化并進(jìn)行舍入處理規(guī)格化并進(jìn)行舍入處理:若得到的結(jié)果不滿足規(guī)格化規(guī)則,就必須把它變成規(guī)格化的數(shù)。舍入操作,在執(zhí)行對階或右規(guī)操作時(shí),會(huì)使位數(shù)低位上的一位或若干位的數(shù)值被移掉,使數(shù)值精度受到影響,可以把移掉的幾個(gè)高位的值保存起來供舍入使用。浮點(diǎn)運(yùn)算器浮點(diǎn)運(yùn)算器浮點(diǎn)運(yùn)算方法浮點(diǎn)運(yùn)算方法取指定位數(shù)舍
33、入處理階碼減1尾數(shù)左移1位尾數(shù)加法(帶符號)小階加1尾數(shù)右移1位加法減法Y變符號X=0?Y=0?zyzxz另一數(shù)z0報(bào)告上溢報(bào)告下溢階碼相同?尾數(shù)=0?尾數(shù)=0?階碼加1尾數(shù)右移1位階碼上溢階碼下溢尾數(shù)上溢已是1.M0操作檢查對階操作尾數(shù)加減結(jié)果規(guī)格化結(jié)束是是是是是是是是否否否否否否否否浮點(diǎn)運(yùn)算器浮點(diǎn)運(yùn)算器浮點(diǎn)運(yùn)算方法浮點(diǎn)運(yùn)算方法 例:例:設(shè)設(shè)X=2X=2010010* *0.110110110.11011011,Y=2Y=2100100* *(-0. -0. 1010110010101100),求),求X+YX+Y。( (假設(shè)兩數(shù)均以補(bǔ)碼表假設(shè)兩數(shù)均以補(bǔ)碼表示示, ,階碼采用雙符號位階碼采用
34、雙符號位, ,尾數(shù)采用單符號位尾數(shù)采用單符號位.).)浮點(diǎn)運(yùn)算器浮點(diǎn)運(yùn)算器浮點(diǎn)運(yùn)算方法浮點(diǎn)運(yùn)算方法解:浮點(diǎn)表示為: X浮= 00 010,0. 11011011 Y浮= 00 100,1. 01010100()對階 E=Ex-Ey=00010+11100=11110即E為-2,X的階碼小,應(yīng)使Mx右移兩位, Ex加2,得: X浮=00100, 0.00110110(11)浮點(diǎn)運(yùn)算器浮點(diǎn)運(yùn)算器浮點(diǎn)運(yùn)算方法浮點(diǎn)運(yùn)算方法+(2).尾數(shù)求和 ()()浮點(diǎn)運(yùn)算器浮點(diǎn)運(yùn)算器浮點(diǎn)運(yùn)算方法浮點(diǎn)運(yùn)算方法 (3).3).規(guī)格化和舍入處理規(guī)格化和舍入處理 結(jié)果的符號位與最高符號數(shù)值位相同,應(yīng)執(zhí)行左規(guī)處理,所謂左規(guī)格
35、化的規(guī)則,就是尾數(shù)左移1位,階碼減1,所以結(jié)果為1.00010101(10) ,階碼為00 011 舍入處理,采用0舍1入法處理,則有 1. 0 0 0 1 0 1 0 1 1 1. 0 0 0 1 0 1 1 浮點(diǎn)運(yùn)算器浮點(diǎn)運(yùn)算器浮點(diǎn)運(yùn)算方法浮點(diǎn)運(yùn)算方法(4).判溢出判溢出 階碼的符號位為階碼的符號位為0000,不溢出。所以最終的結(jié)果為,不溢出。所以最終的結(jié)果為 X+Y=2X+Y=2011011* *(-0.11101010-0.11101010)浮點(diǎn)運(yùn)算器浮點(diǎn)運(yùn)算器浮點(diǎn)運(yùn)算方法浮點(diǎn)運(yùn)算方法 例:例:設(shè)設(shè)X=2X=2001001* *(-0.111-0.111),),Y=2Y=2010010* *0. 1010. 101,求求X-Y.(X-Y.(假設(shè)兩數(shù)均
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 平臺(tái)服務(wù)抽合同范例
- 工程居間付款合同模板
- 工業(yè)廠房干貨合同范例
- 婚慶店轉(zhuǎn)讓合同范例
- 加盟餐飲商務(wù)合同范例
- 工傷死亡合同范例
- 徐州企業(yè)職工勞動(dòng)合同范例
- 個(gè)人攤位轉(zhuǎn)讓合同模板
- 學(xué)生與學(xué)校保安合同范例
- 床墊代加工合同模板
- 抖音火花合同電子版獲取教程
- 蠟?zāi)嗑牡呐R床應(yīng)用課件
- DB11-T 2192-2023 防汛隱患排查治理規(guī)范 市政基礎(chǔ)設(shè)施
- 幼兒教師課題研究方法
- 2024年-新生兒復(fù)蘇參考課件
- 血透進(jìn)修匯報(bào)
- 2024年度《只入股不參與經(jīng)營合同樣本范本書》
- “世界級”創(chuàng)新型企業(yè)成長路徑及驅(qū)動(dòng)因素分析以、三星、為例
- 立體停車庫技術(shù)規(guī)范
- 江城子·密州出獵省公開課金獎(jiǎng)全國賽課一等獎(jiǎng)微課獲獎(jiǎng)
- 手術(shù)室實(shí)習(xí)出科
評論
0/150
提交評論