80x86匯編語言程序設(shè)計課件-第1章基礎(chǔ)知識_第1頁
80x86匯編語言程序設(shè)計課件-第1章基礎(chǔ)知識_第2頁
80x86匯編語言程序設(shè)計課件-第1章基礎(chǔ)知識_第3頁
80x86匯編語言程序設(shè)計課件-第1章基礎(chǔ)知識_第4頁
80x86匯編語言程序設(shè)計課件-第1章基礎(chǔ)知識_第5頁
已閱讀5頁,還剩36頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

匯編語言程序設(shè)計

第1章基礎(chǔ)知識

第一章基礎(chǔ)知識

1.1什么是匯編語言1.2進(jìn)位計數(shù)制及轉(zhuǎn)換方法1.3

計算機(jī)中的數(shù)據(jù)組織1.4

二進(jìn)制的算術(shù)運(yùn)算和邏輯運(yùn)算

1.1

什么是匯編語言

1.1.1

機(jī)器語言與匯編語言1.1.2

高級語言1.1.3

匯編語言的特點(diǎn)1.1.4

匯編語言與高級語言的比較1.1.5匯編語言的應(yīng)用領(lǐng)域1.1.6舉例1.1.1機(jī)器語言與匯編語言

1.機(jī)器語言以二進(jìn)制形式的指令組成的指令集合稱為計算機(jī)的機(jī)器語言。例如:計算z=x+y其中x=5,y=6;機(jī)器語言指令為:

A00000H

;將變量x中的內(nèi)容5送到寄存器al02060100H;將al中的內(nèi)容5加變量y中的內(nèi)容6,結(jié)果送寄存器al中。

A20200H;將最終結(jié)果送變量z中。

2.匯編語言

用簡單的容易記住的符號來代替用“0”或“1”來表示的機(jī)器語言就是匯編語言。例如上例:計算z=x+y其中x=5,y=6;機(jī)器語言(用十六進(jìn)制表示)

匯編語言

A00000Hmoval,x02060100Haddal,yA20200Hmovz,al3.匯編語言源程序與匯編程序

用匯編語言書寫的程序稱為匯編語言源程序,匯編語言源程序是在編輯程序中形成的。把源程序轉(zhuǎn)換變?yōu)橄鄳?yīng)的目標(biāo)程序(即機(jī)器語言程序)的翻譯程序稱為匯編程序(匯編器)。這個翻譯過程稱為匯編(宏匯編)。匯編語言源程序由翻譯程序翻譯成代碼程序(即機(jī)器語言程序)才能在機(jī)器中執(zhí)行。翻譯成的機(jī)器語言代碼程序稱為相應(yīng)源程序的目標(biāo)代碼。

目標(biāo)代碼程序是源匯編程序的翻譯后的程序需要經(jīng)過連接程序?qū)⒈境绦蛩枰钠渌繕?biāo)代碼連接定位形成可執(zhí)行文件。圖1-1

編輯、匯編與連接過程1.1.2高級語言

高級語言包括:面向過程的語言和和面向?qū)ο笳Z言。

面向過程語言:采用的是人們所熟悉的、便于記憶的和容易理解的結(jié)構(gòu)化的語言。

面向?qū)ο蟮恼Z言:是從面向過程語言發(fā)展而來的,它改變了編程者的思維方式,使編程者從結(jié)構(gòu)化程序設(shè)計到面向?qū)ο蟮某绦蛟O(shè)計,也就是把數(shù)據(jù)和處理數(shù)據(jù)的過程當(dāng)作一個整體來處理,這樣使程序設(shè)計更接近于自然語言,設(shè)計過程更簡單,設(shè)計出來的軟件質(zhì)量更高。當(dāng)前最常用的高級語言有:Basic、Pascal、C、C++、Java、VisualC++等。

1.1.3匯編語言的特點(diǎn)

匯編語言是程序設(shè)計語言的基礎(chǔ)語言,在程序設(shè)計語言中仍占有一定的地位,是唯一可以直接與計算機(jī)硬件打交道的語言。因此,在計算機(jī)底層設(shè)計中仍采用匯編語言進(jìn)行設(shè)計。匯編語言的主要特點(diǎn):1.匯編語言與機(jī)器指令一一對應(yīng),可充分理解計算機(jī)的操作過程。2.匯編語言是靠近機(jī)器的語言3.匯言程序效率高于高級語言1.1.4匯編語言與高級語言的比較1.程序

高級語言:面向問題。

匯編語言:面向機(jī)器。2.軟件開發(fā)

高級語言:節(jié)省軟件開發(fā)時間,但不允許程序員直接使用微處理器的集成電路芯片的許多特性(寄存器、標(biāo)志等)。

匯編語言:

程序編寫比高級語言困難,要首先了解微機(jī)的內(nèi)部結(jié)構(gòu),才能充分地發(fā)揮匯編語言的作用。3.代碼生成

高級語言:

高級語言編譯后產(chǎn)生的目標(biāo)代碼程序比較長。

匯編語言:

匯編語言編譯后產(chǎn)生的目標(biāo)代碼程序短,因而,匯編語言程序執(zhí)行速度快,所占內(nèi)存少。

1.1.5匯編語言的應(yīng)用領(lǐng)域了解計算機(jī)硬件資源嵌入式系統(tǒng)的底層設(shè)計操作系統(tǒng)的核心部分的設(shè)計是實(shí)時控制系統(tǒng)的軟件設(shè)計接口電路的初始化程序外部設(shè)備的底層驅(qū)動程序復(fù)雜的算法優(yōu)化win32匯編的應(yīng)用領(lǐng)域在Windows下的系統(tǒng)分析代碼優(yōu)化系統(tǒng)漏洞和病毒分析等逆向工程技術(shù)反匯編的代碼技術(shù)

通過逆向工程技術(shù)可以還原大型軟件系統(tǒng)底層邏輯以及頂層架構(gòu),通過反匯編的代碼可以加深對Windows底層理解,對高級語言的系統(tǒng)調(diào)試通過反匯編解決底層bug的能力。

1.2進(jìn)位計數(shù)制及轉(zhuǎn)換方法

1.2.1

常用的進(jìn)位計數(shù)制

1.2.2

數(shù)制之間的轉(zhuǎn)換

1.2.1常用的進(jìn)位計數(shù)制

數(shù)制包括進(jìn)位記數(shù)制和非進(jìn)位記數(shù)制,在進(jìn)位記數(shù)制中,數(shù)是按進(jìn)位的方式記數(shù)的,如:十進(jìn)制。在非進(jìn)位記數(shù)制中,用不同的符號表示不同的數(shù)據(jù),如:羅馬數(shù)字

Ⅲ→3,Ⅳ→4等。

1.十進(jìn)制記數(shù)法特點(diǎn):(1)它的數(shù)值部分用10個不同的數(shù)值符號來表示

0~9。(2)逢十進(jìn)一?!纠?-1】348.573=3×100+4×10+8+5×1/10+7×1/100+3×1/1000=3×102+4×101+8×100+5×10-1+7×10-2+3×10-3

其中

10N為權(quán),每一位基數(shù)的冪為權(quán),十進(jìn)制的基數(shù)就是10。一般式:

D=Dn-1×10n-1+Dn-2×10n-2+……+D1×101+

D0×100+D-1×10-1+D-2×10-2+……+D-m×10-m

=Di×10i

其中:n為整數(shù)位數(shù),m為小數(shù)位數(shù)。

D=0,1,2,3,4,5,6,7,8,9;

2.二進(jìn)制記數(shù)法特點(diǎn):(1)它的數(shù)值部分用2個不同的數(shù)值符號來表示0或1。(2)逢二進(jìn)一?!纠?-2】(11011.101)2=(1×24+1×23+0×22+1×21+1×20+1×2-1+0×2-2+1×2-3

)10=(16+8+2+1+0.5+0.125)10=(27.6125)10

通過此式可以看到完成了二進(jìn)制轉(zhuǎn)換成十進(jìn)制的轉(zhuǎn)換過程,這個轉(zhuǎn)換方法為按權(quán)展開法。一般式:B=Bn-1×2n-1+Bn-2×2n-2+……+B1×21+

B0×20

+B-1×2-1+B-2×2-2+……+B-m×2-m

=Bi×2I其中:n為整數(shù)位數(shù),m為小數(shù)位數(shù)。

B=0,1。3.八進(jìn)制特點(diǎn):(1)它的數(shù)值部分用8個不同的數(shù)值符號來表示

,0,1,2,3,……7。(2)逢八進(jìn)一。

【例1-3】(327)8=(3×82+2×81+7×80)10=(3×64+2×8

+7)10=(215)10

用按權(quán)展開法將八進(jìn)制的327O轉(zhuǎn)換成十進(jìn)制的215D。一般式:Q=Qn-1×8n-1+Qn-2×8n-2+……+Q1×81+

Q0×80+Q

-1×8-1+Q

-2×8-2+……+Q

-m×8-m

=Qi×8i其中:n為整數(shù)位數(shù),m為小數(shù)位數(shù)。

Q=0,1,2,3,4,5,6;

4.十六進(jìn)制

特點(diǎn):(1)數(shù)值部分用16個不同的數(shù)值符號來表示,

0,1,2,3…9,A,B,C,D,E,F(xiàn)。(2)逢十六進(jìn)一

?!纠?-4】將十六進(jìn)制327.A轉(zhuǎn)換成十進(jìn)制數(shù)(327.A)16=(3×162+2×161+7×160+10×16-1)10=(768+32

+7+0.625)10=(807.625)10用按權(quán)展開法將十六進(jìn)制327.AH轉(zhuǎn)換成十進(jìn)制的807.625D。一般式:H=Hn-1×16n-1+Hn-2×16n-2+……+H1×161+

H0×160+H

-1×16-1+H

-2×16-2+……+H

-m×16-m=H

-m×16-i

其中:n為整數(shù)位數(shù),m為小數(shù)位數(shù)。

H=0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F;5.進(jìn)位記數(shù)制小結(jié)

一般表達(dá)式:N=Nn-1×Jn-1+Nn-2×Jn-2+……+N1×J1+

N0×J0+N

-1×J-1+N

-2×J-2+……+N

-m×J-m=Ni×Ji

其中

N為數(shù)碼

,取決于J進(jìn)制的取值范圍,如二進(jìn)制數(shù)的取值范圍為0或1。

n為整數(shù)位數(shù)。

m為小數(shù)位數(shù)。

J為基數(shù)。

Ji為權(quán)

。

(i=0,1,2……n)

特點(diǎn):(1)數(shù)碼是所表示的實(shí)際值,這個實(shí)際值不僅取決于數(shù)碼本身,還取決于數(shù)碼在數(shù)中的位置。(2)任意進(jìn)制到十進(jìn)制的轉(zhuǎn)換采用的是按權(quán)展開法。

1.2.2數(shù)制之間的轉(zhuǎn)換

編寫程序時可以用十進(jìn)制、十六進(jìn)制、八進(jìn)制和二進(jìn)制,它們之間的轉(zhuǎn)換應(yīng)熟練掌握。

1.

二進(jìn)制數(shù)轉(zhuǎn)換成十進(jìn)制數(shù)二進(jìn)制數(shù)轉(zhuǎn)換成十進(jìn)制數(shù)采用的方法是按權(quán)展開法,即按權(quán)展開后再相加?!纠?-5】(111.101)2=(1×22+1×21+1×20+1×2-1+1×2-3

)10=(4+2+1+0.5+0.125)10=(7.625)102.十進(jìn)制數(shù)轉(zhuǎn)換成二進(jìn)制數(shù)十進(jìn)制數(shù)轉(zhuǎn)換成二進(jìn)制數(shù)包括:整數(shù)部分的轉(zhuǎn)換和小數(shù)部分的轉(zhuǎn)換,其轉(zhuǎn)換方法為:整數(shù)部分采用除2取余法或降冪法,小數(shù)部分采用乘2取整或降冪法。(1)整數(shù)【例1-6】用除2取余法計算215D=(

)B

∴215D=(B7B6B5B4B3B2B1B0)B=11010111B除2取余法也可以采用橫向列式的方法,將215寫在最右側(cè),逐步向左除2取余。(2)小數(shù)小數(shù)部分采用乘2取整或降冪法。1)乘2取整【例1-8】用乘2取整法計算0.6875D=(?)B∴0.6875D=(0.B—1B—2B—3B—4)B=0.1011B

(3)既有整數(shù)又有小數(shù)的情況

整數(shù)部分除2取余,小數(shù)部分乘2取整,也可用降冪法【例1-10】30.75D=(

?

)B1)整數(shù)部分采用除2取余法:137153011110余數(shù)

B4B3B2B1B0位置

30D=(

B4B3B2B1B0)B=11110B2)小數(shù)部分用乘2取整法計算0.75D=(

?

)B

0.75D=(0.B—1B—2

)B=0.11B∴30.75D=(B4B3B2B1B0。B—1B—2

)B=11110.11B3.十進(jìn)制數(shù)轉(zhuǎn)換成P進(jìn)制數(shù)

十進(jìn)制數(shù)轉(zhuǎn)換成P進(jìn)制數(shù)的方法同十進(jìn)制數(shù)轉(zhuǎn)換成二進(jìn)制的方法相同;數(shù)整數(shù)部分除P取余,小數(shù)部分乘P取整,也可用降冪法。

4.P進(jìn)制數(shù)轉(zhuǎn)換成十進(jìn)制數(shù)

P進(jìn)制數(shù)轉(zhuǎn)換成十進(jìn)制數(shù)用按權(quán)展開法,既按權(quán)展開再相加。

P=

Pi×JIP=P進(jìn)制所允許的數(shù)0,1……P—1J=P進(jìn)制的基數(shù),如二進(jìn)制的基數(shù)為2;八進(jìn)制的基數(shù)為8;十六進(jìn)制的基數(shù)為16。

n=整數(shù)的位數(shù)

m=小數(shù)的位數(shù)

5.八進(jìn)制與二進(jìn)制之間的轉(zhuǎn)換

因為:23=8

所以:一位八進(jìn)制的權(quán)相當(dāng)于3位二進(jìn)制數(shù)

八進(jìn)制

二進(jìn)制

0

0001

0012

0103

0114

1005

1016

1107

11110

00100011

001001

1)八進(jìn)制轉(zhuǎn)換成二進(jìn)制

【例1-11】(563)8

=(101110011)2【例1-12】(0.734)8=(0.111011100)2【例1-13】(563.734)8=(101110011.111011100)22)二進(jìn)制轉(zhuǎn)換成八進(jìn)制以小數(shù)點(diǎn)為基準(zhǔn),向左右每3位1組,既3位二進(jìn)制數(shù)為1位八進(jìn)制數(shù)?!纠?-14】(11101110011)2

=(3563)8【例1-15】(0.101011011)2=(0.533)8【例1-16】(11101110011.101011011)2=(3563.533)86.十六進(jìn)制與二進(jìn)制之間的轉(zhuǎn)換

因為:

24=16

所以:1位十六進(jìn)制的權(quán)相當(dāng)于4位二進(jìn)制數(shù)1)十六進(jìn)制轉(zhuǎn)換成二進(jìn)制

【例1-17】(3AB)16=(001110101011)2【例1-18】(0.7A53)16=(0.0111101001010011)2【例1-19】(3AB.7A53)16=(001110101011.0111101001010011)2

2)二進(jìn)制轉(zhuǎn)換成十六進(jìn)制

【例1-20】(1101111100011)2

=(1BE3)16【例1-21】(0.100101111)2

=(0.978)16

【例1-22】

(1101111100011.100101111)2

=(1BE3.978)16

16進(jìn)制2進(jìn)制00000100012001030011.......91001A1010B1011C1100D1101E1110F11117.

八進(jìn)制與十六進(jìn)制之間的轉(zhuǎn)換

以二進(jìn)制為橋梁進(jìn)行轉(zhuǎn)換

8→2→1616→2→8【例1-23】(765)8=(111110101)2=(1F5)16【例1-24】(0AB)16=(10101011)2=(253)8注意:十六進(jìn)制數(shù)以A,B,C,D,E,F(xiàn)打頭要在數(shù)的前面補(bǔ)0。

8.小結(jié)1)

P進(jìn)制→十進(jìn)制:按權(quán)展開后相加。2)

十進(jìn)制→P進(jìn)制:整數(shù)部分除P取余,小數(shù)部分乘P取整。3)

二進(jìn)制←→八進(jìn)制

2→8:

以小數(shù)點(diǎn)為界三位二進(jìn)制數(shù)為一位八進(jìn)制數(shù)

8→2:

一位八進(jìn)制數(shù)寫成三位二進(jìn)制數(shù)。4)二進(jìn)制←→十六進(jìn)制

2→16:

以小數(shù)點(diǎn)為界四位二進(jìn)制數(shù)為一位十六進(jìn)制數(shù)。

16→2:

將一位十六進(jìn)制數(shù)分為四位二進(jìn)制數(shù)。5)

八進(jìn)制←→十六進(jìn)制

以二進(jìn)制為橋梁進(jìn)行轉(zhuǎn)換。

8→2→1616→2→81.3

計算機(jī)中的數(shù)據(jù)組織

1.3.1數(shù)據(jù)組織方式1.3.2數(shù)的表示方法1.3.3字符的表示方法1.3.1數(shù)據(jù)組織方式1.位(Bit)位是計算機(jī)中表示信息的最小單位,是一個二進(jìn)制位,每一位用二進(jìn)制的“0”或“1”表示。2.字節(jié)(Byte)

8位二進(jìn)制數(shù)為1個字節(jié),

每個字節(jié)為8位二進(jìn)制數(shù)。1個字節(jié)可以表示28個不同的值,即0~255(用二進(jìn)制表示為:00000000B~11111111B),共256個不同的值。

圖1-2字節(jié)的表示形式

3.字(Word)字是在操作中作為一個單元處理的一組數(shù)據(jù),一般1個字包含2個字節(jié),1個字可以表示216個不同的值,即0~65535(用十六進(jìn)制表示為:0000H~FFFFH),共65536個不同的值。如圖1-3為用1個字(2字節(jié))來表示65534的二進(jìn)制的表示方法。圖1-3字的表示形式最高位最低位4.雙字(DoubleWord)2個字節(jié)為1個字,4個字節(jié)為2個字,也稱為雙字,1個雙字可以表示232個不同的值,即0~(用十六進(jìn)制表示為:00000000H~FFFFFFFFH),共個不同的值。如圖1-4為雙字的表示形式。

圖1-4雙字的表示形式5.字長機(jī)器字的長度為字長,是計算機(jī)中每個字所包含的位數(shù)。8088/8086CPU為16位數(shù)據(jù)總線數(shù),因此,8088/8086CPU的機(jī)器字長為16位,也稱為16位機(jī)。如:80386DX/80486CPU的數(shù)據(jù)總線數(shù)為32位,機(jī)器字長就為32位。Pentium機(jī)的數(shù)據(jù)總線數(shù)為64位,機(jī)器字長就為64位。6.?dāng)?shù)據(jù)字與指令字在存儲單元中是存放的都是二進(jìn)制數(shù),2字節(jié)的二進(jìn)制數(shù),所表示的如果是數(shù)據(jù),為數(shù)據(jù)字。所表示的如果是指令,為指令字。例如:計算z=x+y其中x=5,y=6;為了書寫方便用十六進(jìn)制來表示機(jī)器指令:A00000(3字節(jié))02060100(4字節(jié))A20200(3字節(jié))低字高字1.3.2數(shù)的表示方法

1.?dāng)?shù)制

計算機(jī)內(nèi)部是采用二進(jìn)制數(shù)(Binary)進(jìn)行操作和運(yùn)算的。在編寫匯編語言源程序時,為了書寫方便,可以使用:十進(jìn)制數(shù)(D)

八進(jìn)制數(shù)(O)十六進(jìn)制數(shù)(H)

需要注意的問題:

通過匯編程序把匯編語言源程序轉(zhuǎn)換為目標(biāo)程序時,程序中的十進(jìn)制數(shù)、八進(jìn)制數(shù)、十六進(jìn)制數(shù)均由匯編程序自動轉(zhuǎn)換成二進(jìn)制數(shù)。

2.帶符號數(shù)和不帶符號數(shù)每個字節(jié)或字的最高位設(shè)置為符號位。當(dāng)符號位為0時,該數(shù)為正數(shù)。當(dāng)符號位為1時,該數(shù)為負(fù)數(shù)。若用8位二進(jìn)制來表示1個十進(jìn)制數(shù),則D7位為符號位,D6~D0位為數(shù)字位。

+10501101001B

-10511101001B(機(jī)器數(shù))為了便于計算機(jī)運(yùn)算,通常采用補(bǔ)碼來表示帶符號數(shù)。(1)帶符號數(shù)

1)計算機(jī)中為什么采用補(bǔ)碼的概念數(shù)字圓盤的例子:a、首先通過觀察孔看到的是5,圖1-5Ⅰ所示。b、按順時方向轉(zhuǎn)3格看到8,即5+3=8,圖Ⅱ所示c、在圖Ⅱ中,通過觀察孔看到的是8,接著按逆時針方向反向轉(zhuǎn)4格看到4,即8—4=4按箭頭反方向轉(zhuǎn)4格看到4,如圖Ⅲ所示。d、在圖Ⅱ中,通過觀察孔看到的是8,如果接著按順時針方向轉(zhuǎn)6格也是4,如圖Ⅳ所示,實(shí)際上是做了8+6=14,1為進(jìn)位,數(shù)字輪子表示不出來,也就是自然丟掉了。做了8-4的工作。通過這個例子可以看到減法可以用加法來實(shí)現(xiàn)。5844逆時針轉(zhuǎn)4格與順時針轉(zhuǎn)6格結(jié)果相同!2)同余的概念對于兩個整數(shù)a、b,若用某一個正整數(shù)m去除,所得的余數(shù)相同,我們就說a、b對模m同余。記作

a≡b(modm)如:

8-4=4a=48+6=14b=14

用模10去除a、b得到的余數(shù)都是44≡14(mod10)-4和+6對模10互為補(bǔ)數(shù)要解決的問題:如何把8—4這個問題變成8+6來計算呢?采用模10-4=6結(jié)論:對于某一確定的模,某數(shù)減去小于模的一個數(shù)總可以用加上該數(shù)的負(fù)數(shù)與模之和(補(bǔ)數(shù))來代替。如:十進(jìn)制時模為10,某數(shù)8減小于模10的數(shù)4,

總可以用8+(模-4)來完成。即:8-4可以用8+(10-4)=8+6=4(其中進(jìn)位10自然丟掉)來完成。3)補(bǔ)碼的特點(diǎn)

a、

對于正數(shù),補(bǔ)碼與實(shí)際值一致,符號位為0。

b、

對于負(fù)數(shù),補(bǔ)碼與實(shí)際值互補(bǔ)。(補(bǔ)碼是實(shí)際值每位取反碼,末尾加1)

c、

[+0]補(bǔ)=[-0]補(bǔ)=00000000d、8位字長的表示范圍:

+127~-128,

01111111B—10000000Be、用補(bǔ)碼運(yùn)算后,運(yùn)算結(jié)果符號位如果為“0”,數(shù)

值部分就是此運(yùn)算的最終結(jié)果,符號位如果為“1”,

數(shù)值部分不是運(yùn)算結(jié)果,而是要把數(shù)值部分再取

補(bǔ),得到的才是最終運(yùn)算結(jié)果。8位二進(jìn)制補(bǔ)碼的數(shù)的表示范圍16位二進(jìn)制補(bǔ)碼的數(shù)的表示范圍十進(jìn)制數(shù)二進(jìn)制數(shù)十六進(jìn)制數(shù)7F7E………020100000000000—111111111FF一211111110FE………一1261000001082—1271000000181—1281000000080十進(jìn)制數(shù)十六進(jìn)制數(shù)7FFF7FFE……

00000—1FFFF一2FFFE……一327668002—327678001—327688000

表1-28位、16位二進(jìn)制補(bǔ)碼的數(shù)的表示范圍4)舉例【例1-25】機(jī)器字長為8位,計算

65-10=[?]265-10=65+(-10)

[65]10=[01000001]2=[01000001]2補(bǔ)

[-10]10=[10001010]2=[11110110]2補(bǔ)將[-10]10=[10001010]2取補(bǔ)碼,方法是用模減去二進(jìn)制的[0001010]2。

假設(shè)機(jī)器字長為8位二進(jìn)制數(shù),則模為100000000B,所以對[10001010]2取補(bǔ):

5)8位和16位二進(jìn)制補(bǔ)碼數(shù)的表示范圍

帶符號數(shù)

對于8位二進(jìn)制的帶符號數(shù):

可表示的最大正數(shù)為01111111B(

或7FH、+127)。

可表示的最小負(fù)數(shù)為10000000B(或80H、一128)。

對于

16位二進(jìn)制的帶符號數(shù):

可表示的最大正數(shù)為0111111111111111B

或7FFFH、

+32767)。

可表示的最小負(fù)數(shù)為100000000000000B

(或8000H、-32768)。

不帶符號數(shù)

8位無符號數(shù)的表示范圍:00000000B~11111111B

(00H~0FFH、0~255)。

16位無符號數(shù)的表示范圍:

0000000000000000B~1111111111111111B

(0000H~0FFFFH、0~65535)3、

BCD碼與8421碼

BCD碼就是1位十進(jìn)制數(shù)用4位二進(jìn)制表示,而這4位二進(jìn)制是用8421碼表示,其中四位二進(jìn)制數(shù)0000~1001表示十進(jìn)制數(shù)0~9,其余的四位二進(jìn)制

數(shù)1010~111l不用。

表1.1BCD碼與8421碼十進(jìn)制BCD碼8421碼000000000100010001200100010300110011401000100501010101601100110701110111810001000910011001100001000010103、BCD碼與8421碼(1)組合型BCD碼(壓縮型)

1個字節(jié)表示2個BCD碼,因此,組合型BCD碼數(shù)的表示范圍為0~99,最小數(shù)據(jù)為00000000B,最大數(shù)據(jù)為10011001B。十進(jìn)制57用組合型BCD碼表示如圖1.5所示。(2)非組合型(非壓縮型)

1個字節(jié)表示1個BCD碼因此,非組合型BCD碼數(shù)的表示范圍為0~9,最小數(shù)據(jù)為00000000B,最大數(shù)據(jù)為00001001B。十進(jìn)制7用非組合型BCD碼表示如圖1.6所示。

圖1.5組合型BCD碼圖1.6非組合型BCD碼

【例1-29】將十進(jìn)制數(shù)6532轉(zhuǎn)換成組合型BCD碼(6532)10=(0110010100110010)組合型BCD碼

【例1-30】將十進(jìn)制數(shù)1024轉(zhuǎn)換成非組合型BCD碼(1024)10=(000

溫馨提示

  • 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

提交評論