




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
教材:IBM-PC匯編語言程序設(shè)計(jì)主講教師:陳宏聯(lián)系方式:chenhong@
匯編語言程序設(shè)計(jì)1.沈美明,溫冬嬋.80X86匯編語言程序設(shè)計(jì)[M].
北京:清華大學(xué)出版社.2.PeterAbel.IBMPCAssemblerLanguageandProgramming[M].Prentice—HALL,Inc.3.溫冬嬋,沈美明.IBMPC匯編語言與程序設(shè)計(jì)例題習(xí)題集[M]北京:清華大學(xué)出版社.4.王成端.匯編語言程序設(shè)計(jì)[M].北京:高等教育出版社.參考書目FORTRANBASICCOBOLPASCALC/C++JAVA...匯編語言高級(jí)語言機(jī)器語言計(jì)算機(jī)語言的發(fā)展
面向機(jī)器的低級(jí)語言,通常是為特定的計(jì)算機(jī)或計(jì)算機(jī)系列專門設(shè)計(jì)的。保持了機(jī)器語言的優(yōu)點(diǎn),具有直接和簡(jiǎn)捷的特點(diǎn)。可有效地訪問、控制計(jì)算機(jī)的各種硬件設(shè)備,如磁盤、存儲(chǔ)器、CPU、I/O端口等。目標(biāo)代碼簡(jiǎn)短,占用內(nèi)存少,執(zhí)行速度快,是高效的程序設(shè)計(jì)語言。經(jīng)常與高級(jí)語言配合使用,應(yīng)用十分廣泛。匯編語言的特點(diǎn)第1章數(shù)據(jù)格式及其轉(zhuǎn)換1.熟悉數(shù)制的基本概念和計(jì)算機(jī)中常用進(jìn)位計(jì)數(shù)制,掌握R進(jìn)制的表達(dá)和相互轉(zhuǎn)換;2.了解機(jī)器數(shù)和帶符號(hào)數(shù)的原碼、反碼、補(bǔ)碼表示,掌握ASCII碼和BCD碼的表達(dá)及應(yīng)用;本章要求1.計(jì)算機(jī)中數(shù)制基本概念、數(shù)制之間相互轉(zhuǎn)換;2.計(jì)算機(jī)中的數(shù)據(jù)表示、數(shù)據(jù)的基本類型等;本章主要內(nèi)容計(jì)劃學(xué)時(shí):2學(xué)時(shí)
表示一個(gè)數(shù)值數(shù)據(jù)要有三個(gè)要素:
進(jìn)位計(jì)數(shù)制、小數(shù)點(diǎn)和數(shù)的正負(fù)符號(hào)。按進(jìn)位方式計(jì)數(shù)的數(shù)制叫做進(jìn)位計(jì)數(shù)制,簡(jiǎn)稱進(jìn)位制。一個(gè)任意的R進(jìn)制數(shù)N,都可寫成:
N=KnKn-1…K1K0.K-1K-2…K-m
=Kn·Rn+Kn-1·Rn-1+…+K0·R0+K-1·R-1+…+K-m·R-m
式中m、n為正整數(shù);Ri是對(duì)應(yīng)位的位權(quán);R為對(duì)應(yīng)進(jìn)制的基數(shù)。1.1進(jìn)位計(jì)數(shù)制【例】:
二進(jìn)制數(shù)1101.1B=1×23+1×22+0×21+1×20+1×2-1
【例】:
十進(jìn)制數(shù)567.32D=5×102+6×101+7×100+3×10-1+2×10-2
進(jìn)位計(jì)數(shù)制基數(shù)簡(jiǎn)寫數(shù)碼二進(jìn)制2B0,1八進(jìn)制8O0,1,2,3,4,5,6,7十進(jìn)制10D0,1,2,3,4,5,6,7,8,9十六進(jìn)制16H0,1,2,3,4,5,6,7,8,9A,B,C,D,E,F(xiàn)
所謂基數(shù),就是指在該計(jì)數(shù)制中每個(gè)數(shù)位Ki可能用到的數(shù)字符號(hào)的個(gè)數(shù),其系數(shù)可為0~(R-1)。每個(gè)數(shù)位計(jì)滿R后就向高位進(jìn)位,即“逢R進(jìn)一”,在R進(jìn)制數(shù)中相鄰兩個(gè)數(shù)位的權(quán)相差R倍,亦即當(dāng)小數(shù)點(diǎn)向左移一位時(shí),數(shù)值縮小R倍;而當(dāng)小數(shù)點(diǎn)向右移一位時(shí),數(shù)值擴(kuò)大R倍。常用進(jìn)位計(jì)數(shù)制的基數(shù)和符號(hào)D01234567B00000001001000110100010101100111H01234567D89101112131415B10001001101010111100110111101111H89ABCDEF二進(jìn)制、十進(jìn)制及十六進(jìn)制對(duì)應(yīng)關(guān)系二進(jìn)制、八進(jìn)制對(duì)應(yīng)關(guān)系B000001010011010101110111O012345671.2各種數(shù)制間的相互轉(zhuǎn)換1.2.1R進(jìn)制數(shù)轉(zhuǎn)換為十進(jìn)制數(shù)【解】:
101101.01B=1×25+1×23+1×22+1×20+1×2-2=45.2510
權(quán)數(shù)碼【例】:把101101.01B轉(zhuǎn)換成十進(jìn)制數(shù)?!纠浚簩⑹M(jìn)制數(shù)3A9.3CH轉(zhuǎn)換成十進(jìn)制數(shù)?!窘狻浚海?A9.3C)16=3×162+10×161+9×160+3×16-1+12×16-2=768+160+9+0.1875+0.046875=(937.234375)10
方法:按權(quán)相加
N=Kn·Rn+Kn-1·Rn-1+…+K0·R0+K-1·R-1+…+K-m·R-m
1.2.2十進(jìn)制數(shù)轉(zhuǎn)換為二進(jìn)制數(shù)●降冪法
轉(zhuǎn)換方法:先給出要轉(zhuǎn)換的十進(jìn)制數(shù),其次寫出所有小于此數(shù)的各位二進(jìn)制權(quán)值,然后用要轉(zhuǎn)換的十進(jìn)制數(shù)減去與它最相近的二進(jìn)制權(quán)值,如夠減則減去并在相應(yīng)位記1;否則,該位記0并跳過此位;如此反復(fù),直到該數(shù)為0為止?!癯耍ㄐ?shù))除(整數(shù))法除法:把要轉(zhuǎn)換的十進(jìn)制的整數(shù)部分不斷除以2,并記下余數(shù),直到商為0為止。乘法:把要轉(zhuǎn)換的十進(jìn)制的小數(shù)部分不斷乘以2,并記下其整數(shù)部分,直到結(jié)果小數(shù)部分為0或達(dá)到精度要求為止?!窠祪绶ㄐ∮?17D的二進(jìn)制權(quán)為:
6432168421轉(zhuǎn)換結(jié)果:計(jì)算過程:
117-26=117-64=53(a6=1)1
53-25=53-32=21(a5=1)
53-24=21-16=5(a4=1)11
5-22=5–4=1(a2=1)1-20=1–1=0(a0=1)
(a3=0)
(a1=0)0101【例】:把N=117D轉(zhuǎn)換成二進(jìn)制數(shù)?!癯ㄉ逃鄶?shù)計(jì)算過程117/2=58(a0=1)58/2=29(a1=0)29/2=14(a2=1)14/2=7(a3=0)7/2=3(a4=1)3/2=1(a5=1)1/2=0(a6=1)【例】:把N=117D轉(zhuǎn)換成二進(jìn)制數(shù)?!?/p>
N=117D=1110101B。【例】:把N=48956D轉(zhuǎn)換為十六進(jìn)制數(shù)。●降冪法小于N的十六進(jìn)制權(quán)值為:4096256161計(jì)算過程:
48956-11×4096=3900
3900-15×256=6060-3×16=1212-12×1=0∴N=48956D=BF3CH1.2.3十進(jìn)制數(shù)轉(zhuǎn)換為十六進(jìn)制轉(zhuǎn)換結(jié)果(H)
B
F
3
C【例】:把N=48956D轉(zhuǎn)換為十六進(jìn)制數(shù)。●除法計(jì)算過程:余數(shù)48956/16=3059(a0=12→C)3059/16=191(a1=3→3)191/16=11(a2=15→F)11/16=0(a3=11→B)∴N=48956D=BF3CH十進(jìn)制數(shù)轉(zhuǎn)換為十六進(jìn)制轉(zhuǎn)換方法:(B→H)
由于十六進(jìn)制數(shù)是2的冪,所以這兩種數(shù)制之間的轉(zhuǎn)換十分容易,即4個(gè)二進(jìn)制數(shù)表示一個(gè)十六進(jìn)制數(shù)。具體方式,以小數(shù)點(diǎn)為中心,整數(shù)部分從小數(shù)點(diǎn)開始往左,4個(gè)二進(jìn)制數(shù)為一組,不足位補(bǔ)零。小數(shù)部分從小數(shù)點(diǎn)開始往右,4個(gè)二進(jìn)制數(shù)為一組,不足為補(bǔ)零?!纠?把11010110111111.010011B轉(zhuǎn)換成十六進(jìn)制數(shù)。0011,0101,1011,1111.0100,110035BF4C∴
11010110111111.010011B
=35BF.4CH1.2.4二進(jìn)制和十六進(jìn)制之間的轉(zhuǎn)換轉(zhuǎn)換方法:(H→B)
由于十六進(jìn)制數(shù)是2的冪,所以一個(gè)十六進(jìn)制數(shù)用4個(gè)二進(jìn)制數(shù)表示。具體方式,以小數(shù)點(diǎn)為中心,整數(shù)部分從小數(shù)點(diǎn)開始往左,1個(gè)十六進(jìn)制數(shù)符用4個(gè)二進(jìn)制數(shù)表示,零不能缺省。小數(shù)部分從小數(shù)點(diǎn)開始往右,1個(gè)十六進(jìn)制數(shù)符用4個(gè)二進(jìn)制數(shù)表示,零不能缺省。轉(zhuǎn)換完成后,整數(shù)部分最高位的零可以省略,小數(shù)部分最低位的零也可以省略?!纠?把7A9.64H轉(zhuǎn)換成二進(jìn)制數(shù)。7A9.6401111010100101100100∴
7A9.64H
=11110101001.011001H二進(jìn)制和十六進(jìn)制之間的轉(zhuǎn)換r進(jìn)制數(shù)運(yùn)算基本規(guī)則:逢r進(jìn)一即:十進(jìn)制數(shù):逢十進(jìn)一二進(jìn)制數(shù):逢二進(jìn)一十六進(jìn)制數(shù):逢十六進(jìn)一二進(jìn)制數(shù)運(yùn)算規(guī)則:加法:
0+0=0,0+1=1,1+0=1,1+1=0(進(jìn)位1)乘法:
0×0=0,0×1=0,1×0=0,1×1=1二進(jìn)制和十六進(jìn)制數(shù)的運(yùn)算十六進(jìn)制數(shù)運(yùn)算例:計(jì)算199H+51H=?199H
+51H
1EAH例:計(jì)算5C3H+3D25H=?05C3H
+3D25H
42E8H例:計(jì)算3D25H-5C3H=?3D25H
-05C3H
3762H1.3.1機(jī)器數(shù)與真值
在機(jī)器中,把一個(gè)數(shù)連同其符號(hào)在內(nèi)數(shù)值化表示的數(shù),稱為機(jī)器數(shù)。一般用最高有效位來表示數(shù)的符號(hào)(正負(fù)),正數(shù)用“0”表示,負(fù)數(shù)用“1”表示。
D0D7最高位機(jī)器字長(zhǎng)為8D0D15最高位機(jī)器字長(zhǎng)為161.3數(shù)的符號(hào)表示●機(jī)器數(shù)常用的碼制有原碼、反碼和補(bǔ)碼。
原碼表示法:符號(hào)+絕對(duì)值【例】:設(shè)機(jī)器字長(zhǎng)為n,若n=8,給出+3,-3,+0,-0的原碼。[+3]原碼=0000,0011=03H[-3]原碼=1000,0011=83H[+0]原碼=0000,0000=0H[-0]原碼=1000,0000=80H
◆◆注意:在原碼表示中,零不唯一!數(shù)的表示范圍(整數(shù)):1.3.2數(shù)的原碼表示反碼表示法:正數(shù)的反碼同原碼,負(fù)數(shù)的反碼數(shù)值位與原碼相反,符號(hào)位為”1”。【例】:設(shè)機(jī)器字長(zhǎng)為n,若n=8,給出+3,-3,+0,-0的反碼。[+3]反碼=0000,0011=03H[-3]反碼=1111,1100=FCH[+0]反碼=0000,0000=0H[-0]反碼=1111,1111=FFH
數(shù)的表示范圍(整數(shù)):注意:在反碼表示中,零不唯一!1.3.3反碼表示法1.3.4補(bǔ)碼表示法
正數(shù)的表示與原碼一樣。負(fù)數(shù)X的表示可以用公式描述:數(shù)的表示范圍(整數(shù)):對(duì)不同機(jī)器字長(zhǎng)n=8,16,32,64,其表數(shù)范圍為:n=8:n=16:n=32:n=64:負(fù)數(shù)的補(bǔ)碼表示
處理方法:(1)寫出與該負(fù)數(shù)相對(duì)應(yīng)的正數(shù)的補(bǔ)碼;(2)按位求反;(3)末位加一?!纠浚簷C(jī)器字長(zhǎng)為8位,則-64D的補(bǔ)碼表示為:+64D的補(bǔ)碼:01000000按位求反:10111111末位加1:11000000用十六進(jìn)制表示:C0【例】:機(jī)器字長(zhǎng)為16位,則N=-126D的補(bǔ)碼表示:+126D的補(bǔ)碼:0000000001111110
按位求反:1111111110000001
末位加1:1111111110000010
用十六進(jìn)制表示:FF82
【例】:機(jī)器字長(zhǎng)為16位,則N=-117D的補(bǔ)碼表示:+117D的補(bǔ)碼:0000000001110101按位求反:1111111110001010末位加1:1111111110001011用十六進(jìn)制表示:FF8B
十進(jìn)制數(shù)的二進(jìn)制編碼稱為BCD碼。引入BCD碼的目的是為解決日常習(xí)慣的十進(jìn)制數(shù)與機(jī)器內(nèi)的二進(jìn)制數(shù)之間的矛盾,使十進(jìn)制數(shù)與二進(jìn)制數(shù)之間的轉(zhuǎn)換更為方便。最常用的是8421BCD碼。它對(duì)每一位十進(jìn)制數(shù)碼用4位二進(jìn)制編碼來表示,十進(jìn)制數(shù)的0~9分別對(duì)應(yīng)于0000~1001。十進(jìn)制數(shù)的7368用8421BCD碼表示為:
0111
0011
0110
1000BCD碼有壓縮BCD碼和非壓縮BCD碼二種形式,壓縮BCD碼的每個(gè)字節(jié)存放兩位BCD碼,而非壓縮BCD碼的每個(gè)十進(jìn)制數(shù)字占用一個(gè)字節(jié)的低4位,其高4位的內(nèi)容不代表BCD的信息。1.3.5BCD碼【例】寫出十進(jìn)制數(shù)31的壓縮BCD碼和非壓縮BCD碼。
【解】
31的壓縮BCD碼為:0011
000131的非壓縮BCD碼為:00000011
00000001
十進(jìn)制數(shù)字的8421BCD碼十進(jìn)制數(shù)字8421BCD碼十進(jìn)制數(shù)字8421BCD碼00000501011000160110200107011130011810004010091001
標(biāo)準(zhǔn)的ASCII碼共128個(gè)字符,分為二類:非打印的和可打印的ASCII碼。非打印ASCII碼:這類編碼用于控制性代碼,共33個(gè)。如:BEL(響鈴,07H),
DEL(刪除,7FH),
CR(回車,0DH),
LF(換行,0AH)等。可打印ASCII碼:共有95個(gè)。其中有:數(shù)字0~9的編碼30H~39H
大寫字母A~Z的編碼41H~5AH
小寫字母a~z的編碼61H~7AH
空格(Space)的編碼20H
1.3.6字符編碼●求補(bǔ)運(yùn)算:對(duì)一個(gè)二進(jìn)制數(shù)按位求反、末位加一的運(yùn)算稱為求補(bǔ)運(yùn)算。補(bǔ)碼數(shù)具有的特征:[X]補(bǔ)碼
[-X]補(bǔ)碼
[X]補(bǔ)碼也可以表示為:[[X]補(bǔ)]補(bǔ)=[-X]補(bǔ)
【例】:[117]補(bǔ)=0075H,[-117]補(bǔ)=FF8BH[117]補(bǔ)為0000000001110101
按位求反1111111110001010
末位加11111111110001011FF8B=[-117]補(bǔ)補(bǔ)碼的加法和減法求補(bǔ)求補(bǔ)【例】:[117]補(bǔ)=0075H,[-117]補(bǔ)=FF8BH[-117]補(bǔ)為:1111111110001011
按位求反:0000000001110100
末位加1:00000000011101010075=[117]補(bǔ)即:[117]補(bǔ)碼
[-117]補(bǔ)碼
[117]補(bǔ)碼也可以表示為:[[117]補(bǔ)]補(bǔ)=[-117]補(bǔ)
求補(bǔ)運(yùn)算根據(jù)補(bǔ)碼的這一特性,可以得到補(bǔ)碼加法和減法的表示:補(bǔ)碼的加法和減法補(bǔ)碼的加法規(guī)則:補(bǔ)碼的減法規(guī)則:設(shè)機(jī)器字長(zhǎng)n=8[25]補(bǔ)=00011001[32]補(bǔ)=00100000[-25]補(bǔ)=11100111[-32]補(bǔ)=1110000025+32=5700011001
+001000000011100125+(-32)=-700011001
+1110000011111001-25-32=(-25)+(-32)=-5711100111
+11100000
111000111丟棄補(bǔ)碼的加法和減法進(jìn)位和溢出進(jìn)位:由于運(yùn)算結(jié)果超出了位數(shù),最高有效位向前的進(jìn)位,這一位自然丟失,一般不表示結(jié)果的對(duì)錯(cuò)。溢出:表示結(jié)果超出了字長(zhǎng)允許表示的范圍,一般會(huì)造成結(jié)果出錯(cuò)。例:仍設(shè)機(jī)器字長(zhǎng)為8(-64)1100000012701111111
+6401000000
+100000001010000000012810000000
進(jìn)位
溢出補(bǔ)碼的加法和減法“與”運(yùn)算(AND)“或”運(yùn)算(OR)
ABA
BABA
B
000
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 山東2025年山東農(nóng)業(yè)大學(xué)公開招聘3人筆試歷年參考題庫附帶答案詳解
- 貴州經(jīng)貿(mào)職業(yè)技術(shù)學(xué)院《食品安全類綜合技能訓(xùn)練》2023-2024學(xué)年第二學(xué)期期末試卷
- 武漢科技大學(xué)《大學(xué)美育》2023-2024學(xué)年第二學(xué)期期末試卷
- 遼寧城市建設(shè)職業(yè)技術(shù)學(xué)院《政府審計(jì)》2023-2024學(xué)年第二學(xué)期期末試卷
- 深圳職業(yè)技術(shù)大學(xué)《新媒體運(yùn)營與分析》2023-2024學(xué)年第二學(xué)期期末試卷
- 福建船政交通職業(yè)學(xué)院《數(shù)字音頻視頻技術(shù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 北京舞蹈學(xué)院《系統(tǒng)工程原理》2023-2024學(xué)年第二學(xué)期期末試卷
- 鶴壁職業(yè)技術(shù)學(xué)院《空間解析幾何》2023-2024學(xué)年第二學(xué)期期末試卷
- 鄭州職業(yè)技術(shù)學(xué)院《打印電子器件與材料》2023-2024學(xué)年第二學(xué)期期末試卷
- 徐州生物工程職業(yè)技術(shù)學(xué)院《國際結(jié)算》2023-2024學(xué)年第二學(xué)期期末試卷
- 山東省濱州地區(qū)2024屆中考二模歷史試題含解析
- 知識(shí)創(chuàng)業(yè)思維與方法智慧樹知到期末考試答案章節(jié)答案2024年湖南師范大學(xué)
- MOOC 急診醫(yī)學(xué)-山東大學(xué) 中國大學(xué)慕課答案
- 體格檢查病歷示范范文16篇
- 河北鋼鐵集團(tuán)礦業(yè)有限公司司家營鐵礦礦山地質(zhì)環(huán)境保護(hù)與土地復(fù)墾方案評(píng)審意見書
- 國家開放大學(xué)《Python語言基礎(chǔ)》實(shí)驗(yàn)2:基本數(shù)據(jù)類型和表達(dá)式計(jì)算參考答案
- 2024統(tǒng)編本語文二年級(jí)下冊(cè)第四、第五單元測(cè)試題及答案(各一套)
- 國家婚檢培訓(xùn)課件
- 多目標(biāo)粒子群優(yōu)化算法的改進(jìn)及應(yīng)用研究
- 數(shù)據(jù)庫性能優(yōu)化策略
- 年產(chǎn)10萬噸鋁電解車間設(shè)計(jì)(畢業(yè)設(shè)計(jì))
評(píng)論
0/150
提交評(píng)論