第4講 二進(jìn)制乘法_第1頁
第4講 二進(jìn)制乘法_第2頁
第4講 二進(jìn)制乘法_第3頁
第4講 二進(jìn)制乘法_第4頁
第4講 二進(jìn)制乘法_第5頁
已閱讀5頁,還剩20頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、計算機(jī)組成原理第第4講講二進(jìn)制乘法運(yùn)算二進(jìn)制乘法運(yùn)算要求要求: 掌握原碼一位乘法掌握原碼一位乘法 理解補(bǔ)碼一位乘法理解補(bǔ)碼一位乘法 0 移位操作移位操作 1 定點數(shù)一位乘法定點數(shù)一位乘法0 移位操作移位操作邏輯移位:邏輯移位: 邏輯左移時,高位移出,低位添邏輯左移時,高位移出,低位添0;邏輯右移時,低位移出,高位添邏輯右移時,低位移出,高位添0。1. 移位類型移位類型算術(shù)移位算術(shù)移位 1 0 0 0 1 1 1 1左移:左移:0 :數(shù)碼位置變化,數(shù)值:數(shù)碼位置變化,數(shù)值變化變化,符號位不變。符號位不變。1 0 0 1 1 1 1 算術(shù)左移:算術(shù)左移:1 0 0 1 1 1 1 00 1 1 1

2、 1 0 (-15)(-30)無符號數(shù)的移位無符號數(shù)的移位有符號數(shù)的移位有符號數(shù)的移位(1)單符號位)單符號位 : 0 01110 1110 (2)雙符號位)雙符號位:00 1110 00 01112.正數(shù)正數(shù)原碼原碼移位規(guī)則移位規(guī)則(3 3)移位規(guī)則)移位規(guī)則左移左移右移右移右移右移0 0111 0 0011 左移左移左移左移右移右移右移右移01 1100 00 1110 00 0111 數(shù)符不變數(shù)符不變(單:符號位不變;雙:第一符號(單:符號位不變;雙:第一符號位不變)位不變)空位補(bǔ)空位補(bǔ)0(右移時第二符號位移至尾數(shù)最高位)(右移時第二符號位移至尾數(shù)最高位)(1)單符號位)單符號位 : 1

3、 01011 1010 (2)雙符號位)雙符號位:10 1100 11 01103.負(fù)數(shù)負(fù)數(shù)原碼原碼移位規(guī)則移位規(guī)則(3 3)移位規(guī)則)移位規(guī)則左移左移右移右移右移右移1 0101 1 0010 左移左移右移右移右移右移11 0110 11 0011 數(shù)符不變數(shù)符不變(單:符號位不變;雙:第一符號(單:符號位不變;雙:第一符號位不變)。位不變)。空位補(bǔ)空位補(bǔ)0(1)單符號位)單符號位 : 0 01110 1110 (2)雙符號位)雙符號位:00 1110 00 01114.正數(shù)正數(shù)補(bǔ)碼補(bǔ)碼移位規(guī)則移位規(guī)則(3 3)移位規(guī)則)移位規(guī)則左移左移右移右移右移右移0 0111 0 0011 左移左移左

4、移左移右移右移右移右移01 1100 00 1110 00 0111 數(shù)符不變數(shù)符不變(單:符號位不變;雙:第一符號(單:符號位不變;雙:第一符號位不變)位不變)空位補(bǔ)空位補(bǔ)0(右移時第二符號位移至尾數(shù)最高位)(右移時第二符號位移至尾數(shù)最高位)(1)單符號位)單符號位 : 1 10111 0110 (2)雙符號位)雙符號位:10 1100 11 01105.負(fù)數(shù)負(fù)數(shù)補(bǔ)碼補(bǔ)碼移位規(guī)則移位規(guī)則(3 3)移位規(guī)則)移位規(guī)則左移左移右移右移右移右移1 1011 1 1101 左移左移右移右移右移右移11 0110 11 1011 數(shù)符不變數(shù)符不變(單:符號位不變;雙:第一符號(單:符號位不變;雙:第一

5、符號位不變)。位不變)。左移空位補(bǔ)左移空位補(bǔ)0(第二符號位移至尾數(shù)最高位)(第二符號位移至尾數(shù)最高位)右移空位補(bǔ)右移空位補(bǔ)1不同碼制機(jī)器數(shù)算術(shù)移位后的不同碼制機(jī)器數(shù)算術(shù)移位后的空位添補(bǔ)規(guī)則空位添補(bǔ)規(guī)則 碼碼 制制添補(bǔ)代碼添補(bǔ)代碼正數(shù)正數(shù)原碼、補(bǔ)碼、反碼原碼、補(bǔ)碼、反碼0 0 負(fù)數(shù)負(fù)數(shù)原碼原碼0 0補(bǔ)碼補(bǔ)碼左移添左移添0 0右移添右移添1 1反反 碼碼1 1不同碼制機(jī)器數(shù)算術(shù)移位對于對于正數(shù)正數(shù),三種機(jī)器數(shù)移位后,三種機(jī)器數(shù)移位后符號位不變符號位不變,如果左,如果左移時最高數(shù)位丟移時最高數(shù)位丟1 1,結(jié)果,結(jié)果“出錯出錯”;如果右移時最;如果右移時最低數(shù)位丟低數(shù)位丟1 1,影響精度。,影響精度。

6、 對于對于負(fù)數(shù)負(fù)數(shù),三種機(jī)器數(shù)移位后,三種機(jī)器數(shù)移位后符號位均不變符號位均不變。v如果負(fù)數(shù)的原碼左移時,高位丟如果負(fù)數(shù)的原碼左移時,高位丟1 1,結(jié)果出錯;,結(jié)果出錯;低位丟低位丟1 1,影響精度。,影響精度。v如果負(fù)數(shù)的補(bǔ)碼左移時,高位丟如果負(fù)數(shù)的補(bǔ)碼左移時,高位丟0 0,結(jié)果出錯;,結(jié)果出錯;低位丟低位丟1 1,影響精度。,影響精度。v如果負(fù)數(shù)的反碼左移時,高位丟如果負(fù)數(shù)的反碼左移時,高位丟0 0,結(jié)果出錯;,結(jié)果出錯;低位丟低位丟0 0,影響精度。,影響精度。舍入方法舍入方法1. 0 0舍舍1 1入(原碼、補(bǔ)碼)入(原碼、補(bǔ)碼)0 00100原原 1 00101原原 1 11011補(bǔ)補(bǔ)

7、2. 末位恒置末位恒置1 1(原碼、補(bǔ)碼)(原碼、補(bǔ)碼)0 00100原原 1 11011補(bǔ)補(bǔ) 1 00101原原 0 0010原原 1 0011原原 1 1110補(bǔ)補(bǔ) 0 0011原原 1 0011原原 1 1101補(bǔ)補(bǔ) 1 0011原原 1 1101補(bǔ)補(bǔ) 例例. 保留保留4位尾數(shù):位尾數(shù): 例例. 保留保留4位尾數(shù):位尾數(shù): 1 定點數(shù)乘法運(yùn)算定點數(shù)乘法運(yùn)算1 原碼一位乘法原碼一位乘法 每次用一位乘數(shù)去乘被乘數(shù)。每次用一位乘數(shù)去乘被乘數(shù)。 1.1.算法分析算法分析乘法乘法 部分積累加、移位。部分積累加、移位。例例. 0.11011.10111.1011乘積乘積 P = X P = X Y

8、Y積符積符 S SP P= S= SX X S SY YX原原Y原原(1 1)手算)手算 0.11010.1101 0.10110.1011 11011101 1101 1101 0000 0000 1101 1101 0.100011110.10001111上符號:上符號:1.100011111.10001111部分積部分積問題:問題:1 1)加數(shù)增多(由乘數(shù)位數(shù)決定)。)加數(shù)增多(由乘數(shù)位數(shù)決定)。 2 2)加數(shù)的位數(shù)增多(與被乘數(shù)、乘)加數(shù)的位數(shù)增多(與被乘數(shù)、乘 數(shù)位數(shù)有關(guān))。數(shù)位數(shù)有關(guān))。改進(jìn):將一次相加改為改進(jìn):將一次相加改為分步累加分步累加、移位移位。(2 2)分步乘法)分步乘法

9、每次將一位乘數(shù)所對應(yīng)的部分積與原部分每次將一位乘數(shù)所對應(yīng)的部分積與原部分積的累加和相加,并移位。積的累加和相加,并移位。設(shè)置寄存器:設(shè)置寄存器: A A:存放存放部分積累加和、乘積高位部分積累加和、乘積高位 B B:存放存放被乘數(shù)被乘數(shù) C C:存放存放乘數(shù)、乘積低位乘數(shù)、乘積低位 設(shè)置初值:設(shè)置初值: A = 00.0000A = 00.0000 B = X = 00.1101 B = X = 00.1101 C = Y = .1011 C = Y = .1011 步數(shù)步數(shù) 條件條件 操作操作 A C A C 00.0000 .10100.0000 .1011 1 1 1)C Cn n=1=

10、1+B+BC Cn n+ 00.1101+ 00.110100.00.11011101 0.11010.1101 0.1010.1011 1 1101 1101 1101 1101 0000 0000 1101 1101 0.100011110.10001111BC 1101 1101 00.00.011001101 1.10.101 1 0.11010.1101 0.100.101 11 12 2)C Cn n=1=1+B+B+ 00.1101+ 00.11010 01 1. .0011001100.00.100110011111.1.10 0 0.11010.1101 0.10.10 01

11、111 0.11010.1101 0.10110.1011 1101 1101 1101 1101 0000 0000 1101 1101 0.100011110.10001111BC3 3)C Cn n=0=0+0+0+ 00.0000+ 00.000000.00.1001100100.00.01000100111111. .1 14 4)C Cn n=1=1+B+B+ 00.1101+ 00.11010 01 1. .0001000100.00.1000100011111111XYXY原原=X=X原原Y Y原原 = 1.10001111= 1.10001111 2. .算法流程算法流程0

12、A0 A、X BX B、Y CY C、0 CR0 CRC Cn n = 1 = 1 ?CR = n CR = n ?1/21/2(A+BA+B) A A,C C1/21/2(A+0A+0) A A,C C CR + 1 CRCR + 1 CRYYNNSX + SY SPSX + SY SP 3.3.運(yùn)算規(guī)則運(yùn)算規(guī)則(1 1)操作數(shù)、結(jié)果用原碼表示;)操作數(shù)、結(jié)果用原碼表示;(2 2)絕對值運(yùn)算,符號單獨處理;)絕對值運(yùn)算,符號單獨處理;(3 3)被乘數(shù))被乘數(shù)(B)(B)、累加和累加和(A)(A)取雙符號位;取雙符號位;(4 4)乘數(shù)末位)乘數(shù)末位( (CnCn) )為判斷位,其狀態(tài)決定為判斷

13、位,其狀態(tài)決定 下步操作;下步操作;(5 5)作)作n n次循環(huán)(累加、右移)。次循環(huán)(累加、右移)。習(xí)題習(xí)題v在進(jìn)行原碼乘法時,乘積的符號位是由被乘在進(jìn)行原碼乘法時,乘積的符號位是由被乘數(shù)的符號位和乘數(shù)的符號位通過數(shù)的符號位和乘數(shù)的符號位通過_(8)_運(yùn)算運(yùn)算來獲得的。來獲得的。(8) A或或 B與與 C異或異或 D分別取反后再進(jìn)行或分別取反后再進(jìn)行或C2 補(bǔ)碼一位乘法補(bǔ)碼一位乘法 1.1.算法分析算法分析 X X補(bǔ)補(bǔ) = X= X0 0.X.X1 1X X2 2X Xn n(1 1)Y Y為正:為正:Y Y補(bǔ)補(bǔ) = 0.Y= 0.Y1 1Y Y2 2Y Yn n XYXY補(bǔ)補(bǔ) = X= X

14、補(bǔ)補(bǔ)0.Y0.Y1 1Y Y2 2Y Yn n (2 2)Y Y為負(fù):為負(fù):Y Y補(bǔ)補(bǔ) = 1.Y= 1.Y1 1Y Y2 2Y Yn n XYXY補(bǔ)補(bǔ) = X= X補(bǔ)補(bǔ)0.Y0.Y1 1Y Y2 2Y Yn n+-X+-X補(bǔ)補(bǔ)(3 3)Y Y符號任意:符號任意: XYXY補(bǔ)補(bǔ) = X= X補(bǔ)補(bǔ)0.Y0.Y1 1Y Y2 2Y Yn n+-X+-X補(bǔ)補(bǔ)Y Y0 0符號位符號位校正法校正法v當(dāng)乘數(shù)當(dāng)乘數(shù)y y為正時,可按類似原碼乘法的規(guī)則進(jìn)為正時,可按類似原碼乘法的規(guī)則進(jìn)行運(yùn)算。行運(yùn)算。v當(dāng)乘數(shù)為負(fù)時,把乘數(shù)的補(bǔ)碼當(dāng)乘數(shù)為負(fù)時,把乘數(shù)的補(bǔ)碼yy補(bǔ)補(bǔ)去掉符號位,去掉符號位,看成一個正數(shù)與看成一個正

15、數(shù)與xx補(bǔ)補(bǔ)相乘,然后加上相乘,然后加上-x-x補(bǔ)補(bǔ)進(jìn)進(jìn)行行校正校正。按補(bǔ)碼進(jìn)行運(yùn)算按補(bǔ)碼進(jìn)行運(yùn)算v按補(bǔ)碼規(guī)則移位:右移補(bǔ)按補(bǔ)碼規(guī)則移位:右移補(bǔ)1 1,第二符號位一起移,第二符號位一起移v“乘數(shù)的補(bǔ)碼乘數(shù)的補(bǔ)碼yy補(bǔ)補(bǔ)去掉符號位,當(dāng)成一個正數(shù)與去掉符號位,當(dāng)成一個正數(shù)與xx補(bǔ)補(bǔ)相相乘乘”y y仍然是補(bǔ)碼仍然是補(bǔ)碼符號位參與運(yùn)算,自動生成符號位參與運(yùn)算,自動生成與原碼的不同之處與原碼的不同之處考慮到運(yùn)算時可能出現(xiàn)絕對值大于考慮到運(yùn)算時可能出現(xiàn)絕對值大于1 1的情形(但此的情形(但此刻并不是溢出),故部分積和被乘數(shù)取雙符號位。刻并不是溢出),故部分積和被乘數(shù)取雙符號位。例已知:x補(bǔ)=1.0101,

16、y補(bǔ)=0.1101,求:xy補(bǔ)。解:因為乘數(shù)y0,不用校正。故乘積故乘積xy補(bǔ)補(bǔ)=1.01110001 部分積乘數(shù)說明 00.0000 + 11.01011101初值z0補(bǔ)=0Y4=1,+x補(bǔ) 11.0101 11.1010+ 00.000011101位,得z1補(bǔ),乘數(shù)同時1位Y3=0,加0補(bǔ) 11.1010 11.1101 + 11.010101111位,得z2補(bǔ), 乘數(shù)同時1位Y2=1,+x補(bǔ) 11.0010 11.1001 + 11.010100111位,得z3補(bǔ),乘數(shù)同時1位Y1=1,+x補(bǔ) 10.1110 11.011100011位,得z4補(bǔ)注意:符號位參加運(yùn)算!例已知:x補(bǔ)=1.0

17、101,y補(bǔ)=1.1101,求:xy補(bǔ)。解:因為乘數(shù)y0,需要校正。-X補(bǔ) =00.1011故乘積故乘積xy補(bǔ)補(bǔ)=0.00100001 部分積乘數(shù)說明 00.0000 + 11.01011101初值z0補(bǔ)=0Y4=1,+x補(bǔ) 11.0101 11.1010+ 00.000011101位,得z1補(bǔ),乘數(shù)同時1位Y3=0,加0補(bǔ) 11.1010 11.1101 + 11.010101111位,得z2補(bǔ), 乘數(shù)同時1位Y2=1,+x補(bǔ) 11.0010 11.1001 + 11.010100111位,得z3補(bǔ),乘數(shù)同時1位Y1=1,+x補(bǔ) 10.1110 11.0111 + 00.1011 00.00

18、1000011位,得z4補(bǔ)y0,+-X補(bǔ)注意:符號位參加運(yùn)算!(4 4)展開為部分積的累加和形式:展開為部分積的累加和形式:XYXY補(bǔ)補(bǔ) = X= X補(bǔ)補(bǔ)(0.Y(0.Y1 1Y Y2 2Y Yn n)+-X)+-X補(bǔ)補(bǔ)Y Y0 0 = X= X補(bǔ)補(bǔ)(0.Y(0.Y1 1Y Y2 2Y Yn n)-X)-X補(bǔ)補(bǔ)Y Y0 0 = X= X補(bǔ)補(bǔ)(-Y(-Y0 0+ +2 Y2 Y1 1+ +2 2 Y Y2 2+ + +2 2 Y Yn n) )-1 -2 -n-1 -2 -n = X= X補(bǔ)補(bǔ) -Y-Y0 0+(+(Y Y1 1-2 Y-2 Y1 1)+()+(2 2 Y Y2 2-2 Y-2

19、Y2 2)+)+-1 -1 -1-1 -2 -2-(n-1) -n-(n-1) -n +(+(2 Y2 Yn n-2 -2 Y Yn n) ) = X= X補(bǔ)補(bǔ) (Y(Y1 1-Y-Y0 0)+2 (Y)+2 (Y2 2-Y-Y1 1)+2 (Y)+2 (Y3 3-Y-Y2 2)+)+-1 -2-1 -2 +2 (0 -+2 (0 -Y Yn n) )-n-n +2 (+2 (0 0 - -Y Yn n) )-n-nY Yn+1n+1 = X= X補(bǔ)補(bǔ) ( (Y Y1 1-Y-Y0 0)+2 ()+2 (Y Y2 2-Y-Y1 1)+2 ()+2 (Y Y3 3-Y-Y2 2)+)+-1 -2

20、-1 -2 +2 (+2 (0 0 - -Y Yn n) )-n-nY Yn+1n+1比較法:用相鄰兩位乘數(shù)比較的結(jié)果決定比較法:用相鄰兩位乘數(shù)比較的結(jié)果決定 +X+X補(bǔ)補(bǔ)、-X-X補(bǔ)補(bǔ)或或+0+0。 2.2.比較法比較法算法算法Y Yn n( (高位高位) ) Y Yn+1n+1( (低位低位) ) 操作操作(A(A補(bǔ)補(bǔ)為部分積累加和為部分積累加和) ) 0 00 00 10 11 01 01 11 1 1/2A1/2A補(bǔ)補(bǔ) 1/2(A1/2(A補(bǔ)補(bǔ)+X+X補(bǔ)補(bǔ)) ) 1/2(A 1/2(A補(bǔ)補(bǔ)-X-X補(bǔ)補(bǔ)) ) 1/2A 1/2A補(bǔ)補(bǔ)( 0 )( 0 )( 1 )( 1 )(-1 )(-1

21、 )( 0 )( 0 )3.3.運(yùn)算實例運(yùn)算實例X=-0.1101,Y=-0.1011,X=-0.1101,Y=-0.1011,求求XYXY補(bǔ)補(bǔ)。初值:初值:A=00.0000,B=XA=00.0000,B=X補(bǔ)補(bǔ)=11.0011,=11.0011, -B=-X -B=-X補(bǔ)補(bǔ)=00=00.1101,C =Y.1101,C =Y補(bǔ)補(bǔ)=1=1.0101.0101步數(shù)步數(shù) 條件條件 操作操作 A C A C 00.0000 1.01000.0000 1.0101 1 1 1)1 01 0-B-BC Cn n+ 00.1101+ 00.110100.00.1101110100.00.011001101 11.011.0101012 2)0 10 1+B+B+ 11.0011+ 11.

溫馨提示

  • 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

提交評論