運算方法和運算器_第1頁
運算方法和運算器_第2頁
運算方法和運算器_第3頁
運算方法和運算器_第4頁
運算方法和運算器_第5頁
已閱讀5頁,還剩69頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

計算機組成原理及匯編語言主講老師:湯丹第二章、運算方法和運算器要點:1、掌握:數(shù)與字符在計算機內的表示,定、浮點數(shù)表示方法及標準格式。2、理解:進位鏈,ALU組成,補碼加減,移位,浮點加減,無符號數(shù)一位乘、除,定點數(shù)的四則運算,陣列乘法器,陣列除法器,邏輯運算。3、了解:BCD碼,ASCII碼,74182、74182ALU邏輯電路圖,浮點乘,除法,浮點運算器。兩種數(shù)據(jù)表示方式:定點數(shù)、浮點數(shù)。

1.定點數(shù) 定點數(shù)是小數(shù)點位置固定不變的數(shù)。由于小數(shù)點位置固定,小數(shù)點就不再使用記號“·”來表示。我們通常將定點數(shù)分為定點小數(shù)和定點整數(shù)。一、數(shù)據(jù)與字符的機內表示定點小數(shù)

定點小數(shù)的表示范圍是:≤|x|≤1-定點整數(shù)

定點整數(shù)的表示范圍是:1≤|x|≤-12.浮點數(shù)

N=×M式中M稱為數(shù)N的尾數(shù)(mantissa),是一個純小數(shù);E為數(shù)N的階碼(exponent),是一個整數(shù),J稱為比例因子的底數(shù)(常取2)。若不對浮點數(shù)的表示作出明確規(guī)定,同一個浮點數(shù)的表示就不是唯一的。例如11.01也可以表示成0.01101×,0.1101×等等。為了提高數(shù)據(jù)的表示精度,當尾數(shù)的值不為0時,其絕對值應大于等于0.5,即尾數(shù)域的最高有效位應為1,否則要以修改階碼同時左右移小數(shù)點的方法,使其變成這一要求的表示形式,這稱為浮點數(shù)的規(guī)格化表示。例:計算機浮點數(shù)格式如下,寫出x=0.0001101B的規(guī)格化形式,階碼是補碼,尾數(shù)是原碼。x=0.0001101=0.1101*2-3又[-3]補=[-001B]補=[1011]補=1101B所以規(guī)格化浮點數(shù)形式是110101101000寫出二進制數(shù)-101.1101B的浮點數(shù)形式,設階碼取4位補碼,尾數(shù)是8位原碼。-101.1101=-0.1011101*浮點形式為:階碼0011尾數(shù)11011101補充解釋:階碼0011中的最高位“0”表示指數(shù)的符號是正號,后面的“011”表示指數(shù)是“3”;尾數(shù)11011101的最高位“1”表明整個小數(shù)是負數(shù),余下的1011101是真正的尾數(shù)。IEEE754標準中(IEEE為美國電子電機工程師學會)溢出當數(shù)據(jù)小于定點數(shù)能表示的最小值時,計算機將它們作0處理,稱為下溢;大于定點數(shù)能表示的最大值時,計算機將無法表示,稱為上溢,上溢和下溢統(tǒng)稱為溢出。機器零當一個浮點數(shù)的尾數(shù)為0時,不論其階碼為何值,或者當階碼的值遇到比它能表示的最小值還小時,不管其尾數(shù)為何值,計算機都把該浮點數(shù)看成0值,稱為機器零。8位二進制數(shù)的浮點數(shù)規(guī)格化浮點數(shù)分布示意圖階碼占3位,尾數(shù)占5位(各包括1位符號位)3.數(shù)的機器碼表示帶符號數(shù)的表示機器數(shù)與真值原碼反碼補碼移碼真值:數(shù)據(jù)的實際值機器數(shù):機器中編碼表示的數(shù)帶符號數(shù)的表示通常數(shù)的最高位為符號位,對于字長8位機器數(shù):

D7為符號位:0表示“+”,1表示“—”。符號數(shù)碼化了。

D6~D0為數(shù)字位。如:X=(01011011)2=+91X=(11011011)2=-91

連同符號位在一起作為一個數(shù)稱為機器數(shù), 機器數(shù)的數(shù)值稱為的真值。如:N1=+1011011N2=-1011011為真值

01011011 11011011為機器數(shù)

原碼:

正數(shù)符號位用“0”表示,負數(shù)符號用“1”表示, 這種表示法稱為原碼。

X=+105[X]原=01101001 X=-105[X]原=11101001

符號數(shù)值 原碼表示簡單,真值轉換方便,減法不方便。 引進反碼,補碼。反碼:

正數(shù)反碼表示與原碼相同,

(最高位“0”表示正,其余位為數(shù)值位。)

負數(shù)的反碼表示為負數(shù)原碼的符號位不變尾數(shù)按位取反。例: [+4]反

=0 0000100 [-4]反

=1 1111011 [+127]反=0 1111111 [-127]反=10000000 [+0]反

=00000000 [-0]反

=11111111補碼:

正數(shù)的補碼表示與原碼相同,

(最高位用“0”表示正,其余位為數(shù)值位.)

負數(shù)的補碼表示為它的反碼+1。

[+127]原=01111111[+0]原=00000000 [-127]反=10000000[-0]反=11111111 [-127]補=10000001[-0]補=00000000引入原碼的目的:⑴使符號位能與有效值部分一起參加運算,從而簡化運算規(guī)則.

⑵使減法運算轉換為加法運算,進一步簡化計算機中運算器的線路設計

引進補碼以后,做原碼的減法與做補碼的加法結果相同但必須以⊕為模。先以十進制為例說明補碼的用法。 7-4=3 7-(10-6)=3 7+6=13-10=3∴6是4以10為模的補碼,減4就可以變成+6計算。對三位十進制數(shù)來講:916–317=599 916+683=1599-1000=599 則683是317以1000為模的補碼如何得到683? 1000-317=683(補碼)逐位減不必借位+1 1+999-317=1+682(反碼)從定義出發(fā)得出補碼求法:[X]補=Pn+XN位P進制的補碼,將Pn-1按位減去后再+1得到補碼。對于二進制補碼:

0111–0101=0010 7–5=2p=2,n=4,模24=10000=1111+1

1111–0101+1=1010+1=1011

Pn-1

0101的反碼0101補碼(即0101的反碼+1)

0111-0101=0010 0111+1011=10010-10000=0010

0101補碼

模[x]移=+x>x≥-移碼對于同一個整數(shù),其移碼與其補碼數(shù)值位完全相同,而符號位正好相反

例題:將十進制真值x=-127,-1,0,+1,+127分別表示為8位原碼、反碼、補碼、移碼值。

[解:]

原碼反碼補碼移碼-12711111111100000001000000100000001-110000001111111101111111101111111-010000000111111110000000010000000+000000000000000000000000010000000+100000001000000010000000110000001+12701111111011111110111111111111111三種碼制之間關系及特點:[[X]補]補=[X]原[[X]反]反=[X]原正數(shù):原,反,補相同負數(shù):原,反,補不同,但最高位為1。負數(shù):

原→反,符號位不變,尾數(shù)按位求反 原→補,符號位不變,尾數(shù)按位求反+1

補→原,符號位不變,尾數(shù)求反+1

反→原,符號位不變,尾數(shù)求反.小結“0”的表示

原碼 反碼 補碼[+0]原=000…00 [+0]反=000…00 [+0]補=000…00[-0]原=100…00 [-0]反=111…11 [-0]補=000…00

數(shù)的表示范圍:8位二進制數(shù) 無符號數(shù):0~255

原碼:-127~+127

反碼:-127~+127

補碼:-128~+127 在補碼中用(-128)代替了(-0)

: (-128)沒有相對應的原碼和反碼常用8421碼,每一位十進制數(shù)用四位二進制編碼表示。1111B 9D 1001BCD 10D00010000BCD

BCD碼與二進制數(shù)之間轉換沒有直接關系, 必須先轉換成十進制,然后轉換成二進制。例:11111111B=255D=0010,0101,0101BCD 0010,0101,0101BCD=255D=11111111B4.BCD碼5.非數(shù)值數(shù)據(jù)在機內的表示字符:主要指數(shù)字、字母、通用符號、控制符號等ASCII碼

000

001

010

011

100

101

110

111

0000

NUL

DEL

SP

0

@

P

‘p

0001

SOH

DC1

!

1

A

Q

a

q

0010

STX

DC2

"

2

B

R

b

r

0011

ETX

DC3

#

3

C

S

c

s

0100

EOT

DC4

$

4

D

T

d

t

0101

ENQ

NAK

%

5

E

U

e

u

0110

ACK

SYN

&

6

F

V

f

v

0111

DEL

ETB

7

G

W

g

w

1000

BS

CAN

(

8

H

X

h

x

1001

HT

EM

)

9

I

Y

i

y

1010

LF

SUB

*

:

J

Z

j

z

1011

VT

ESC

+

;

K

[

k

{

1100

FF

FS

,

<

L

\

l

|

1101

CR

GS

-

=

M

]

m

}

1110

SO

RS

.

>

N

n

~

1111

SI

US

/

?

O

_

o

DEL

漢字漢字的編碼有輸入碼、內碼、字形碼三種輸入碼數(shù)字編碼、拼音碼、字形編碼

;內碼用于漢字信息的存儲、交換檢索等操作的機內代碼;字形碼點陣表示法、矢量表示法;二、定點加法、減法運算1.補碼運算方法的特點:參與運算的數(shù)均用補碼表示,補碼運算的結果亦為補碼按二進制運算規(guī)則,逢二進一符號位要作為數(shù)的一部分一起參加運算,結果的符號位由運算得出符號位運算產(chǎn)生的進位要丟掉,產(chǎn)生的和即為結果的符號位【例】x=0.1010,y=-0.0101,求

[x]補+[y]補=

?[解:][x]補=0.1010,[y]補=1.1011[x]補0.1010

+[y]補1.1011[x+y]補10.0101

丟掉所以[x]補+[y]補=+1.01011.補碼加法的公式是:

[x]補

+

[y]補

=

[x+y]補(mod2)2.補碼減法的公式是:

[x-y]補=[x]補-[y]補=[x]補+[-y]補(mod2)【例】x=-0.1100,y=-0.0110,求[x]補

-[y]補=?[解:][x]補=1.0100,[y]補=1.1010,[-y]補=0.0110

[x]補1.0100+[-y]補0.0110[x-y]補1.1010所以[x]補-[y]補=

=1.1010x-y=-0.0110

3.溢出概念及檢測兩個正數(shù)相加,結果大于機器所能表示的最大正數(shù),稱為正溢。而兩個負數(shù)相加,結果小于機器所能表示的最小負數(shù),稱為負溢。兩種檢測方法

變形補碼操作檢測方法

單符號位操作檢測方法

變形補碼操作檢測方法采用雙符號位的補碼,正數(shù)的符號用“00”表示,負數(shù)的符號用“11”表示:[x]補={x2>x≥04+x0>x≥-2采用變形補碼后,加減法的運算公式同樣成立。(1)兩個符號位都看作數(shù)碼一樣參加運算;(2)兩數(shù)進行以4為模的加法,即最高符號位上產(chǎn)生的進位要丟掉。采用變形補碼后,正數(shù)的符號以“00”表示,負數(shù)的符號以“11”表示。運算結果也應滿足此要求,若運算結果的兩個符號位相同,表示運算結果正確,若運算結果的兩個符號位不同,表示產(chǎn)生了溢出。故溢出邏輯表達式為V=Sf1⊕Sf2

,其中Sf1與Sf2分別為第一符號位和第二符號位。不論溢出與否,第一符號位永遠表示結果的正確符號,若兩個符號位為“01”,表示正溢出;若兩個符號位為“10”,表示負溢出。單符號位操作檢測方法當操作數(shù)中的加數(shù)與被加數(shù)符號相同時,若運算結果的符號與操作數(shù)的符號不一致,表示溢出;否則,表示沒有溢出。而當加數(shù)和被加數(shù)符號不同時,相加運算的結果是絕對不會溢出的。

V=Cf⊕C0

其中Cf為符號位產(chǎn)生的進位,C0為最高有效位產(chǎn)生的進位典型門電路的邏輯符號和時間延遲門的名稱

門的功能

邏輯符號(正邏輯)

以T的個數(shù)表示的

時間延遲

與非

NAND

T或非

NOR

T非

NOT

T與

AND

2T或

OR

2T異或

XOR

3T異或非

XNOR

3T接線邏輯

(與或非)

AOI

T+Trc

二進制加/減法器輸入輸出AiBiCiSiCi+10000000110010100110110010101011100111111一位全加器真值表

Si=Ai⊕Bi⊕CiCi+1=AiBi+BiCi+CiAi兩個二進制數(shù)字Ai,Bi和一個進位輸入Ci相加,產(chǎn)生一個和輸出Si,以及一個進位輸出Ci+1。一位全加器(FA)邏輯電路Si的時間延遲為6T(每級異或門延遲3T),Ci+1的時間延遲為5T一位全加器(FA)的邏輯表達式還可以用“與或非”形式寫出---見圖(b)補碼運算的二進制加法/減法器的邏輯結構圖演示十進制加/減法器【例2.2.9】

28+9=37

00101000+00001001=?

[解:]

十位

個位

0010

1000

+1←┐1001

0011└─10001

+

0110校正值

0011

0111

一位BCD加法器單元的邏輯結構演示

三、定點乘法運算

1.原碼1位乘法(定點小數(shù))被乘數(shù)

[x]原=xf.x0x1x2…xn

乘數(shù)

[y]原=yf.y0y1y2…yn則乘積

[z]原=(xf⊕yf).(0.x0x1x2…xn)(0.y1y2…yn)式中,xf為被乘數(shù)符號,yf為乘數(shù)符號?!纠?/p>

x

=0.1101,y=0.1011,用原碼一位乘法計算x·y

=?

[解:]

求解過程如下:

演示

尾數(shù)為n,則加n次,右移n次符號位數(shù)值位分開運算結果的數(shù)值部分是乘數(shù)和被乘數(shù)數(shù)值位的乘積結果的符號位是乘數(shù)和被乘數(shù)符號位的異或原碼一位乘法邏輯結構原理圖R0:存放部分積z,初始狀態(tài)為0;R2:存放被乘數(shù)x;R1:存放乘數(shù)y;R0、R1是具有右移功能的移位寄存器,由LDR0,LDR1控制其移位。加法器:完成部分積與位積的累加;計數(shù)器:對移位的次數(shù)進行計數(shù),以便判斷乘法運算是否結束。當計數(shù)器i=n時,計數(shù)器i的溢出信號使控制觸發(fā)器Cx置0,關閉時序脈沖T,乘法操作結束。補碼1位乘法

補碼一位乘法運算規(guī)則(1)如果yn=yn+1,部分積[zi]加0,再右移一位;(2)如果ynyn+1=01,部分積加[x]補,再右移一位;(3)如果ynyn+1=10,部分積加[-x]補,再右移一位;這樣重復進行n+1步,但最后一步不移位。包括一位符號位,所得乘積為2n+1位,其中n為尾數(shù)位數(shù)。【例】

x

=0.1101,y=0.1011,用補碼一位乘法計算x

·y

=?[解:]

求解過程如下:

演示

尾數(shù)為n,則加n+1次,右移n次符號位由運算得來補碼一位乘法邏輯原理圖執(zhí)行補碼一位乘法的總時間為

tm=(n+1)ta+ntr

其中n為尾數(shù)位數(shù),ta為執(zhí)行一次加法操作的時間,tr為執(zhí)行一次移位操作的時間不帶符號的陣列乘法器

演示

并行乘法器比串行效率大大提高m位×n位不帶符號的陣列乘法器邏輯框圖四、定點除法運算被除數(shù)x,其原碼為 [x]原=xf.x1x2…xn除數(shù)y,其原碼為 [y]原=

yf.

y1y2…yn

設商為q=x/y,其原碼為

[q]原=(xf⊕yf).(x1x2…xn/y1y2…yn)

原碼1位除法加減交替法原碼加減交替法的規(guī)則是:當余數(shù)為正時,商“1”,余數(shù)左移一位減除數(shù);當余數(shù)為負時,商“0”,余數(shù)左移一位,加除數(shù)。當運算過程中出現(xiàn)不夠減的情況,不必恢復余數(shù),而是根據(jù)余數(shù)的符號,繼續(xù)往下運算,因此步數(shù)固定,控制簡單。運算規(guī)則:

當余數(shù)為正時,商1,余數(shù)左移一位,減除數(shù);當余數(shù)為負時,商0,余數(shù)右移一位,加除數(shù)?!纠?】x=0.1001,y=0.1011,用加減交替法求x/y.解:[x]原=[x]補=x=0.1001,[y]補=0.1011,[-y]補=1.010【例】x=0.101001,y=0.111,求

x÷y

[解:]

求解過程如下:

演示

練習時間用補碼運算求[X.Y]補(1)x=-3,y=-7(2)x=0.101B,y=-0.011B五、邏輯運算邏輯非

xi

xi

0110【例】

x1=01001011,x2=11110000,求x1,x2。[解:]x1=10110100x2=00001111邏輯或

000011101111【例】

x=10100001,y=10011011,求x∨y。[解:]10100001x∨10011011y10111011z即x∨y=10111011邏輯與000010100111【例】

x=10111001,y=11110011,求x∧y。[解:]10111001x∧11110011y10110001z即x∧y=10110001邏輯異或

000011101110【例】

x=10101011,y=11001100,求x⊕y。[解:]10101011x⊕11001100y01100111z即x⊕y=01100111移位操作算術移位:左移相當于”*2”,右移相當于”/2”;左移末位補”0”,右移首位補符號位;邏輯移位左移、右移,空位均補”0”,循環(huán)移位(參見web計算機組成原理2.4)邏輯門符號表示六、定點運算器的組成和結構運算器運算器是數(shù)據(jù)的加工處理部件,是CPU的重要組成部分,基本構件包括:算術/邏輯運算單元(ALU)數(shù)據(jù)寄存器累加器多路轉換器數(shù)據(jù)總線運算器的功能: ⑴首要功能是完成數(shù)據(jù)的算術和邏輯運算。 由ALU實現(xiàn):給出運算結果和結果的某些特征。 ⑵第二項功能是暫存運算數(shù)據(jù)和中間結果。 由通用寄存器實現(xiàn):區(qū)別于專用寄存器。 ⑶第三項功能是用硬件完成乘除指令運算。 由乘商寄存器實現(xiàn):能自行左右移位(專用)。 ⑷第四項功能是作為處理機內傳送數(shù)據(jù)的通路。運算器的控制與操作: ⑴正確地向運算器提供控制信號,解決正確向運算器提供參加運算數(shù)據(jù)的種種問題。 ⑵給出正確的數(shù)據(jù)來源何正確的控制信號,運算器就執(zhí)行規(guī)定的操作功能。 ⑶在計算機整機運行過程中,運算器用到的控制信號是由計算機的控制器部件提供的。1.功能算術/邏輯運算單元(ALU)ALU的邏輯結構原理圖

Fi=Yi⊕Xi⊕Cn+iCn+i+1=Yi+XiCn+i+Cn+iXi多功能算術/邏輯運算單元(ALU),不僅具有多種算術運算和邏輯運算的功能,而且具有先行進位邏輯,從而能實現(xiàn)高速運算。2.Xi,Yi與控制參數(shù)和輸入量

Xi=S2S3+S2S3(Ai+Bi)+S2S3(Ai+Bi)+S2S3AiYi=S0S1Ai+S0S1AiBi+S0S1AiBiCn+4=G+PCn先行進位邏輯;3.算術邏輯運算的實現(xiàn)

控制端M=0時,進行算術操作;M=1時,封鎖了各位的進位輸出,進行邏輯操作;

正邏輯操作(即高電平為“1”,低電平為“0”)。反邏輯相反

4.內部總線總線,就是一個或多個信息源傳送信息到多個目的的數(shù)據(jù)通路,它是多個部件之間傳送信息的一級傳輸線內部總線是指CPU內各部件的連線;外部總線是指系統(tǒng)總線,即CPU與存儲器、I/O系統(tǒng)之間的連線。

單向總線,就是信息只能向一個方向傳送。所謂雙向總線,就是信息可以向兩個方向傳送,即可以發(fā)送數(shù)據(jù),也可以接收數(shù)據(jù)。邏輯電路往往是三態(tài)的,即輸出電平有三種狀態(tài):邏輯“1”、邏輯“0”和“浮空”狀態(tài)。

三種總線結構形式單總線雙總線 三總線演示

演示

演示

操作速度較慢控制電路簡單操作速度較快控制電路復雜七、浮點運算方法和浮點運算器⒈浮點運算器是主要用于對計算機內的浮點數(shù)進行運算的部件。⒉浮點數(shù)通常由階碼和尾數(shù)兩部分組成,階碼是整數(shù)形式,尾數(shù)是定點小數(shù)形式,執(zhí)行的操作不相同。⒊浮點運算器總是由處理階碼和處理尾數(shù)的兩部分邏輯線路組成。1.浮點加法和減法1、0操作數(shù)的檢查;2、比較階碼大小并完成對階;3、尾數(shù)進行加或減運算;4、結果規(guī)格化并進行舍入處理。

【例】

設x=2010×0.11011011,y=2100×(-0.10101100),求x+y。[解:]為了便于直觀理解,假設兩數(shù)均以補碼表示,階碼采用雙符號位,尾數(shù)采用單符號位,則它們的浮點表示分別為[x]?。?0010,0.11011011[y]?。?0100,1.01010100<1>求階差并對階△E補=Ex-Ey=[Ex]補+[-Ey]補=00010+11100=11110即△E為-2,x的階碼小,應使Mx右移兩位,Ex加2,[x]浮=00100,0.00110110(11)其中(11)表示Mx右移2位后移出的最低兩位數(shù)。<2>尾數(shù)求和0.00110110(11)+1.01010100

1.10001010(11)<3>規(guī)格化處理

尾數(shù)運算結果的符號位與最高數(shù)值位同值,應執(zhí)行左規(guī)處理,結果為1.00010101(10),階碼為00011。(左移1位,階碼減1)書上P64有錯,不等應為11.0*****而不

溫馨提示

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

評論

0/150

提交評論