版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 提升泵站施工組織設(shè)計方案
- 《第三單元 遼宋夏金多民族政權(quán)的并立與元朝的統(tǒng)一》試卷及答案-高中歷史必修中外歷史綱要上
- 維修工程驗收報告
- 《數(shù)列通項公式》教學(xué)反思
- 重組卷02-沖刺2023年高考化學(xué)真題重組卷2
- 2024年快速離婚流程服務(wù)合同
- Unit3提優(yōu)卷 人教版八年級英語上冊
- 2024年工程招投標(biāo)與合同管理:針對高端裝備制造業(yè)
- 2024年影視作品制作與發(fā)行合作合同
- 2024年度軟件開發(fā)與授權(quán)合同
- 《區(qū)塊鏈應(yīng)用技術(shù)》課程教學(xué)大綱
- 工程變更洽商記錄樣板
- 內(nèi)蒙古蒙特威生物科技有限公司3000噸酪蛋白及衍生產(chǎn)品項目環(huán)評報告表
- 12河北安裝定額說明和計算規(guī)則
- [中建]鄭州機(jī)場航站樓擴(kuò)建工程施工組織設(shè)計(圖文158頁)
- 呼和浩特市智慧城市建設(shè)情況216(共8頁)
- 裝配式建筑PPT培訓(xùn)講義(圖文并茂)
- 油庫設(shè)計-畢業(yè)設(shè)計論文
- 新教材高中歷史選擇性必修一全冊知識點(diǎn)總結(jié)
- (完整)學(xué)生課堂自我評價表
- 圖書館本科教學(xué)水平合格評估匯報
評論
0/150
提交評論