第3章(二)計(jì)算機(jī)組成原理_第1頁
第3章(二)計(jì)算機(jī)組成原理_第2頁
第3章(二)計(jì)算機(jī)組成原理_第3頁
第3章(二)計(jì)算機(jī)組成原理_第4頁
第3章(二)計(jì)算機(jī)組成原理_第5頁
已閱讀5頁,還剩180頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、3.3 定點(diǎn)數(shù)的運(yùn)算定點(diǎn)數(shù)的運(yùn)算3.3.1 移位運(yùn)算移位運(yùn)算3.3.2 補(bǔ)碼加減運(yùn)算與溢出補(bǔ)碼加減運(yùn)算與溢出3.3.3 乘法運(yùn)算乘法運(yùn)算3.3.4 除法運(yùn)算除法運(yùn)算3.3.1 移位運(yùn)算移位運(yùn)算 移位運(yùn)算在計(jì)算機(jī)中有著非常重要移位運(yùn)算在計(jì)算機(jī)中有著非常重要的意義。例如在計(jì)算機(jī)中沒有乘、的意義。例如在計(jì)算機(jī)中沒有乘、除法運(yùn)算的實(shí)現(xiàn)時(shí),可以用移位與除法運(yùn)算的實(shí)現(xiàn)時(shí),可以用移位與加、減法運(yùn)算相結(jié)合的辦法進(jìn)行處加、減法運(yùn)算相結(jié)合的辦法進(jìn)行處理。理。 對(duì)定點(diǎn)表示的數(shù)據(jù),計(jì)算機(jī)中小數(shù)點(diǎn)的位對(duì)定點(diǎn)表示的數(shù)據(jù),計(jì)算機(jī)中小數(shù)點(diǎn)的位置是事先約定的,因此,二進(jìn)制表示的機(jī)置是事先約定的,因此,二進(jìn)制表示的機(jī)器數(shù)在相對(duì)于

2、小數(shù)點(diǎn)作器數(shù)在相對(duì)于小數(shù)點(diǎn)作n位左移或右移時(shí),位左移或右移時(shí),其實(shí)質(zhì)就是對(duì)該數(shù)乘以或除以其實(shí)質(zhì)就是對(duì)該數(shù)乘以或除以2n。由于計(jì)。由于計(jì)算機(jī)中機(jī)器數(shù)的字長(zhǎng)往往是固定的,當(dāng)機(jī)算機(jī)中機(jī)器數(shù)的字長(zhǎng)往往是固定的,當(dāng)機(jī)器數(shù)左移或右移時(shí),必然會(huì)使數(shù)據(jù)的低位器數(shù)左移或右移時(shí),必然會(huì)使數(shù)據(jù)的低位或高位出現(xiàn)空位,對(duì)空位是進(jìn)行補(bǔ)或高位出現(xiàn)空位,對(duì)空位是進(jìn)行補(bǔ)0還是補(bǔ)還是補(bǔ)1與機(jī)器數(shù)表示的是有符號(hào)數(shù)還是無符號(hào)數(shù)與機(jī)器數(shù)表示的是有符號(hào)數(shù)還是無符號(hào)數(shù)有關(guān),對(duì)于有符號(hào)數(shù)的移位叫算術(shù)移位。有關(guān),對(duì)于有符號(hào)數(shù)的移位叫算術(shù)移位。 對(duì)于正數(shù),由于對(duì)于正數(shù),由于X原原=X補(bǔ)補(bǔ)=X反反=真值,真值,故移位后出現(xiàn)的空位均以故移位后出現(xiàn)的

3、空位均以0進(jìn)行補(bǔ)充。對(duì)于進(jìn)行補(bǔ)充。對(duì)于負(fù)數(shù),由于原碼、補(bǔ)碼和反碼的表示形式負(fù)數(shù),由于原碼、補(bǔ)碼和反碼的表示形式不同,故當(dāng)機(jī)器數(shù)移位時(shí),對(duì)其空位的填不同,故當(dāng)機(jī)器數(shù)移位時(shí),對(duì)其空位的填充規(guī)則也不同。表充規(guī)則也不同。表3-12列出了三種不同碼列出了三種不同碼制的機(jī)器數(shù)移位后的添補(bǔ)規(guī)則。必須注意制的機(jī)器數(shù)移位后的添補(bǔ)規(guī)則。必須注意的是:不論是正數(shù)還是負(fù)數(shù),移位后其符的是:不論是正數(shù)還是負(fù)數(shù),移位后其符號(hào)位均不變,這是算術(shù)移位的重要特點(diǎn)。號(hào)位均不變,這是算術(shù)移位的重要特點(diǎn)。表表3-12 不同編碼機(jī)器數(shù)移位后的添補(bǔ)規(guī)則不同編碼機(jī)器數(shù)移位后的添補(bǔ)規(guī)則碼制碼制添補(bǔ)代碼添補(bǔ)代碼正數(shù)正數(shù)原碼、補(bǔ)碼、反碼原碼、補(bǔ)

4、碼、反碼0負(fù)負(fù)數(shù)數(shù)原碼原碼0補(bǔ)補(bǔ)碼碼左移添左移添0右移添右移添1反碼反碼1 由上表可得出如下結(jié)論:由上表可得出如下結(jié)論:(1)機(jī)器數(shù)為正時(shí),不論左移或右移,添)機(jī)器數(shù)為正時(shí),不論左移或右移,添補(bǔ)代碼都為補(bǔ)代碼都為0。(2)由于負(fù)數(shù)的原碼其數(shù)值部分與真值相)由于負(fù)數(shù)的原碼其數(shù)值部分與真值相同,故在移位時(shí)不論左移或右移,只要使同,故在移位時(shí)不論左移或右移,只要使符號(hào)位不變,其空位均補(bǔ)符號(hào)位不變,其空位均補(bǔ)0。(3)由于負(fù)數(shù)的反碼其數(shù)值位表示與真值)由于負(fù)數(shù)的反碼其數(shù)值位表示與真值正好相反,故移位后添補(bǔ)的均為正好相反,故移位后添補(bǔ)的均為1(此時(shí)(此時(shí)仍需保持符號(hào)位不變),即相當(dāng)于對(duì)真值仍需保持符號(hào)位

5、不變),即相當(dāng)于對(duì)真值補(bǔ)補(bǔ)0。(4)分析任意負(fù)數(shù)的補(bǔ)碼可發(fā)現(xiàn)當(dāng)對(duì)其由低)分析任意負(fù)數(shù)的補(bǔ)碼可發(fā)現(xiàn)當(dāng)對(duì)其由低位向高位找到第一個(gè)位向高位找到第一個(gè)“1”時(shí),在此時(shí),在此“1”左左邊的各位均與對(duì)應(yīng)的反碼相同,而在此邊的各位均與對(duì)應(yīng)的反碼相同,而在此“1”右邊的各位均與對(duì)應(yīng)的原碼相同。故負(fù)數(shù)右邊的各位均與對(duì)應(yīng)的原碼相同。故負(fù)數(shù)的補(bǔ)碼左移時(shí),空位出現(xiàn)在低位,添補(bǔ)的的補(bǔ)碼左移時(shí),空位出現(xiàn)在低位,添補(bǔ)的代碼與原碼相同,即為代碼與原碼相同,即為0;右移時(shí),空位出;右移時(shí),空位出現(xiàn)在高位,添補(bǔ)的代碼與反碼相同,即為現(xiàn)在高位,添補(bǔ)的代碼與反碼相同,即為1。 例:設(shè)機(jī)器數(shù)字長(zhǎng)為例:設(shè)機(jī)器數(shù)字長(zhǎng)為8位(含一位符號(hào)位(

6、含一位符號(hào)位),若位),若X=27,寫出,寫出X對(duì)應(yīng)的原碼、對(duì)應(yīng)的原碼、反碼和補(bǔ)碼的形式,并求出三種機(jī)器數(shù)反碼和補(bǔ)碼的形式,并求出三種機(jī)器數(shù)左、右移一位后的表示形式及對(duì)應(yīng)的真左、右移一位后的表示形式及對(duì)應(yīng)的真值。值。 有符號(hào)數(shù)的移位稱為算術(shù)移位,無符號(hào)有符號(hào)數(shù)的移位稱為算術(shù)移位,無符號(hào)數(shù)的移位稱為邏輯移位。邏輯移位的規(guī)數(shù)的移位稱為邏輯移位。邏輯移位的規(guī)則是:邏輯左移時(shí),高位移出,低位空則是:邏輯左移時(shí),高位移出,低位空位補(bǔ)位補(bǔ)0;邏輯右移時(shí),低位移出,高位空;邏輯右移時(shí),低位移出,高位空位補(bǔ)位補(bǔ)0。3.3.2 補(bǔ)碼加減運(yùn)算與溢出補(bǔ)碼加減運(yùn)算與溢出 加減法運(yùn)算是計(jì)算機(jī)中最基本的算術(shù)運(yùn)加減法運(yùn)算是

7、計(jì)算機(jī)中最基本的算術(shù)運(yùn)算,一般計(jì)算機(jī)中都采用補(bǔ)碼表示來進(jìn)算,一般計(jì)算機(jī)中都采用補(bǔ)碼表示來進(jìn)行實(shí)現(xiàn)。行實(shí)現(xiàn)。1、補(bǔ)碼加減運(yùn)算的基本公式補(bǔ)碼加減運(yùn)算的基本公式 補(bǔ)碼加法的基本公式為:補(bǔ)碼加法的基本公式為:X+Y補(bǔ)補(bǔ)=X補(bǔ)補(bǔ)+Y補(bǔ)補(bǔ) 按照補(bǔ)碼的定義,此公式可進(jìn)行嚴(yán)格的按照補(bǔ)碼的定義,此公式可進(jìn)行嚴(yán)格的數(shù)學(xué)證明,以小數(shù)為例證明如下:數(shù)學(xué)證明,以小數(shù)為例證明如下: 證明:真值證明:真值X、Y的符號(hào)共有四種情況。的符號(hào)共有四種情況。(1)X0,Y0,則,則X+Y0 根據(jù)補(bǔ)碼定義可得:根據(jù)補(bǔ)碼定義可得:X補(bǔ)補(bǔ)+Y補(bǔ)補(bǔ)=X+Y=X+Y補(bǔ)補(bǔ) (Mod 2)(2)X0,Y0根據(jù)補(bǔ)碼定義:根據(jù)補(bǔ)碼定義:X補(bǔ)補(bǔ)=X,

8、Y補(bǔ)補(bǔ)=2+Y,則,則X補(bǔ)補(bǔ)+Y補(bǔ)補(bǔ)=2+(X+Y)當(dāng)當(dāng)|X|Y|時(shí),時(shí),0X+Y1(正數(shù)),模(正數(shù)),模2時(shí),時(shí),2+(X+Y)=X+Y所以所以X補(bǔ)補(bǔ)+Y補(bǔ)補(bǔ)=2+(X+Y) =X+Y=X+Y補(bǔ)補(bǔ) (Mod 2)當(dāng)當(dāng)|X|Y|時(shí),時(shí),-1X+Y0(負(fù)數(shù)),(負(fù)數(shù)),X補(bǔ)補(bǔ)+Y補(bǔ)補(bǔ)=2+(X+Y)=X+Y補(bǔ)補(bǔ)(3)X0(可仿照(可仿照(2)證明)證明)(4)X0,Y0,則,則X+Y0根據(jù)補(bǔ)碼定義:根據(jù)補(bǔ)碼定義:X補(bǔ)補(bǔ)=2+X,Y補(bǔ)補(bǔ)=2+Y,則,則X補(bǔ)補(bǔ)+Y補(bǔ)補(bǔ)=2+X+2+Y=2+(2+X+Y)因?yàn)椋ㄒ驗(yàn)椋╔+Y)0,而且其絕對(duì)值又小于,而且其絕對(duì)值又小于2,則則0(2+X+Y)2;在模在

9、模2情況下,情況下,2+(2+X+Y)=2+X+Y =2+(X+Y)=X+Y補(bǔ)補(bǔ)所以:所以:X補(bǔ)補(bǔ)+Y補(bǔ)補(bǔ)=X+Y補(bǔ)補(bǔ)由以上各種情況的證明,可得到結(jié)論:由以上各種情況的證明,可得到結(jié)論:X補(bǔ)補(bǔ)+Y補(bǔ)補(bǔ)=X+Y補(bǔ)補(bǔ) 由補(bǔ)碼加法的基本公式,可得到補(bǔ)碼減法由補(bǔ)碼加法的基本公式,可得到補(bǔ)碼減法的基本公式:的基本公式:X-Y補(bǔ)補(bǔ)=X補(bǔ)補(bǔ)+-Y補(bǔ)補(bǔ) 即:即:X-Y補(bǔ)補(bǔ)=X+(-Y)補(bǔ)補(bǔ)= X補(bǔ)補(bǔ)+-Y補(bǔ)補(bǔ)。 根據(jù)以上加減運(yùn)算的基本公式,可得到根據(jù)以上加減運(yùn)算的基本公式,可得到補(bǔ)碼運(yùn)算的規(guī)則如下:補(bǔ)碼運(yùn)算的規(guī)則如下:、參加運(yùn)算的操作數(shù)均用補(bǔ)碼表示。、參加運(yùn)算的操作數(shù)均用補(bǔ)碼表示。、符號(hào)位參與運(yùn)算。、符號(hào)位參

10、與運(yùn)算。、對(duì)于兩數(shù)相加減的各種情況,計(jì)算機(jī)、對(duì)于兩數(shù)相加減的各種情況,計(jì)算機(jī)都執(zhí)行求和操作。都執(zhí)行求和操作。、運(yùn)算結(jié)果仍為補(bǔ)碼表示。、運(yùn)算結(jié)果仍為補(bǔ)碼表示。 在補(bǔ)碼機(jī)器中,對(duì)于參與運(yùn)算的在補(bǔ)碼機(jī)器中,對(duì)于參與運(yùn)算的X和和Y兩兩個(gè)數(shù),都以補(bǔ)碼形式表示在機(jī)器中,即個(gè)數(shù),都以補(bǔ)碼形式表示在機(jī)器中,即機(jī)器內(nèi)存放的是機(jī)器內(nèi)存放的是X補(bǔ)補(bǔ)和和Y補(bǔ)補(bǔ)的形式,所的形式,所以對(duì)于加法運(yùn)算來說,比較簡(jiǎn)單,而對(duì)以對(duì)于加法運(yùn)算來說,比較簡(jiǎn)單,而對(duì)于減法運(yùn)算,需要考慮怎樣從于減法運(yùn)算,需要考慮怎樣從Y補(bǔ)補(bǔ)變換變換到到-Y補(bǔ)補(bǔ)的形式,然后參加運(yùn)算。的形式,然后參加運(yùn)算。 不論不論Y的真值是正是負(fù),已知的真值是正是負(fù),已知

11、Y補(bǔ)補(bǔ)求求-Y補(bǔ)補(bǔ)的方法都是將的方法都是將Y補(bǔ)補(bǔ)的符號(hào)位連同數(shù)值位的符號(hào)位連同數(shù)值位一起求反后末位加一起求反后末位加1,這是因?yàn)椋@是因?yàn)閅和和-Y肯肯定為一正一負(fù),且絕對(duì)值相同。定為一正一負(fù),且絕對(duì)值相同。 例:已知:例:已知:x=0.1001,y=-0.0110,求求x+y=? 例:已知:例:已知:x=-0.1001,y=-0.0101,求求x+y=? 例:已知:例:已知:x=0.1001,y=0.0110,求,求x-y=? 例:已知:例:已知:x=-0.1001,y=-0.0110,求求x-y=?2、溢出及其判別方法、溢出及其判別方法 計(jì)算機(jī)的加法器和寄存器都有固定的位計(jì)算機(jī)的加法器和寄

12、存器都有固定的位數(shù),當(dāng)選定了數(shù)據(jù)表示格式后,所能表數(shù),當(dāng)選定了數(shù)據(jù)表示格式后,所能表示的數(shù)據(jù)范圍也就相應(yīng)確定了。當(dāng)運(yùn)算示的數(shù)據(jù)范圍也就相應(yīng)確定了。當(dāng)運(yùn)算結(jié)果超出機(jī)器數(shù)所能表示的范圍時(shí),稱結(jié)果超出機(jī)器數(shù)所能表示的范圍時(shí),稱為溢出。為溢出。 例如:字長(zhǎng)例如:字長(zhǎng)4位,采用補(bǔ)碼表示,則表數(shù)位,采用補(bǔ)碼表示,則表數(shù)范圍為范圍為-8+7。如果。如果x=+6,y=+3,則:,則: x補(bǔ)補(bǔ)+y補(bǔ)補(bǔ)=0 110+0 011 =1 001=x+y補(bǔ)補(bǔ) 可得可得x+y=-7,而正確結(jié)果應(yīng)該是,而正確結(jié)果應(yīng)該是+9。這。這是因?yàn)橹挥幸粋€(gè)符號(hào)位,使得結(jié)果符號(hào)錯(cuò)是因?yàn)橹挥幸粋€(gè)符號(hào)位,使得結(jié)果符號(hào)錯(cuò)亂。在這種情況下,符號(hào)

13、位是數(shù)值,如果亂。在這種情況下,符號(hào)位是數(shù)值,如果當(dāng)作符號(hào),留下的結(jié)果將是不正確的。當(dāng)作符號(hào),留下的結(jié)果將是不正確的。 兩個(gè)異號(hào)數(shù)相加不會(huì)產(chǎn)生溢出,只有兩兩個(gè)異號(hào)數(shù)相加不會(huì)產(chǎn)生溢出,只有兩同號(hào)數(shù)相加才有可能產(chǎn)生溢出。兩個(gè)同同號(hào)數(shù)相加才有可能產(chǎn)生溢出。兩個(gè)同號(hào)數(shù)相減也不會(huì)出現(xiàn)溢出,只有兩個(gè)異號(hào)數(shù)相減也不會(huì)出現(xiàn)溢出,只有兩個(gè)異號(hào)數(shù)相減才會(huì)出現(xiàn)溢出。當(dāng)兩個(gè)數(shù)據(jù)運(yùn)號(hào)數(shù)相減才會(huì)出現(xiàn)溢出。當(dāng)兩個(gè)數(shù)據(jù)運(yùn)算的結(jié)果大于機(jī)器所能表示的最大正數(shù)算的結(jié)果大于機(jī)器所能表示的最大正數(shù)時(shí)稱為正溢。運(yùn)算結(jié)果小于機(jī)器所能表時(shí)稱為正溢。運(yùn)算結(jié)果小于機(jī)器所能表示的最小負(fù)數(shù)時(shí)稱為負(fù)溢。示的最小負(fù)數(shù)時(shí)稱為負(fù)溢。 需要說明的是,溢出是指

14、運(yùn)算結(jié)果超出需要說明的是,溢出是指運(yùn)算結(jié)果超出表數(shù)范圍,它既不是最高數(shù)值位向符號(hào)表數(shù)范圍,它既不是最高數(shù)值位向符號(hào)位的進(jìn)位,也不是符號(hào)位本身產(chǎn)生的進(jìn)位的進(jìn)位,也不是符號(hào)位本身產(chǎn)生的進(jìn)位。下面通過幾個(gè)例子加以說明。位。下面通過幾個(gè)例子加以說明。 當(dāng)最高數(shù)值位向符號(hào)位產(chǎn)生進(jìn)位時(shí),可當(dāng)最高數(shù)值位向符號(hào)位產(chǎn)生進(jìn)位時(shí),可能產(chǎn)生溢出(能產(chǎn)生溢出(c),也可能不產(chǎn)生溢出),也可能不產(chǎn)生溢出(a)和()和(b);符號(hào)位本身產(chǎn)生的進(jìn)位);符號(hào)位本身產(chǎn)生的進(jìn)位也是如此。只有在最高數(shù)值位向符號(hào)位也是如此。只有在最高數(shù)值位向符號(hào)位有進(jìn)位而符號(hào)位本身不產(chǎn)生進(jìn)位(有進(jìn)位而符號(hào)位本身不產(chǎn)生進(jìn)位(c),),或者最高數(shù)值位不向

15、符號(hào)位產(chǎn)生進(jìn)位而或者最高數(shù)值位不向符號(hào)位產(chǎn)生進(jìn)位而符號(hào)位本身卻產(chǎn)生進(jìn)位(符號(hào)位本身卻產(chǎn)生進(jìn)位(d)時(shí),才發(fā))時(shí),才發(fā)生溢出。這可作為判斷溢出的條件。生溢出。這可作為判斷溢出的條件。 補(bǔ)碼定點(diǎn)加減法運(yùn)算中,常用的判斷溢補(bǔ)碼定點(diǎn)加減法運(yùn)算中,常用的判斷溢出的方法有兩種:出的方法有兩種:(1)采用變形補(bǔ)碼判斷溢出)采用變形補(bǔ)碼判斷溢出 變形補(bǔ)碼是采用變形補(bǔ)碼是采用2位符號(hào)位的補(bǔ)碼,即位符號(hào)位的補(bǔ)碼,即用用“00”表示正號(hào),用表示正號(hào),用“11”表示負(fù)號(hào)。表示負(fù)號(hào)。它是以它是以4為模的(對(duì)小數(shù)來說),其定為模的(對(duì)小數(shù)來說),其定義為:義為:XX補(bǔ)補(bǔ)= =X 0X 0X1 X1 4+X -14+X -

16、1X0 X0 (mod 4mod 4) 在采用變形補(bǔ)碼進(jìn)行加法運(yùn)算時(shí),兩位在采用變形補(bǔ)碼進(jìn)行加法運(yùn)算時(shí),兩位符號(hào)位與數(shù)值位同時(shí)參與運(yùn)算,而且高符號(hào)位與數(shù)值位同時(shí)參與運(yùn)算,而且高位產(chǎn)生的進(jìn)位自動(dòng)丟失(執(zhí)行了模位產(chǎn)生的進(jìn)位自動(dòng)丟失(執(zhí)行了模4操操作),則可以得到正確的結(jié)果。作),則可以得到正確的結(jié)果。 X+Y補(bǔ)補(bǔ)=X補(bǔ)補(bǔ)+Y補(bǔ)補(bǔ) 利用變形補(bǔ)碼進(jìn)行溢出判斷的原則是:利用變形補(bǔ)碼進(jìn)行溢出判斷的原則是:如果結(jié)果的兩位符號(hào)位不相同,則表示如果結(jié)果的兩位符號(hào)位不相同,則表示溢出,否則沒有溢出(此時(shí)等同異或運(yùn)溢出,否則沒有溢出(此時(shí)等同異或運(yùn)算)。不論在何種情況下,最高位即第算)。不論在何種情況下,最高位即第

17、一位符號(hào)位為真正的符號(hào)。一位符號(hào)位為真正的符號(hào)。 例如:例如:x補(bǔ)補(bǔ)=00 1010 y補(bǔ)補(bǔ)=00 1001 則則x+y補(bǔ)補(bǔ)=01 0011 x補(bǔ)補(bǔ)=11 0001 y補(bǔ)補(bǔ)=11 0111 則則x+y補(bǔ)補(bǔ)=10 1000 此兩例都為溢出的情況。此兩例都為溢出的情況。 例如:例如:x補(bǔ)補(bǔ)=00 0101 y補(bǔ)補(bǔ)=00 0111 則則x+y補(bǔ)補(bǔ)=00 1100 x補(bǔ)補(bǔ)=11 1011 y補(bǔ)補(bǔ)=11 0111 則則x+y補(bǔ)補(bǔ)=11 0010 此兩例都為不溢出的情況。此兩例都為不溢出的情況。 在采用變形補(bǔ)碼進(jìn)行加減運(yùn)算時(shí),運(yùn)算在采用變形補(bǔ)碼進(jìn)行加減運(yùn)算時(shí),運(yùn)算結(jié)果的兩位符號(hào)應(yīng)該相同。如果兩個(gè)符結(jié)果的兩

18、位符號(hào)應(yīng)該相同。如果兩個(gè)符號(hào)位同時(shí)為號(hào)位同時(shí)為0,則表示結(jié)果為正數(shù);如,則表示結(jié)果為正數(shù);如果同時(shí)為果同時(shí)為1,則表示結(jié)果為負(fù)數(shù)。如果,則表示結(jié)果為負(fù)數(shù)。如果兩個(gè)符號(hào)位不同,則表示產(chǎn)生了溢出,兩個(gè)符號(hào)位不同,則表示產(chǎn)生了溢出,且左邊的符號(hào)位表示結(jié)果的正確符號(hào),且左邊的符號(hào)位表示結(jié)果的正確符號(hào),所以如果運(yùn)算結(jié)果的兩位符號(hào)位為所以如果運(yùn)算結(jié)果的兩位符號(hào)位為“01”,則表示產(chǎn)生了正溢出;如果運(yùn),則表示產(chǎn)生了正溢出;如果運(yùn)算結(jié)果的符號(hào)位為算結(jié)果的符號(hào)位為“10”,則表示產(chǎn)生,則表示產(chǎn)生了負(fù)溢出。了負(fù)溢出。 需要說明的是,在使用雙符號(hào)位時(shí),寄需要說明的是,在使用雙符號(hào)位時(shí),寄存器內(nèi)的操作數(shù)其實(shí)只需保存一

19、個(gè)符號(hào)存器內(nèi)的操作數(shù)其實(shí)只需保存一個(gè)符號(hào)位就可以了,因?yàn)閷?duì)于任何正確的數(shù)據(jù),位就可以了,因?yàn)閷?duì)于任何正確的數(shù)據(jù),它的兩個(gè)符號(hào)位的值都是相同的。但是它的兩個(gè)符號(hào)位的值都是相同的。但是在加法器中又要有雙符號(hào)位,所以在相在加法器中又要有雙符號(hào)位,所以在相加時(shí),寄存器中的一位符號(hào)位的值要同加時(shí),寄存器中的一位符號(hào)位的值要同時(shí)輸入到加法器中的兩個(gè)符號(hào)位中。時(shí)輸入到加法器中的兩個(gè)符號(hào)位中。(2)利用符號(hào)位的進(jìn)位信息判斷溢出)利用符號(hào)位的進(jìn)位信息判斷溢出 由于減法運(yùn)算在計(jì)算機(jī)中也是利用加法由于減法運(yùn)算在計(jì)算機(jī)中也是利用加法實(shí)現(xiàn)的,所以符號(hào)不同的數(shù)在進(jìn)行減法實(shí)現(xiàn)的,所以符號(hào)不同的數(shù)在進(jìn)行減法時(shí),減數(shù)的相反數(shù)在

20、求補(bǔ)后的符號(hào)與被時(shí),減數(shù)的相反數(shù)在求補(bǔ)后的符號(hào)與被減數(shù)的符號(hào)應(yīng)該是一致的。因此,不論減數(shù)的符號(hào)應(yīng)該是一致的。因此,不論作加法還是減法,只要參加運(yùn)算的兩個(gè)作加法還是減法,只要參加運(yùn)算的兩個(gè)操作數(shù)的符號(hào)相同,而運(yùn)算結(jié)果與參加操作數(shù)的符號(hào)相同,而運(yùn)算結(jié)果與參加運(yùn)算的原操作數(shù)的符號(hào)不同,就可以判運(yùn)算的原操作數(shù)的符號(hào)不同,就可以判定為溢出。定為溢出。 例如:例如:x補(bǔ)補(bǔ)=1 1011 y補(bǔ)補(bǔ)=1 0011 x+y補(bǔ)補(bǔ)=0 1110 由于操作數(shù)的符號(hào)都為由于操作數(shù)的符號(hào)都為1,但結(jié)果的符,但結(jié)果的符號(hào)位為號(hào)位為0,所以判定為溢出。,所以判定為溢出。 又如:又如:x補(bǔ)補(bǔ)=1 1010 y補(bǔ)補(bǔ)=1 0111

21、x+y補(bǔ)補(bǔ)=1 0001 由于結(jié)果的符號(hào)位與原操作數(shù)的符號(hào)位由于結(jié)果的符號(hào)位與原操作數(shù)的符號(hào)位相同,所以判定為無溢出。相同,所以判定為無溢出。 采用一位符號(hào)位進(jìn)行判斷是否溢出時(shí),采用一位符號(hào)位進(jìn)行判斷是否溢出時(shí),為了節(jié)省時(shí)間,通常也可以使用符號(hào)位為了節(jié)省時(shí)間,通常也可以使用符號(hào)位產(chǎn)生的進(jìn)位和數(shù)值最高有效位產(chǎn)生的進(jìn)產(chǎn)生的進(jìn)位和數(shù)值最高有效位產(chǎn)生的進(jìn)位進(jìn)行異或操作。如果異或的結(jié)果為位進(jìn)行異或操作。如果異或的結(jié)果為1則表示有溢出;異或結(jié)果為則表示有溢出;異或結(jié)果為0則表示沒則表示沒有溢出。有溢出。3、補(bǔ)碼加減運(yùn)算的電路、補(bǔ)碼加減運(yùn)算的電路圖圖3-6 實(shí)現(xiàn)補(bǔ)碼加減運(yùn)算的邏輯電路實(shí)現(xiàn)補(bǔ)碼加減運(yùn)算的邏輯電

22、路 在該圖中,被加數(shù)(或被減數(shù))在該圖中,被加數(shù)(或被減數(shù))X和加數(shù)和加數(shù)(或減數(shù))(或減數(shù))Y分別存放在分別存放在A寄存器和寄存器和B寄寄存器中,當(dāng)執(zhí)行加法運(yùn)算時(shí),執(zhí)行存器中,當(dāng)執(zhí)行加法運(yùn)算時(shí),執(zhí)行X補(bǔ)補(bǔ)+Y補(bǔ)補(bǔ),將,將X補(bǔ)補(bǔ)和和Y補(bǔ)補(bǔ)從從A寄存器和寄存器和B寄寄存器送到加法器的兩個(gè)輸入端。當(dāng)執(zhí)行存器送到加法器的兩個(gè)輸入端。當(dāng)執(zhí)行減法運(yùn)算時(shí),執(zhí)行減法運(yùn)算時(shí),執(zhí)行X補(bǔ)補(bǔ)+-Y補(bǔ)補(bǔ),將運(yùn)算,將運(yùn)算結(jié)果保存在結(jié)果保存在A寄存器中。寄存器中。 在邏輯電路中,在邏輯電路中,ALU由多個(gè)全加器及其由多個(gè)全加器及其他電路組成。每個(gè)全加器有三個(gè)輸入端,他電路組成。每個(gè)全加器有三個(gè)輸入端,其中一個(gè)接收從低位來

23、的進(jìn)位信號(hào),而其中一個(gè)接收從低位來的進(jìn)位信號(hào),而最低位沒有進(jìn)位信號(hào)輸入,因此可利用最低位沒有進(jìn)位信號(hào)輸入,因此可利用來作為來作為“+1”信號(hào)。信號(hào)。 當(dāng)執(zhí)行加法時(shí),提供控制信號(hào)有:當(dāng)執(zhí)行加法時(shí),提供控制信號(hào)有:AALU,BALU,M=0(經(jīng)異或門控制(經(jīng)異或門控制BALU,同時(shí)最低位加,同時(shí)最低位加0),),ALUA。 當(dāng)執(zhí)行減法時(shí),提供控制信號(hào)有:當(dāng)執(zhí)行減法時(shí),提供控制信號(hào)有:AALU,BALU,M=1(經(jīng)異或門控制(經(jīng)異或門控制B#ALU,同時(shí)最低位加,同時(shí)最低位加1),),ALUA。 其中其中ALU+1操作可以和加法操作同時(shí)進(jìn)操作可以和加法操作同時(shí)進(jìn)行,所以總共只需要一次加法運(yùn)算。行,所

24、以總共只需要一次加法運(yùn)算。3.3.3 乘法運(yùn)算乘法運(yùn)算 在計(jì)算機(jī)中,乘法運(yùn)算是一種很重要的在計(jì)算機(jī)中,乘法運(yùn)算是一種很重要的運(yùn)算,有的機(jī)器由硬件乘法器(見附錄運(yùn)算,有的機(jī)器由硬件乘法器(見附錄1)直接完成乘法運(yùn)算,有的機(jī)器內(nèi)沒有乘直接完成乘法運(yùn)算,有的機(jī)器內(nèi)沒有乘法器,但可以按機(jī)器作乘法運(yùn)算的方法,法器,但可以按機(jī)器作乘法運(yùn)算的方法,用軟件編程實(shí)現(xiàn)。下面分別討論原碼和用軟件編程實(shí)現(xiàn)。下面分別討論原碼和補(bǔ)碼的乘法運(yùn)算方法。補(bǔ)碼的乘法運(yùn)算方法。 1、原碼乘法、原碼乘法(1)定點(diǎn)原碼一位乘法)定點(diǎn)原碼一位乘法 考慮十進(jìn)制數(shù)的乘法規(guī)則及原碼表示方考慮十進(jìn)制數(shù)的乘法規(guī)則及原碼表示方法的特點(diǎn),可得到原碼乘

25、法的規(guī)則如下:法的特點(diǎn),可得到原碼乘法的規(guī)則如下:兩個(gè)原碼數(shù)相乘,其乘積的符號(hào)為相乘兩個(gè)原碼數(shù)相乘,其乘積的符號(hào)為相乘兩數(shù)符號(hào)的異或值,數(shù)值則為兩數(shù)絕對(duì)兩數(shù)符號(hào)的異或值,數(shù)值則為兩數(shù)絕對(duì)值之積。值之積。 假設(shè):假設(shè):X原原=X0X1X2Xn Y原原=Y0Y1Y2Yn則:則:XY原原=X原原Y原原 =(X0 Y0)|(X1X2Xn)(Y1Y2Yn) 符號(hào)符號(hào)“|”表示把符號(hào)位和數(shù)值位拼接起表示把符號(hào)位和數(shù)值位拼接起來。來。 先來看手工乘法的運(yùn)算過程。先來看手工乘法的運(yùn)算過程。 設(shè)設(shè)X=0.1101 Y=0.1011,計(jì)算乘積,計(jì)算乘積XY。 0 . 1 1 0 1 0 . 1 1 0 1 0 .

26、 1 0 1 1 0 . 1 0 1 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 0 0 0 0 0 0 0 0 1 1 0 1 1 1 0 1 0 . 1 0 0 0 1 1 1 1 0 . 1 0 0 0 1 1 1 1 即即XY=0.10001111,相乘兩數(shù)同號(hào),相乘兩數(shù)同號(hào),結(jié)果符號(hào)為正。結(jié)果符號(hào)為正。 在手工計(jì)算時(shí),逐次按乘數(shù)每位的取值是在手工計(jì)算時(shí),逐次按乘數(shù)每位的取值是1還是還是0,決定相加數(shù)取被乘數(shù)的值還是,決定相加數(shù)取被乘數(shù)的值還是取零值,而且相加數(shù)逐次向左偏移取零值,而且相加數(shù)逐次向左偏移1位,位,最后一起相加求積。若計(jì)算機(jī)完全模擬筆最后一起相加求

27、積。若計(jì)算機(jī)完全模擬筆算乘法步驟,將會(huì)有困難:第一,機(jī)器難算乘法步驟,將會(huì)有困難:第一,機(jī)器難以實(shí)現(xiàn)四個(gè)位積的一次相加;第二,乘積以實(shí)現(xiàn)四個(gè)位積的一次相加;第二,乘積位數(shù)增長(zhǎng)了一倍。位數(shù)增長(zhǎng)了一倍。 為此,在計(jì)算機(jī)中的運(yùn)算方法作了如下為此,在計(jì)算機(jī)中的運(yùn)算方法作了如下改進(jìn):改進(jìn):、計(jì)算機(jī)一次加法操作只能求出兩數(shù)之、計(jì)算機(jī)一次加法操作只能求出兩數(shù)之和,因此每求得一個(gè)相加數(shù),就與上次和,因此每求得一個(gè)相加數(shù),就與上次部分積相加。部分積相加。、在求本次部分積時(shí),前一次部分積的、在求本次部分積時(shí),前一次部分積的最低位不再參與運(yùn)算,因此可將其右移最低位不再參與運(yùn)算,因此可將其右移一位,相加數(shù)可直送而不必

28、偏移,于是一位,相加數(shù)可直送而不必偏移,于是用用N位加法器就可以實(shí)現(xiàn)兩個(gè)位加法器就可以實(shí)現(xiàn)兩個(gè)N位數(shù)相乘。位數(shù)相乘。、部分積右移時(shí),乘數(shù)寄存器同時(shí)右移、部分積右移時(shí),乘數(shù)寄存器同時(shí)右移一位,這樣可以一直用乘數(shù)寄存器的最一位,這樣可以一直用乘數(shù)寄存器的最低位來控制相加數(shù)(取被乘數(shù)或零),低位來控制相加數(shù)(取被乘數(shù)或零),同時(shí)乘數(shù)寄存器的最高位可接收部分積同時(shí)乘數(shù)寄存器的最高位可接收部分積右移出來的一位,因此,完成乘法運(yùn)算右移出來的一位,因此,完成乘法運(yùn)算后,乘積分開放在了兩個(gè)寄存器中。后,乘積分開放在了兩個(gè)寄存器中。 如圖如圖3-7是計(jì)算機(jī)內(nèi)實(shí)現(xiàn)原碼乘法的邏是計(jì)算機(jī)內(nèi)實(shí)現(xiàn)原碼乘法的邏輯框圖,其中

29、輯框圖,其中A、B、C三個(gè)寄存器分別三個(gè)寄存器分別存放部分積、被乘數(shù)和乘數(shù)。存放部分積、被乘數(shù)和乘數(shù)。圖圖3-7 實(shí)現(xiàn)原碼一位乘的邏輯電路框圖實(shí)現(xiàn)原碼一位乘的邏輯電路框圖 乘法開始時(shí),乘法開始時(shí),A寄存器被清為零,作為初寄存器被清為零,作為初始部分積。被乘數(shù)放在始部分積。被乘數(shù)放在B寄存器中,乘數(shù)寄存器中,乘數(shù)放在放在C寄存器中。實(shí)現(xiàn)部分積和被乘數(shù)相寄存器中。實(shí)現(xiàn)部分積和被乘數(shù)相加是通過給出加是通過給出AALU和和BALU命令,命令,在在ALU中完成的。中完成的。ALU的輸出經(jīng)過移位的輸出經(jīng)過移位電路向右移一位送入電路向右移一位送入A寄存器中。寄存器中。C寄存寄存器是用移位寄存器實(shí)現(xiàn)的,其最低

30、位用器是用移位寄存器實(shí)現(xiàn)的,其最低位用作作BALU的控制命令。的控制命令。 加法器最低一位的值右移時(shí)將移入加法器最低一位的值右移時(shí)將移入C寄存寄存器的最高數(shù)值位,使相乘之積的低位部器的最高數(shù)值位,使相乘之積的低位部分保存進(jìn)分保存進(jìn)C寄存器中,原來的乘數(shù)在逐次寄存器中,原來的乘數(shù)在逐次右移過程中丟失了。右移過程中丟失了。 圖中還給出了一個(gè)計(jì)數(shù)器,用來控制逐圖中還給出了一個(gè)計(jì)數(shù)器,用來控制逐次相乘的次數(shù)。它的初始值放乘數(shù)位數(shù),次相乘的次數(shù)。它的初始值放乘數(shù)位數(shù),計(jì)算結(jié)束時(shí)給出結(jié)束乘運(yùn)算的控制信號(hào)。計(jì)算結(jié)束時(shí)給出結(jié)束乘運(yùn)算的控制信號(hào)。 由于在運(yùn)算過程中,被乘數(shù)寄存器的值由于在運(yùn)算過程中,被乘數(shù)寄存器

31、的值保持不變,而部分積寄存器和乘數(shù)寄存保持不變,而部分積寄存器和乘數(shù)寄存器的值一直變化,可以用這兩個(gè)寄存器器的值一直變化,可以用這兩個(gè)寄存器值的變化過程描述這種計(jì)算方法。值的變化過程描述這種計(jì)算方法。 例:設(shè)例:設(shè)X=0.1101,Y=0.1011,求,求XY=? 解:解:X原原=0 1101 Y原原=0 1011,用,用數(shù)值位計(jì)算,部分積取雙符號(hào)位,實(shí)際數(shù)值位計(jì)算,部分積取雙符號(hào)位,實(shí)際用來保存加運(yùn)算時(shí)的進(jìn)位信息。用來保存加運(yùn)算時(shí)的進(jìn)位信息。部分積部分積 乘乘數(shù)數(shù)說明說明 00 0000 + 00 11011011初始條件,部分初始條件,部分積為積為0乘數(shù)低位為乘數(shù)低位為1,加被乘數(shù)加被乘數(shù)

32、 00 1101 00 0110 + 00 110110111101右移右移1位,形成位,形成新的部分積,新的部分積,乘數(shù)右移,低位乘數(shù)右移,低位為為1,加被乘,加被乘數(shù)數(shù) 01 0011 00 1001 + 00 000011011110右移右移1位,形成位,形成新的部分積,新的部分積,乘數(shù)也右移,低乘數(shù)也右移,低位為位為0,加,加0 判定符號(hào),因?yàn)榕卸ǚ?hào),因?yàn)閄0 Y0=0 0=0,所以,所以得到:得到: XY原原=0 10001111 即:即:XY=+0.10001111(2)定點(diǎn)原碼兩位乘法)定點(diǎn)原碼兩位乘法 原碼兩位乘即從乘數(shù)的最低位開始每次原碼兩位乘即從乘數(shù)的最低位開始每次取兩位

33、乘數(shù)與被乘數(shù)相乘得到一次部分取兩位乘數(shù)與被乘數(shù)相乘得到一次部分積,它與原碼一位乘一樣,符號(hào)位的運(yùn)積,它與原碼一位乘一樣,符號(hào)位的運(yùn)算和數(shù)值部分是分開進(jìn)行的,但由于每算和數(shù)值部分是分開進(jìn)行的,但由于每次是用兩位乘數(shù)的狀態(tài)來決定新的部分次是用兩位乘數(shù)的狀態(tài)來決定新的部分積如何形成,因此運(yùn)算步驟減少,提高積如何形成,因此運(yùn)算步驟減少,提高了運(yùn)算速度。了運(yùn)算速度。 兩位乘數(shù)共有四種可能組合,每種組兩位乘數(shù)共有四種可能組合,每種組合對(duì)應(yīng)于以下操作:合對(duì)應(yīng)于以下操作:00相當(dāng)于相當(dāng)于0X。部分積。部分積Pi右移兩位,右移兩位,不進(jìn)行其他運(yùn)算。不進(jìn)行其他運(yùn)算。01相當(dāng)于相當(dāng)于1X。部分積。部分積Pi+X,右

34、,右移兩位。移兩位。10相當(dāng)于相當(dāng)于2X。部分積。部分積Pi+2X,右,右移兩位。移兩位。11相當(dāng)于相當(dāng)于3X。部分積。部分積Pi+3X,右,右移兩位。移兩位。 與前面的一位乘法相比,多出了與前面的一位乘法相比,多出了+2X和和+3X兩種情況。把兩種情況。把X左移一位可得左移一位可得2X,在機(jī)器上可采用向左斜送在機(jī)器上可采用向左斜送1位來實(shí)現(xiàn)??晌粊韺?shí)現(xiàn)??墒鞘?3X一般不能一次完成,如分成兩次一般不能一次完成,如分成兩次進(jìn)行,又降低了計(jì)算速度。解決問題的進(jìn)行,又降低了計(jì)算速度。解決問題的辦法是:以(辦法是:以(4X-X)來代替)來代替3X運(yùn)算,運(yùn)算,在本次運(yùn)算中只執(zhí)行在本次運(yùn)算中只執(zhí)行-X,

35、而,而+4X歸并到歸并到下一步執(zhí)行。下一步執(zhí)行。 此時(shí)部分積已右移了兩位,上一步欠此時(shí)部分積已右移了兩位,上一步欠下的下的+4X已變成已變成+X。推導(dǎo)過程如下:。推導(dǎo)過程如下:設(shè)之前得到的部分積為設(shè)之前得到的部分積為Pi,右移兩位,右移兩位相當(dāng)于乘相當(dāng)于乘2-2。正常運(yùn)算為加。正常運(yùn)算為加3X右移右移兩位,即(兩位,即(Pi+4X-X)2-2;此式子;此式子等于(等于(Pi-X)2-2+X,此時(shí)表示操作,此時(shí)表示操作步驟為步驟為Pi減減X后右移兩位再加后右移兩位再加X。 在實(shí)際線路中用一個(gè)觸發(fā)器在實(shí)際線路中用一個(gè)觸發(fā)器C來記錄是否來記錄是否欠下欠下+4X,若是,則,若是,則1C,控制在下一,控

36、制在下一步補(bǔ)上所欠數(shù)據(jù)。因此實(shí)際操作用步補(bǔ)上所欠數(shù)據(jù)。因此實(shí)際操作用Yi-1、Yi、C三位來控制,運(yùn)算規(guī)則可如表三位來控制,運(yùn)算規(guī)則可如表3-13所示。所示。表表3-13 原碼兩位乘法規(guī)則原碼兩位乘法規(guī)則Yi-1i-1 Yi i C操操 作作0 0 00 0 10 1 00 1 11 0 01 0 11 1 01 1 1(Pi i+0)2-2-2(Pi i+X)2-2-2(Pi i+X)2-2-2(Pi i+2X)2-2-2(Pi i+2X)2-2-2(Pi i- -X)2-2-2(Pi i- -X)2-2-2(Pi i+0)2-2-20C0C0C0C0C1C1C1C 例:已知例:已知X=-0

37、.100111,Y=0.101110,求求XY=? 解:解:X原原=1.100111,Y原原=0.101110, |X|=0.100111,|X|補(bǔ)補(bǔ)=0.100111, -|X|補(bǔ)補(bǔ)=1.011001部分積部分積乘數(shù)乘數(shù) 欠位欠位說明說明 000 000000 +)001 00111000101110 0初始狀態(tài)初始狀態(tài)100,部分積,部分積+2X 0C 001 001110 000 010011 +)111 01100110001011 0右移兩位右移兩位110,部分積,部分積- -|X| 1C 111 101100 111 111011 +)111 01100100100010 1右移兩

38、位右移兩位101,部分積,部分積- -|X| 1C 111 010100 111 110101 +)000 10011100001000 1右移兩位右移兩位001,部分積,部分積+X 000 01110000001000 1不移位,得到結(jié)果不移位,得到結(jié)果 判定符號(hào),因?yàn)榕卸ǚ?hào),因?yàn)閄0 Y0=1 0=1,所,所以得到:以得到:XY原原=1 011100000010 即即XY=-0.011100000010 對(duì)于原碼兩位乘,需注意:對(duì)于原碼兩位乘,需注意:、部分積和被乘數(shù)采用三個(gè)符號(hào)位。、部分積和被乘數(shù)采用三個(gè)符號(hào)位。因?yàn)樵谠a兩位乘法中,有加因?yàn)樵谠a兩位乘法中,有加2X的操的操作,因此絕

39、對(duì)值有可能大于作,因此絕對(duì)值有可能大于2。此時(shí)仍。此時(shí)仍需保留進(jìn)位,以最高位的符號(hào)位作為需保留進(jìn)位,以最高位的符號(hào)位作為處理過程中的符號(hào)。處理過程中的符號(hào)。 、減、減|X|的操作是通過加的操作是通過加-|X|補(bǔ)補(bǔ)來實(shí)現(xiàn)來實(shí)現(xiàn)的。這是因?yàn)樵a的減法實(shí)現(xiàn)麻煩,需考的。這是因?yàn)樵a的減法實(shí)現(xiàn)麻煩,需考慮絕對(duì)值大小,并判斷結(jié)果符號(hào),不如先慮絕對(duì)值大小,并判斷結(jié)果符號(hào),不如先當(dāng)成補(bǔ)碼處理,因此,右移時(shí)按補(bǔ)碼的移當(dāng)成補(bǔ)碼處理,因此,右移時(shí)按補(bǔ)碼的移位規(guī)則進(jìn)行處理。(減位規(guī)則進(jìn)行處理。(減X時(shí)當(dāng)成補(bǔ)碼處理,時(shí)當(dāng)成補(bǔ)碼處理,有可能結(jié)果為負(fù),但每次的減都意味著下有可能結(jié)果為負(fù),但每次的減都意味著下一步會(huì)補(bǔ)上所欠

40、的一步會(huì)補(bǔ)上所欠的4X,當(dāng)補(bǔ)上后結(jié)果肯,當(dāng)補(bǔ)上后結(jié)果肯定為正值,此時(shí)正數(shù)的補(bǔ)碼、原碼、絕對(duì)定為正值,此時(shí)正數(shù)的補(bǔ)碼、原碼、絕對(duì)值都是一樣的。)值都是一樣的。)、當(dāng)乘數(shù)為偶數(shù)個(gè)數(shù)值位時(shí),乘數(shù)的符、當(dāng)乘數(shù)為偶數(shù)個(gè)數(shù)值位時(shí),乘數(shù)的符號(hào)位設(shè)置兩位號(hào)位設(shè)置兩位“00”,以便最后一步能處,以便最后一步能處理前面可能留下的欠帳,但不用移位。理前面可能留下的欠帳,但不用移位。當(dāng)乘數(shù)為奇數(shù)個(gè)數(shù)值位時(shí),乘數(shù)符號(hào)位當(dāng)乘數(shù)為奇數(shù)個(gè)數(shù)值位時(shí),乘數(shù)符號(hào)位可設(shè)置一位可設(shè)置一位“0”,此時(shí)最后一次移一位。,此時(shí)最后一次移一位。2、補(bǔ)碼乘法、補(bǔ)碼乘法(1)定點(diǎn)補(bǔ)碼一位乘法)定點(diǎn)補(bǔ)碼一位乘法 原碼乘法存在兩個(gè)明顯的缺點(diǎn):一是符號(hào)

41、原碼乘法存在兩個(gè)明顯的缺點(diǎn):一是符號(hào)位需要單獨(dú)運(yùn)算,最后給運(yùn)算結(jié)果賦以正位需要單獨(dú)運(yùn)算,最后給運(yùn)算結(jié)果賦以正確符號(hào),這給運(yùn)算帶來麻煩;二是對(duì)于采確符號(hào),這給運(yùn)算帶來麻煩;二是對(duì)于采用補(bǔ)碼存儲(chǔ)的機(jī)器,從存儲(chǔ)器或寄存器中用補(bǔ)碼存儲(chǔ)的機(jī)器,從存儲(chǔ)器或寄存器中取出的是操作數(shù)的補(bǔ)碼,需先將其轉(zhuǎn)換成取出的是操作數(shù)的補(bǔ)碼,需先將其轉(zhuǎn)換成原碼,然后才能進(jìn)行乘法運(yùn)算,再對(duì)結(jié)果原碼,然后才能進(jìn)行乘法運(yùn)算,再對(duì)結(jié)果轉(zhuǎn)換成補(bǔ)碼保存。很不方便。轉(zhuǎn)換成補(bǔ)碼保存。很不方便。、補(bǔ)碼與真值之間的關(guān)系、補(bǔ)碼與真值之間的關(guān)系 設(shè)設(shè)X補(bǔ)補(bǔ)=Xs.X1X2Xn當(dāng)當(dāng)X0時(shí),時(shí),Xs=0,X補(bǔ)補(bǔ)=0.X1X2Xn=X當(dāng)當(dāng)X0,根據(jù)上面的討

42、論,則:,根據(jù)上面的討論,則: X(0.Y1Y2Yn)補(bǔ)補(bǔ) =X補(bǔ)補(bǔ)(0.Y1Y2Yn) 得到:得到: XY補(bǔ)補(bǔ)=X補(bǔ)補(bǔ)(0.Y1Y2Yn)-X補(bǔ)補(bǔ) 綜合上面兩種情況,則當(dāng)被乘數(shù)綜合上面兩種情況,則當(dāng)被乘數(shù)X和乘數(shù)和乘數(shù)Y的符號(hào)都任意時(shí)的符號(hào)都任意時(shí)XY補(bǔ)補(bǔ)=X補(bǔ)補(bǔ)(0.Y1Y2Yn)-X補(bǔ)補(bǔ)Ys =X補(bǔ)補(bǔ)(-Ys+0.Y1Y2Yn) =X補(bǔ)補(bǔ)Y、補(bǔ)碼乘法比較法、補(bǔ)碼乘法比較法布斯(布斯(Booth)乘法乘法 為了得出補(bǔ)碼一位乘法算法,將上式為了得出補(bǔ)碼一位乘法算法,將上式展開加以變換,即:展開加以變換,即:XY補(bǔ)補(bǔ)=X補(bǔ)補(bǔ)-Ys+ Y12-1+ Y22-2+ Yn2-n =X補(bǔ)補(bǔ)-Ys+(Y

43、1- Y12-1)+(Y22-1- Y22-2)+(Yn2-(n-1)- Yn2-n) =X補(bǔ)補(bǔ)(Y1- Ys)+(Y2- Y1)2-1+(Yn- Yn-1)2-(n-1)+(0- Yn)2-n =X補(bǔ)補(bǔ)(Y1- Ys)+2-1(X補(bǔ)補(bǔ)(Y2-Y1)+2-1(X補(bǔ)補(bǔ)(Y3-Y2)+2-1(X補(bǔ)補(bǔ)(Yn-Yn-1)+2-1(X補(bǔ)補(bǔ)(Yn+1-Yn)()(Yn+1=0) 由上式可以發(fā)現(xiàn),每一步乘法在前次部分由上式可以發(fā)現(xiàn),每一步乘法在前次部分積的基礎(chǔ)上(開始時(shí)部分積為積的基礎(chǔ)上(開始時(shí)部分積為0),根據(jù)),根據(jù)Yi+1-Yi(i=n,2,1)的值決定對(duì))的值決定對(duì)X補(bǔ)補(bǔ)的操作,然后右移一位,得到新

44、的部分積。的操作,然后右移一位,得到新的部分積。如此重復(fù)如此重復(fù)n步。第步。第n+1步由(步由(Y1-Ys)的值)的值決定對(duì)決定對(duì)X補(bǔ)補(bǔ)的操作,但不用移位,即得到的操作,但不用移位,即得到XY補(bǔ)補(bǔ)。 在計(jì)算機(jī)中,由在計(jì)算機(jī)中,由Yi+1-Yi的值決定進(jìn)行什的值決定進(jìn)行什么操作,實(shí)際上并不是做減法,而是比么操作,實(shí)際上并不是做減法,而是比較較Yi、Yi+1的值。這種根據(jù)相鄰兩位的比的值。這種根據(jù)相鄰兩位的比較結(jié)果決定運(yùn)算操作的方法稱為較結(jié)果決定運(yùn)算操作的方法稱為“比較比較法法”。因?yàn)榇朔椒ㄊ怯?。因?yàn)榇朔椒ㄊ怯葿ooth夫婦最早提夫婦最早提出來的,又稱為出來的,又稱為Booth算法。算法。 Boo

45、th算法描述如下:算法描述如下:、參加運(yùn)算的數(shù)用補(bǔ)碼表示;、參加運(yùn)算的數(shù)用補(bǔ)碼表示;、符號(hào)位參加運(yùn)算;、符號(hào)位參加運(yùn)算;、乘數(shù)最低位后面增加一位附加位、乘數(shù)最低位后面增加一位附加位Yi+1(初值為(初值為0),以后逐次比較相鄰兩位并),以后逐次比較相鄰兩位并按表按表3-14所列規(guī)則運(yùn)算,算法進(jìn)行所列規(guī)則運(yùn)算,算法進(jìn)行n+1步(步(n是不包括符號(hào)位在內(nèi)的字長(zhǎng)),但是不包括符號(hào)位在內(nèi)的字長(zhǎng)),但第第n+1步不移位。步不移位。、移位要按補(bǔ)碼的移位規(guī)則進(jìn)行。、移位要按補(bǔ)碼的移位規(guī)則進(jìn)行。表表3-14 Booth比較法運(yùn)算規(guī)則比較法運(yùn)算規(guī)則Yn nYn+1n+1操操 作作Yn nYn+1n+1操操 作作

46、0 00 1部分積加部分積加0,右移一位右移一位部分積加部分積加X補(bǔ)補(bǔ),右,右移一位移一位01 1部分積加部分積加- -X補(bǔ)補(bǔ),右移,右移一位一位部分積加部分積加0,右移一位右移一位 例:已知:例:已知:X=0.0101,Y=-0.1101, 求求XY=? 解:解:X補(bǔ)補(bǔ)=0.0101, Y補(bǔ)補(bǔ)=1.0011, -X補(bǔ)補(bǔ)=1.1011部分積部分積乘數(shù)乘數(shù)說明說明 00 0000 +)11 101110011 0初始狀態(tài)初始狀態(tài)Yn nYn+1n+1=10,部分積加,部分積加-X補(bǔ)補(bǔ) 11 1011 11 1101 +)00 000011001 1部分積和乘數(shù)右移一位部分積和乘數(shù)右移一位Yn n

47、Yn+1n+1=11,部分積加,部分積加0 11 1101 11 1110 +)00 010111100 1部分積和乘數(shù)右移一位部分積和乘數(shù)右移一位Yn nYn+1n+1=01,部分積加,部分積加X補(bǔ)補(bǔ) 00 0011 00 0001 +)00 000011110 0部分積和乘數(shù)右移一位部分積和乘數(shù)右移一位Yn nYn+1n+1=00,部分積加,部分積加0 00 0001 00 0000 +)11 101111111 0部分積和乘數(shù)右移一位部分積和乘數(shù)右移一位Yn nYn+1n+1=10,部分積加,部分積加-X補(bǔ)補(bǔ) 11 101111111 0最后不移位最后不移位 XY補(bǔ)補(bǔ)=1.1011111

48、1, XY=-0.01000001 實(shí)現(xiàn)補(bǔ)碼一位乘法(實(shí)現(xiàn)補(bǔ)碼一位乘法(Booth算法)的硬件算法)的硬件原理框圖如圖原理框圖如圖3-8所示。所示。圖圖3-8 實(shí)現(xiàn)補(bǔ)碼一位乘的邏輯電路框圖實(shí)現(xiàn)補(bǔ)碼一位乘的邏輯電路框圖 乘法步驟如下:乘法步驟如下:、初始化時(shí)被乘數(shù)、初始化時(shí)被乘數(shù)B,乘數(shù),乘數(shù)C,并增,并增加一位附加位,初值為加一位附加位,初值為0,0A,0CTR;、CnCn+1=00或或11時(shí),時(shí),A+0A; CnCn+1=01時(shí),時(shí),A+BA; CnCn+1=10時(shí),時(shí),A-BA。、CTR+1CTR,若,若CTRn+1,繼續(xù);,繼續(xù);若若CTR=n+1,結(jié)束。,結(jié)束。、A、C聯(lián)合右移一位,轉(zhuǎn)

49、步驟聯(lián)合右移一位,轉(zhuǎn)步驟。、最后乘積高位在、最后乘積高位在A,低位在,低位在C(除去最(除去最后兩位)。后兩位)。 此算法的優(yōu)點(diǎn)是當(dāng)遇到代碼為連續(xù)此算法的優(yōu)點(diǎn)是當(dāng)遇到代碼為連續(xù)“1”或或連續(xù)連續(xù)“0”時(shí),只需連續(xù)移位,為實(shí)現(xiàn)加速時(shí),只需連續(xù)移位,為實(shí)現(xiàn)加速乘法創(chuàng)造了條件。缺點(diǎn)是乘數(shù)要增加一個(gè)乘法創(chuàng)造了條件。缺點(diǎn)是乘數(shù)要增加一個(gè)附加位,第附加位,第n+1步不移位,而且乘法結(jié)束步不移位,而且乘法結(jié)束時(shí),乘積低位在寄存器中的位置不符合要時(shí),乘積低位在寄存器中的位置不符合要求(需丟掉最后兩位)。求(需丟掉最后兩位)。(2)定點(diǎn)補(bǔ)碼兩位乘法)定點(diǎn)補(bǔ)碼兩位乘法 根據(jù)補(bǔ)碼一位乘法的規(guī)則,將比較根據(jù)補(bǔ)碼一位乘

50、法的規(guī)則,將比較YnYn+1的狀態(tài)與比較的狀態(tài)與比較Yn-1Yn的狀態(tài)所執(zhí)的狀態(tài)所執(zhí)行的操作合并成一步,便很容易推導(dǎo)行的操作合并成一步,便很容易推導(dǎo)出補(bǔ)碼兩位乘法的算法,運(yùn)算規(guī)則如出補(bǔ)碼兩位乘法的算法,運(yùn)算規(guī)則如表表3-15所示。所示。表表3-15 補(bǔ)碼兩位乘法運(yùn)算規(guī)則補(bǔ)碼兩位乘法運(yùn)算規(guī)則Yn-1n-1Yn nYn+1n+1操操 作作Yn-1n-1Yn nYn+1n+1操操 作作000部分積部分積+0,右移,右移兩位兩位100部分積部分積+2- -X補(bǔ)補(bǔ),右移兩位右移兩位001部分積部分積+X補(bǔ)補(bǔ),右移兩位右移兩位101部分積部分積+- -X補(bǔ)補(bǔ),右移兩位右移兩位010部分積部分積+X補(bǔ)補(bǔ),右

51、移兩位右移兩位110部分積部分積+- -X補(bǔ)補(bǔ),右移兩位右移兩位011部分積部分積+2X補(bǔ)補(bǔ),右移兩位右移兩位111部分積部分積+0,右移,右移兩位兩位 進(jìn)行定點(diǎn)補(bǔ)碼兩位乘法運(yùn)算需注意如下問進(jìn)行定點(diǎn)補(bǔ)碼兩位乘法運(yùn)算需注意如下問題:題:、判別位。乘數(shù)的判別位涉及其附加位、判別位。乘數(shù)的判別位涉及其附加位和符號(hào)位。在乘數(shù)的最低位后,一定要增和符號(hào)位。在乘數(shù)的最低位后,一定要增加一位附加位,其初始值為加一位附加位,其初始值為0。定點(diǎn)補(bǔ)碼。定點(diǎn)補(bǔ)碼兩位乘法是從判別乘數(shù)的最低兩位與附加兩位乘法是從判別乘數(shù)的最低兩位與附加位的組合值開始的。位的組合值開始的。 乘數(shù)的符號(hào)位要視數(shù)值部分的位數(shù)來決乘數(shù)的符號(hào)位

52、要視數(shù)值部分的位數(shù)來決定。若數(shù)值部分的位數(shù)為偶數(shù),則必須定。若數(shù)值部分的位數(shù)為偶數(shù),則必須采用采用2位符號(hào)位;否則,就采用位符號(hào)位;否則,就采用1位符號(hào)位符號(hào)位。這就是說,乘數(shù)的數(shù)值部分連同符位。這就是說,乘數(shù)的數(shù)值部分連同符號(hào)位要保證為偶數(shù)。實(shí)際上,我們所使號(hào)位要保證為偶數(shù)。實(shí)際上,我們所使用的計(jì)算機(jī),一般地說,其字長(zhǎng)均為偶用的計(jì)算機(jī),一般地說,其字長(zhǎng)均為偶數(shù),因此,若乘數(shù)的位數(shù)(包括數(shù),因此,若乘數(shù)的位數(shù)(包括1位符號(hào)位符號(hào)位)為計(jì)算機(jī)的字長(zhǎng),符號(hào)位取位)為計(jì)算機(jī)的字長(zhǎng),符號(hào)位取1位即可。位即可。、加法操作的次數(shù)。定點(diǎn)補(bǔ)碼兩位乘法、加法操作的次數(shù)。定點(diǎn)補(bǔ)碼兩位乘法運(yùn)算所做加法操作的次數(shù)為乘

53、數(shù)的位數(shù)運(yùn)算所做加法操作的次數(shù)為乘數(shù)的位數(shù)(包括符號(hào)位)除以(包括符號(hào)位)除以2的值。的值。、部分積的符號(hào)位??刹捎?、部分積的符號(hào)位。可采用3位符號(hào)位,位符號(hào)位,以保留正確的進(jìn)位及符號(hào)位。以保留正確的進(jìn)位及符號(hào)位。、符號(hào)位擴(kuò)展。在進(jìn)行定點(diǎn)補(bǔ)碼兩位乘、符號(hào)位擴(kuò)展。在進(jìn)行定點(diǎn)補(bǔ)碼兩位乘法運(yùn)算中,在進(jìn)行右移法運(yùn)算中,在進(jìn)行右移2位操作時(shí),要注位操作時(shí),要注意符號(hào)位的擴(kuò)展,即右移時(shí)符號(hào)要一起意符號(hào)位的擴(kuò)展,即右移時(shí)符號(hào)要一起移,空出的符號(hào)位以符號(hào)的原值填充。移,空出的符號(hào)位以符號(hào)的原值填充。、最后一步的移位。視乘數(shù)的符號(hào)位而、最后一步的移位。視乘數(shù)的符號(hào)位而定。若符號(hào)位為定。若符號(hào)位為2位,則不用移位

54、;若符位,則不用移位;若符號(hào)位為號(hào)位為1位,則要進(jìn)行右移位,則要進(jìn)行右移1位的操作。位的操作。 例:已知例:已知X=0.0110011, Y=-0.0110010,求,求XY=? 解:解:X補(bǔ)補(bǔ)=000.0110011, Y補(bǔ)補(bǔ)=1.1001110, -X補(bǔ)補(bǔ)=111.1001101 2X補(bǔ)補(bǔ)=000.1100110, 2-X補(bǔ)補(bǔ)=111.0011010部分積部分積乘數(shù)乘數(shù) 附加位附加位說明說明 000 0000000+)111 00110101 1001110 0初始狀態(tài)初始狀態(tài)Cn-1CnCn+1=100,+2- -X補(bǔ)補(bǔ) 111 0011010 111 1100110+)000 0000

55、0001 0110011 1右移兩位,右移兩位,Cn-1CnCn+1=111,+0 111 1100110 111 1111001+)000 01100111 0101100 1右移兩位,右移兩位,Cn-1CnCn+1=001,+X補(bǔ)補(bǔ) 000 0101100 000 0001011+)111 10011010 0101011 0右移兩位,右移兩位,Cn-1CnCn+1=110,+- -X補(bǔ)補(bǔ) 111 1011000 111 11011000 0010101 1最后一次右移一位最后一次右移一位 所以所以XY補(bǔ)補(bǔ)=1.1101100 0001010 XY=-0.0010011 11101103.

56、3.4 除法運(yùn)算除法運(yùn)算1、原碼除法、原碼除法 兩個(gè)原碼表示的數(shù)相除,其商的符號(hào)為相除兩個(gè)原碼表示的數(shù)相除,其商的符號(hào)為相除兩數(shù)符號(hào)的異或值,數(shù)值則用兩數(shù)的絕對(duì)值兩數(shù)符號(hào)的異或值,數(shù)值則用兩數(shù)的絕對(duì)值相除求得。相除求得。設(shè)設(shè)x原原=xs.x1x2xn,y原原=ys.y1y2yn,則則q原原=(xs ys)|(x1x2xn / y1y2yn) 定點(diǎn)機(jī)中的除法運(yùn)算對(duì)被除數(shù)和除數(shù)有一定點(diǎn)機(jī)中的除法運(yùn)算對(duì)被除數(shù)和除數(shù)有一定的約束。對(duì)小數(shù)除法,要求定的約束。對(duì)小數(shù)除法,要求0|被除數(shù)被除數(shù)|除數(shù)除數(shù)|,同時(shí)必須規(guī)定除數(shù),同時(shí)必須規(guī)定除數(shù)0。商的位。商的位數(shù)一般與操作數(shù)位數(shù)相等。數(shù)一般與操作數(shù)位數(shù)相等。(

57、1)恢復(fù)余數(shù)法)恢復(fù)余數(shù)法 原碼除法也是從手工除法演變而來的。先原碼除法也是從手工除法演變而來的。先看手工除法的計(jì)算過程??词止こǖ挠?jì)算過程。 設(shè)定設(shè)定 x=0.1011,y=0.1101,求,求x/y=? 手工計(jì)算二進(jìn)制除法的規(guī)則是:手工計(jì)算二進(jìn)制除法的規(guī)則是:、比較被除數(shù)與除數(shù)的大小。根據(jù)前面的、比較被除數(shù)與除數(shù)的大小。根據(jù)前面的約定,被除數(shù)一定小于除數(shù),則上商約定,被除數(shù)一定小于除數(shù),則上商“0”不做減法,在被除數(shù)最低位后補(bǔ)不做減法,在被除數(shù)最低位后補(bǔ)“0”得到得到新余數(shù),再與右移一位的除數(shù)比較;新余數(shù),再與右移一位的除數(shù)比較;、如果余數(shù)大于除數(shù),則上商、如果余數(shù)大于除數(shù),則上商“1”

58、,并,并執(zhí)行一次減法,得到一個(gè)新的余數(shù),將執(zhí)行一次減法,得到一個(gè)新的余數(shù),將余數(shù)最低位補(bǔ)余數(shù)最低位補(bǔ)“0”,再與右移一位的除,再與右移一位的除數(shù)比較;如果余數(shù)小于除數(shù),則上商數(shù)比較;如果余數(shù)小于除數(shù),則上商“0”不做減法,將余數(shù)最低位補(bǔ)不做減法,將余數(shù)最低位補(bǔ)“0”,再與,再與右移一位的除數(shù)比較。右移一位的除數(shù)比較。、重復(fù)步驟、重復(fù)步驟,直到余數(shù)為,直到余數(shù)為0或得到的或得到的商的位數(shù)滿足精度要求為止。商的位數(shù)滿足精度要求為止。 在計(jì)算機(jī)中實(shí)現(xiàn)除法運(yùn)算要考慮硬件電在計(jì)算機(jī)中實(shí)現(xiàn)除法運(yùn)算要考慮硬件電路結(jié)構(gòu)特點(diǎn),因此在計(jì)算機(jī)中除法有如路結(jié)構(gòu)特點(diǎn),因此在計(jì)算機(jī)中除法有如下改進(jìn)做法。下改進(jìn)做法。、計(jì)算

59、機(jī)直接做減法試探,根據(jù)所得余、計(jì)算機(jī)直接做減法試探,根據(jù)所得余數(shù)的符號(hào)來判斷被除數(shù)(余數(shù))與除數(shù)數(shù)的符號(hào)來判斷被除數(shù)(余數(shù))與除數(shù)的大小。的大小。 如果余數(shù)符號(hào)為如果余數(shù)符號(hào)為0(差為正數(shù)),表示(差為正數(shù)),表示被除數(shù)(余數(shù))大于除數(shù)(夠減),上被除數(shù)(余數(shù))大于除數(shù)(夠減),上商商“1”;如果余數(shù)符號(hào)為;如果余數(shù)符號(hào)為1(差為負(fù)(差為負(fù)數(shù)),表示被除數(shù)(余數(shù))小于除數(shù)數(shù)),表示被除數(shù)(余數(shù))小于除數(shù)(不夠減),上商(不夠減),上商“0”,不夠減而減了,不夠減而減了,說明此次減法運(yùn)算是不該進(jìn)行的,必須說明此次減法運(yùn)算是不該進(jìn)行的,必須加上除數(shù)以恢復(fù)原來的余數(shù)。加上除數(shù)以恢復(fù)原來的余數(shù)。、手工

60、算法中,被除數(shù)(余數(shù))補(bǔ)、手工算法中,被除數(shù)(余數(shù))補(bǔ)“0”與右移一位的除數(shù)比較,計(jì)算機(jī)是用左與右移一位的除數(shù)比較,計(jì)算機(jī)是用左移被除數(shù)(余數(shù))來實(shí)現(xiàn)的。移被除數(shù)(余數(shù))來實(shí)現(xiàn)的。、手工除法中,從高位向低位逐位求商。、手工除法中,從高位向低位逐位求商。在計(jì)算機(jī)中,直接把求得的每一位商寫在計(jì)算機(jī)中,直接把求得的每一位商寫進(jìn)商寄存器不易實(shí)現(xiàn),通常是把求得的進(jìn)商寄存器不易實(shí)現(xiàn),通常是把求得的每一位商上到商值寄存器的最低一位。每一位商上到商值寄存器的最低一位。做法是:每次上商前將商值寄存器與被做法是:每次上商前將商值寄存器與被除數(shù)(余數(shù))寄存器聯(lián)合左移一位,空除數(shù)(余數(shù))寄存器聯(lián)合左移一位,空出最低一

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論