版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、Ch1 基礎(chǔ)知識,1,,IBM—PC匯編語言程序設(shè)計(第二版),主講 李敬兆,Ch1 基礎(chǔ)知識,2,,計算機語言的發(fā)展,機器語言,FORTRANBASICCOBOLPASCALC/C++JAVA...,Ch1 基礎(chǔ)知識,3,,計算機能夠直接識別的數(shù)據(jù)是由二進制數(shù)0和1組成的代碼。機器指令就是用二進制代碼組成的指令,一條機器指令控制計算機完成一個基本操作。用機器語言編寫的程序是計算機惟一能夠直接識別并執(zhí)行的程
2、序,而用其他語言編寫的程序必須經(jīng)過翻譯才能變換成機器語言程序,所以,機器語言程序被稱為目標(biāo)程序。,機器語言,Ch1 基礎(chǔ)知識,4,為了克服機器語言的缺點,人們采用助記符表示機器指令的操作碼,用變量代替操作數(shù)的存放地址等,這樣就形成了匯編語言。所以匯編語言是一種用符號書寫的、基本操作與機器指令相對應(yīng)的、并遵循一定語法規(guī)則的計算機語言。 用匯編語言編寫的程序稱為匯編源程序。 匯編語言是一種符號語言,比機器語言容易理解和掌握,
3、也容易調(diào)試和維護。但是,匯編語言源程序要翻譯成機器語言程序才可以由計算機執(zhí)行。這個翻譯的過程稱為“匯編”,這種把匯編源程序翻譯成目標(biāo)程序的語言加工程序稱為匯編程序。,匯編語言,Ch1 基礎(chǔ)知識,5,匯編語言雖然較機器語言直觀,但仍然煩瑣難懂。于是人們研制出了高級程序設(shè)計語言。高級程序設(shè)計語言接近于人類自然語言的語法習(xí)慣,與計算機硬件無關(guān),易被用戶掌握和使用。目前廣泛應(yīng)用的高級語言有多種,如BASIC、FORTRAN、PASCAL、C
4、、C++等等。,高級語言,匯編語言的特點 面向機器的低級語言,通常是為特定的計算 機或計算機系列專門設(shè)計的。 保持了機器語言的優(yōu)點,具有直接和簡捷 的特點。 可有效地訪問、控制計算機的各種硬件設(shè)備, 如磁盤、存儲器、CPU、I/O端口等。 目標(biāo)代碼簡短,占用內(nèi)存少,執(zhí)行速度快, 是高效的程序設(shè)計語言。? 經(jīng)常與高級語言配合使用,應(yīng)用十分廣泛。,安徽理工大學(xué) 計算機科學(xué)與技術(shù)系 李敬兆
5、 《匯編語言》,#include "stdafx.h" #include "stdio.h" int main(int argc, char* argv[]) { int a,b,c; a=1; b=2; c=a+b; printf(“c=%d\n",c);
6、 return 0; },,編程實現(xiàn) c =a+b,并在屏幕上顯示出結(jié)果。,例1,編譯后的目標(biāo)文件達到3.59KB,,安徽理工大學(xué) 計算機科學(xué)與技術(shù)系 李敬兆 《匯編語言》,data segmenta db ?b db ?c db ?string db 'c=$'da
7、ta endscode segmentmain proc far assume cs:code, ds:data, es:datastart: push ds sub ax,ax push ax mov ax,data mov ds,ax mov es,ax,m
8、ov a,1 mov b,2 mov al,a add al,b mov c,al lea dx,string mov ah,09 int 21h add c,30h mov dl,c mov ah,2 int 21
9、h mov dl,0ah int 21h mov dl,0dh int 21h retmain endpcode ends end start,例 2. C = a + b,,匯編后的目標(biāo)文件只有208字節(jié),,安徽理工大學(xué) 計算機科學(xué)與技術(shù)系 李敬兆 《匯編語
10、言》,建議 ●充分注意“匯編”課實踐性強的特點, ●多讀程序,多寫程序,多上機調(diào)試程序, ●熟悉PC機的編程結(jié)構(gòu), ●掌握匯編語言及其程序設(shè)計的基本概 念、方法和技巧。,安徽理工大學(xué) 計算機科學(xué)與技術(shù)系 李敬兆 《匯編語言》,第1章 基 礎(chǔ) 知 識,? 數(shù)制 ? 數(shù)制之間的轉(zhuǎn)換 ? 運算 ? 數(shù)和字符的表示,安徽理工大學(xué) 計算機科學(xué)與技術(shù)系 李
11、敬兆 《匯編語言》,預(yù) 備 知 識,存儲容量1K = 1024B = 210 (Kilo) 1M = 1024K = 220 (Mega) 1G = 1024M = 230 (Giga)1個二進制位:bit (比特)8個二進制位:Byte (字節(jié)) 1Byte = 8bit2個字節(jié): Word (字)
12、 1Word = 2Byte = 16bit,安徽理工大學(xué) 計算機科學(xué)與技術(shù)系 李敬兆 《匯編語言》,1.1.1 數(shù) 制,二進制: 基數(shù)為2,逢二進一 11012 = 1×2 3 + 1×2 2 + 1×2 0 = 1310十六進制:基數(shù)為16,逢十六進一 1001, 00
13、01, 1000, 0111 9 1 8 7 = 9 ×16 3 + 1 ×16 2 + 8 ×16 1 + 7 ×16 0,安徽理工大學(xué) 計算機科學(xué)與技術(shù)系 李敬兆 《匯編語言》,1. 1 數(shù) 制與轉(zhuǎn)換,Ch1 基礎(chǔ)知識,13,任何進制的數(shù)都可用如下方法表示:
14、 N = ± Ki * ri 其中:Ki 是任一個數(shù)碼; ri是各位對應(yīng)的權(quán) r 是基數(shù),1.1.2 數(shù)
15、制之間的轉(zhuǎn)換,二進制 十六進制 十進制 二進制 十進制 十六進制,降冪法 除法,安徽理工大學(xué) 計算機科學(xué)與技術(shù)系 李敬兆 《匯編語言》,? 二進制 十六進制 0011 0101 1011 1111 ? ?
16、 ? ? 3 5 B F ∴ 0011,0101,1011,1111B = 35BFH A 1 9 C ? ? ? ? 1010 0001 1001 1100 ∴
17、 A19CH = 1010,0001,1001,1100B,,,,,安徽理工大學(xué) 計算機科學(xué)與技術(shù)系 李敬兆 《匯編語言》,Ch1 基礎(chǔ)知識,16,十六進制和二進制的相互轉(zhuǎn)換,方法:對于二進制整數(shù),只要從右到左每4位組成一組,不足4位最左邊補0,即可得到相應(yīng)的十六進制。對于二進制小數(shù),只要從左到右每4位組成一組,不足4位最右邊補0,即可得到相應(yīng)的十六進制。 0 111
18、1101. 0101 11 0 0 ? ? ? ? 7 D 5 C ∴ (1111101.0101111)2 = (7D.5C)16 如果將十六進制轉(zhuǎn)成二進制數(shù),只要每一位十六進制數(shù)用四位二進制數(shù)表示即可。,,,補0,補0,降冪法 除法
19、 例: 27D = ? B 27 11 3 3 1 -? -? -? -? 2n 16 8 4 2 1 1 1 0 1
20、 1 ∴ 27D = 11011B,,,,,,,二進制 十進制,,,安徽理工大學(xué) 計算機科學(xué)與技術(shù)系 李敬兆 《匯編語言》,? 二進制 十進制,1011B = 23+21+20=11D,二進制 十進制,Ch1 基礎(chǔ)知識,18,十進制轉(zhuǎn)換成二進制,方法:對于整數(shù)部分除2取余法,小數(shù)部分采用乘2取整法
21、例:117.8125D =,1110101.1101B,? 十六進制 十進制 BF3CH = 11?163 +15?162 +3?161 +12?160 = 48956D 降冪法 除法 例:399D = ? H 399 143 15 399/16→24/16→1/16→ 0
22、 -? -? -? ↓ ↓ ↓ 16n 256 16 1 F 8 1 ? ? ? 1
23、 8 F ∴ 399D = 18FH,,,,,,,,,安徽理工大學(xué) 計算機科學(xué)與技術(shù)系 李敬兆 《匯編語言》,二進制數(shù):逢二進一 借一為二 加法規(guī)則 乘法規(guī)則 0 + 0 = 0 0 ? 0 = 0
24、0 + 1 = 1 0 ? 1 = 0 1 + 0 = 1 1 ? 0 = 0 1 + 1 = 0 (進位1) 1 ? 1 = 1,1.2 運算(算術(shù)運算),安徽理工大學(xué) 計算機科學(xué)與技術(shù)系 李敬兆 《匯編語言》,,0 5 C 3 H3 D 2 5 H4 2 E 8
25、 H,+,,3 D 2 5 H0 5 C 3 H3 7 6 2 H,-,1,-1,十六進制數(shù):逢十六進一 借一為十六,安徽理工大學(xué) 計算機科學(xué)與技術(shù)系 李敬兆 《匯編語言》,1.3 計算機中數(shù)和字符的表示,? 計算機中正負數(shù)的表示,7 6 5 4 3 2 1 0,,,符號位 數(shù)值位,假
26、設(shè)機器字長為16位:,,,符號位 = 0 正數(shù) 數(shù)值位 = 1 負數(shù),15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0,假設(shè)機器字長為8位:,H.O.Byte,L.O.Byte,安徽理工大學(xué) 計算機科學(xué)與技術(shù)系 李敬兆
27、 《匯編語言》,數(shù)的常用表示法 —— 原碼 反碼 補碼原碼表示法:符號 + 絕對值例:n = 8bit [+3]原碼 = 0 000,0011 = 03H [- 3]原碼 = 1 000,0011 = 83H [+0]原碼 = 0 000,0000 = 00H [- 0]原碼 = 1 000,0000
28、= 80H ? 0 的表示不惟一反碼表示法:正數(shù)的反碼同原碼,負數(shù)的反碼數(shù)值位與原碼相反例:n = 8bit [+5]反碼 = 0 000,0101 = 05H [- 5]反碼 = 1 111,1010 = FAH [+0]反碼 = 0 000,0000 = 00H [- 0]反碼 = 1 111,1111 = FF
29、H ? 0 的表示不惟一,安徽理工大學(xué) 計算機科學(xué)與技術(shù)系 李敬兆 《匯編語言》,補碼(Two’s Complement)表示法:正數(shù)的補碼: 同原碼負數(shù)的補碼:(1)寫出與該負數(shù)相對應(yīng)的正數(shù)的補碼 (2)按位求反 (3)末位加一,安徽理工大學(xué) 計算機科學(xué)與技術(shù)系 李敬兆 《匯編語言》,n位二進制補碼的表數(shù)范
30、圍: - 2n-1 ≤ N ≤ 2n-1-1,無符號整數(shù)的表數(shù)范圍: 0 ≤ N ? ≤ 2n-1,安徽理工大學(xué) 計算機科學(xué)與技術(shù)系 李敬兆 《匯編語言》,補碼的加法和減法:求補運算 ? :對一個二進制數(shù)按位求反、末位加一 求補 求補 [X]補碼 ? [-X]補碼 ? [X]
31、補碼加法規(guī)則:[X+Y]補碼 = [X]補碼 + [Y]補碼減法規(guī)則:[X-Y]補碼 = [X]補碼 + [-Y]補碼 補碼減法可轉(zhuǎn)換為補碼加法,,64(-46) 18,+,,,0100 00001101 00100001 0010,+,例:,安徽理工大學(xué) 計算機科學(xué)與技術(shù)系 李敬兆 《匯編語言》,進
32、位和溢出進位: 由于運算結(jié)果超出了位數(shù),最高有效位向前的進位,這一位自然丟失,一般不表示結(jié)果的對錯。溢出:表示結(jié)果超出了字長允許表示的范圍, 一般會造成結(jié)果出錯。例: (-64) 11000000 127 01111111 + 64 01000000 + 1 00000001
33、 0 1 00000000 128 10000000 進位 溢出,,,,,,,安徽理工大學(xué) 計算機科學(xué)與技術(shù)系 李敬兆 《匯編語言》,? 字
34、符的表示ASCII碼: 用一個字節(jié)來表示一個字符,低7位為字符的ASCII值,最高位一般用作校驗位。 例: ‘A’ 41H ‘a(chǎn)’ 61H ‘1’ 31H
35、 換行 0AH 回車 0DH 空格 20H,安徽理工大學(xué) 計算機科學(xué)與技術(shù)系 李敬兆 《匯編語言》,Ch1 基礎(chǔ)知識,29,BCD碼 BCD(Binary-Coded Decimal)碼又稱為“二—十進制編碼”,專門解決用二進制數(shù)
36、表示十進數(shù)的問題。最常用的是8421編碼,其方法是用4位二進制數(shù)表示1位十進制數(shù),自左至右每一位對應(yīng)的位權(quán)是8、4、2、1。,Ch1 基礎(chǔ)知識,30,BCD碼有兩種格式:(1)壓縮BCD碼格式(Packed BCD Format) 用4個二進制位表示一個十進制位,就是用0000B-1001B來表示十進制數(shù)0-9。例如:十進制數(shù)4256的壓縮BCD碼表示為:0100 0010 0101 0110 B(2)非壓縮BCD碼格式(
37、Unpacked BCD Format) 用8個二進制位表示一個十進制位,其中,高四位無意義,我們一般用xxxx表示,低四位和壓縮BCD碼相同。 例如:十進制數(shù)4256的非壓縮BCD碼表示為: xxxx0100 xxxx0010 xxxx0101 xxxx0110 B,1.4 邏輯運算(按位操作),“與”運算(AND) “或”運算(OR) A B A?B
38、 A B A?B 0 0 0 0 0 0 0 1 0 0 1 1 1 0 0 1 0
39、 1 1 1 1 1 1 1“非”運算(NOT) “異或”運算(XOR) A ?A
40、 A B A?B 0 1 0 0 0 1 0 0 1 1 1
41、 0 1 1 1 0,,,,,,,,,安徽理工大學(xué) 計算機科學(xué)與技術(shù)系 李敬兆 《匯編語言》,例:X=00FFH Y=5555H,求Z=X?Y= ? X= 0000 0000 1111 1111 B ?
42、 Y= 0101 0101 0101 0101 B Z= 0101 0101 1010 1010 B ? Z=55AAH,,安徽理工大學(xué) 計算機科學(xué)與技術(shù)系 李敬兆 《匯編語言》,第1章作業(yè),Page 14 1.2 (1) 、 (3) 1.3 (1) 、 (
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 匯編語言程序設(shè)計
- 匯編語言程序設(shè)計前言
- 匯編語言程序設(shè)計課后答案
- 實驗一 匯編語言程序設(shè)計
- 匯編語言程序設(shè)計競賽報告
- 匯編語言程序設(shè)計習(xí)題-答案
- 4匯編語言程序設(shè)計基礎(chǔ)
- 匯編語言程序設(shè)計課后答案
- 匯編語言程序設(shè)計課程教案
- 匯編語言程序設(shè)計習(xí)題答案
- 匯編語言程序設(shè)計課后答案
- 匯編語言程序設(shè)計-課程設(shè)計
- 匯編語言程序設(shè)計課程設(shè)計
- 匯編語言程序設(shè)計實驗報告-循環(huán)程序設(shè)計
- 匯編語言程序設(shè)計指導(dǎo)書
- 《匯編語言程序設(shè)計》教學(xué)大綱
- 匯編語言程序設(shè)計試卷樣例
- ch11-高級匯編語言程序設(shè)計
- 匯編語言程序設(shè)計試題及答案合集
- 匯編語言程序設(shè)計的環(huán)境及步驟
評論
0/150
提交評論