沈美明匯編語言第1章.ppt_第1頁(yè)
沈美明匯編語言第1章.ppt_第2頁(yè)
沈美明匯編語言第1章.ppt_第3頁(yè)
沈美明匯編語言第1章.ppt_第4頁(yè)
沈美明匯編語言第1章.ppt_第5頁(yè)
已閱讀5頁(yè),還剩30頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、IBMPC匯編語言 程序設(shè)計(jì)(第2版),清華大學(xué)計(jì)算機(jī)系列教材 沈美名 溫冬蟬 編著,一、課程說明,1.本課程介紹計(jì)算機(jī)底層的工作方式和結(jié)構(gòu)原理,對(duì)了解計(jì)算機(jī)硬件的工作很重要。 2要求:不許缺課、及時(shí)總結(jié)、獨(dú)立作業(yè)、及時(shí)提問。 凡是布置的作業(yè),一律下周上課前交;實(shí)驗(yàn)報(bào)告在進(jìn)實(shí)驗(yàn)室的時(shí)候檢查。 必備筆記本,學(xué)會(huì)記筆記(制做筆記)。 3忠告:“知識(shí)可以寫在紙上、可以突擊掌握,但是能力是突擊不出來的”?!皩W(xué)習(xí)任何樂器,知道怎樣發(fā)出多來咪幾分鐘既可,但是要能演奏樂曲需要幾年的練習(xí)”、“開汽車的知識(shí)5分鐘就可以掌握,就是油門、剎車、離合、檔位,但是能夠真正操控自如需要幾十天的的練習(xí)”、“運(yùn)動(dòng)員為了鍛煉某

2、一部分的肌肉,需要長(zhǎng)期重復(fù)做幾個(gè)基本動(dòng)作,誰也知道不可能一晚上把某塊肌肉練出來”、“邏輯思維能力也是通過長(zhǎng)期沉浸在相關(guān)知識(shí)的理解、運(yùn)用、貫通、思考中逐步積累培養(yǎng)起來的,為了考試而突擊式的背書僅僅記住了知識(shí),而絕對(duì)不可能掌握能力”。,二、教師建議 目標(biāo): 了解匯編語言的特性及其編程技術(shù), 建立起“機(jī)器”和“程序”、“空間”和 “時(shí)間”的概念。 建議: 充分注意“匯編”課實(shí)踐性強(qiáng)的特點(diǎn), 多讀程序,多寫程序,多上機(jī)調(diào)試程序, 熟悉PC機(jī)的編程結(jié)構(gòu), 掌握匯編語言及其程序設(shè)計(jì)的基本概 念、方法和技巧。,三、本課程的定位,計(jì)算機(jī)組成原理與系統(tǒng)結(jié)構(gòu)、匯編語言、微機(jī)原理是計(jì)算機(jī)硬件方面的三門主要課程。組成

3、原理介紹一般計(jì)算機(jī)的CPU、內(nèi)存等細(xì)節(jié)技術(shù)理論,匯編語言介紹微機(jī)的機(jī)器指令功能和編程,微機(jī)原理介紹微機(jī)的硬件構(gòu)成。,計(jì)算機(jī)語言的發(fā)展,機(jī)器語言,FORTRAN BASIC COBOL PASCAL C/C+ JAVA .,用二進(jìn)制代碼0和1表示指令和數(shù)據(jù),指令用助記符表示,地址、操作數(shù)可用標(biāo)號(hào)、符號(hào)地址及字符等形式來描述。,接近于人的自然語言,面向過程而獨(dú)立于機(jī)器的通用語言。,匯編語言的特點(diǎn) 面向機(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)代

4、碼簡(jiǎn)短,占用內(nèi)存少,執(zhí)行速度快, 是高效的程序設(shè)計(jì)語言。 經(jīng)常與高級(jí)語言配合使用,應(yīng)用十分廣泛。,#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=%dn,c); return 0; ,編程實(shí)現(xiàn) c =a+b,并在屏幕上顯示出結(jié)果。,例1,編譯后的目標(biāo)文件達(dá)到3.59KB,data segment a db ? b db ? c db ? string db c=$ data ends code segment main proc far

5、 assume cs:code, ds:data, es:data start: push ds sub ax,ax push ax mov ax,data mov ds,ax mov es,ax,mov 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 21h mov dl,0ah int 21h mov dl,0dh int 21h ret main endp code ends end start,例 2. C = a + b,匯編后

6、的目標(biāo)文件只有208字節(jié),匯編語言的應(yīng)用 系統(tǒng)程序、效率代碼、I/O驅(qū)動(dòng)程序 70%以上的系統(tǒng)軟件是用匯編語言編寫的。 某些快速處理、位處理、訪問硬件設(shè)備等 高效程序是用匯編語言編寫的。 高級(jí)繪圖程序、視頻游戲程序一般是用匯 編語言編寫的。,匯編語言的語句結(jié)構(gòu),1匯編語言的指令類型 MCS-51單片機(jī)匯編語言,包含兩類不同性質(zhì)的指令。 (1)基本指令:即指令系統(tǒng)中的指令。它們都是機(jī)器能夠執(zhí)行的指令,每一條指令都有對(duì)應(yīng)的機(jī)器碼。 (2)偽指令:匯編時(shí)用于控制匯編的指令。它們都是機(jī)器不執(zhí)行的指令,無機(jī)器碼。 2匯編語言的語句格式 匯編語言源程序是由匯編語句(即指令)組成的。匯編語言一般由四部分組成

7、。 其典型的匯編語句格式如下: 標(biāo)號(hào):操作碼操作數(shù);注釋 START:MOV A,30H;A(30H),參考資料 1.匯編語與程序設(shè)計(jì) 王爽 編著 清華大學(xué)出版社 2. IBM PC 匯編語言與程序設(shè)計(jì)例題習(xí)題集 溫冬嬋 沈美明 清華大學(xué)出版社,第1章 基 礎(chǔ) 知 識(shí), 數(shù)制 數(shù)制之間的轉(zhuǎn)換 運(yùn)算 數(shù)和字符的表示,預(yù) 備 知 識(shí),存儲(chǔ)容量 1K = 1024 = 210 (Kilo) 1M = 1024K = 220 (Mega) 1G = 1024M = 230 (Giga) 1個(gè)二進(jìn)制位:bit (比特) 8個(gè)二進(jìn)制位:Byte (字節(jié)) 1Byte = 8bit 2個(gè)字節(jié): Word (

8、字) 1Word = 2Byte = 16bit,1. 數(shù) 制,二進(jìn)制: 基數(shù)為2,逢二進(jìn)一 11012 = 12 3 + 12 2 + 12 0 = 1310 十六進(jìn)制:基數(shù)為16,逢十六進(jìn)一 1001, 0001, 1000, 0111 9 1 8 7 = 9 16 3 + 1 16 2 + 8 16 1 + 7 16 0,2. 數(shù)制之間的轉(zhuǎn)換,二進(jìn)制 十六進(jìn)制 十進(jìn)制 二進(jìn)制 十進(jìn)制 十六進(jìn)制,降冪法 除法, 二進(jìn)制 十六進(jìn)制:4位對(duì)1位 0011 0101 1011 1111 3 5 B F 0011,0101,1011,1111B = 35BFH A 1 9 C 1010 0001

9、1001 1100 A19CH = 1010,0001,1001,1100B,1011B = 23+21+20=11D 整數(shù)部分除2取余倒序, 小數(shù)部分乘2取整正序 例: 27D = ? B,二進(jìn)制 十進(jìn)制:, 十六進(jìn)制 十進(jìn)制 BF3CH = 11163 +15162 +3161 +12160 = 48956D 整數(shù)部分除2取余倒序, 小數(shù)部分乘2取整正序, 算術(shù)運(yùn)算 二進(jìn)制數(shù):逢二進(jìn)一 借一為二 加法規(guī)則 乘法規(guī)則 0 + 0 = 0 0 0 = 0 0 + 1 = 1 0 1 = 0 1 + 0 = 1 1 0 = 0 1 + 1 = 0 (進(jìn)位1) 1 1 = 1,3. 運(yùn)算(算術(shù)運(yùn)算

10、和邏輯運(yùn)算),0 5 C 3 H 3 D 2 5 H 4 2 E 8 H,3 D 2 5 H 0 5 C 3 H 3 7 6 2 H,1,1,十六進(jìn)制數(shù):逢十六進(jìn)一 借一為十六, 邏輯運(yùn)算(按位操作),“與”運(yùn)算(AND) “或”運(yùn)算(OR) A B AB A B AB 0 0 0 0 0 0 0 1 0 0 1 1 1 0 0 1 0 1 1 1 1 1 1 1 “非”運(yùn)算(NOT) “異或”運(yùn)算(XOR) A A A B AB 0 1 0 0 0 1 0 0 1 1 1 0 1 1 1 0,例:X=00FFH Y=5555H,求Z=XY= ? X= 0000 0000 1111 1111

11、B Y= 0101 0101 0101 0101 B Z= 0101 0101 1010 1010 B Z=55AAH,4. 數(shù)和字符的表示, 計(jì)算機(jī)中正負(fù)數(shù)的表示,7 6 5 4 3 2 1 0,符號(hào)位 數(shù)值位,假設(shè)機(jī)器字長(zhǎng)為16位:,符號(hào)位 = 0 正數(shù) 數(shù)值位 = 1 負(fù)數(shù),15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0,假設(shè)機(jī)器字長(zhǎng)為8位:,H.O.Byte,L.O.Byte,H.O.Nibble,L.O.Nibble,數(shù)的常用表示法 原碼 反碼 補(bǔ)碼 原碼表示法:符號(hào) + 絕對(duì)值 例:n = 8bit +3原碼 = 0 000,0011 = 03H - 3

12、原碼 = 1 000,0011 = 83H +0原碼 = 0 000,0000 = 00H - 0原碼 = 1 000,0000 = 80H 0 的表示不惟一 反碼表示法:正數(shù)的反碼同原碼,負(fù)數(shù)的反碼數(shù)值位與原碼相反 例:n = 8bit +5反碼 = 0 000,0101 = 05H - 5反碼 = 1 111,1010 = FAH +0反碼 = 0 000,0000 = 00H - 0反碼 = 1 111,1111 = FFH 0 的表示不惟一,補(bǔ)碼(Twos Complement)表示法: 正數(shù)的補(bǔ)碼: 同原碼 負(fù)數(shù)的補(bǔ)碼:(1)寫出與該負(fù)數(shù)相對(duì)應(yīng)的正數(shù)的補(bǔ)碼 (2)按位求反 (3)末位

13、加一,n位二進(jìn)制補(bǔ)碼的表數(shù)范圍: - 2n-1 N 2n-1-1,無符號(hào)整數(shù)的表數(shù)范圍: 0 N 2n-1,補(bǔ)碼的加法和減法: 求補(bǔ)運(yùn)算 :對(duì)一個(gè)二進(jìn)制數(shù)按位求反、末位加一 X補(bǔ)碼 -X補(bǔ)碼 X補(bǔ)碼 加法規(guī)則:X+Y補(bǔ)碼 = X補(bǔ)碼 + Y補(bǔ)碼 減法規(guī)則:X-Y補(bǔ)碼 = X補(bǔ)碼 + -Y補(bǔ)碼 補(bǔ)碼減法可轉(zhuǎn)換為補(bǔ)碼加法,64 (-46) 18,0100 0000 1101 0010 0001 0010,例:,進(jìn)位和溢出 進(jìn)位: 由于運(yùn)算結(jié)果超出了位數(shù),最高有效位向 前的進(jìn)位,這一位自然丟失,一般不表 示結(jié)果的對(duì)錯(cuò)。 溢出:表示結(jié)果超出了字長(zhǎng)允許表示的范圍, 一般會(huì)造成結(jié)果出錯(cuò)。 例: (64)

14、11000000 127 01111111 64 01000000 + 1 00000001 0 1 00000000 128 10000000 進(jìn)位 溢出, 字符的表示 ASCII碼:用一個(gè)字節(jié)來表示一個(gè)字符,低7位 為字符的ASCII值,最高位一般用作 校驗(yàn)位。 例: A 41H a 61H 1 31H 換行 0AH 回車 0DH 空格 20H,5.二進(jìn)制數(shù)的應(yīng)用 (1)編碼和數(shù)值范圍 4位2進(jìn)制數(shù),共有16個(gè)數(shù),數(shù)值范圍015; 7位2進(jìn)制數(shù),共有128個(gè)數(shù),數(shù)值范圍0127; 8位2進(jìn)制數(shù)(一字節(jié)),共有256個(gè)數(shù),數(shù)值范圍0255,可 以為256個(gè)XX命名; 16位2進(jìn)制數(shù)(兩字節(jié))

15、,共有65536個(gè)數(shù),范圍065535,可 為65536個(gè)XX命名; (2)K、M、G、T 王陽(yáng)元院士在21世紀(jì)硅微電子技術(shù)一文中說:21世紀(jì),微 電子技術(shù)將從3G(109)發(fā)展到3T(1012)。存儲(chǔ)容量由G位 發(fā)展到T位,器件速度由GHz發(fā)展到THz,數(shù)據(jù)傳輸速率由 Gbps發(fā)展到Tbps。,21010241K103,2201024K1M106, 2301024M1G109,2401024G1T1012; (用于字節(jié)數(shù)、單元數(shù)、空間數(shù)均可) 如果說一個(gè)芯片有24根地址線,那么它可以表示的地址范圍是:16M。 (3)色彩數(shù)與位數(shù) 用1位2進(jìn)制數(shù)表示色彩:只有亮與不亮,稱為單色(實(shí)際是雙色);

16、 用2位2進(jìn)制數(shù)表示色彩:有00、01、10、11四種編碼,可以呈現(xiàn)四種顏色; 用4位2進(jìn)制數(shù)表示色彩:有16種編碼,可以呈現(xiàn)16種顏色; 用8位2進(jìn)制數(shù)表示色彩:有256種編碼,可以呈現(xiàn)256種顏色; 用16位2進(jìn)制數(shù)表示色彩:有65536種編碼,可以呈現(xiàn)65536種顏色; 用24位2進(jìn)制數(shù)表示色彩:有16777216種編碼,可以呈現(xiàn)16M種顏色(真 彩); 用32位2進(jìn)制數(shù)表示色彩:有4294967296種編碼,可以呈現(xiàn)4G種顏色(真彩); (4)16進(jìn)制地址與空間 03FFH是1024個(gè)數(shù)據(jù),可以為1K個(gè)單元表示地址; 07 FFH是2048個(gè)數(shù)據(jù),可以為2K個(gè)單元表示地址; 00BFFH是3072個(gè)數(shù)據(jù),可以為3K個(gè)單元表示地址;,00BFFH是3072個(gè)數(shù)據(jù),可以為3K個(gè)單元表示地址; 00FFFH是4096個(gè)數(shù)據(jù),可以為4K個(gè)單元表示地址; 3位16進(jìn)制數(shù)(12位2進(jìn)制)最大可表示4

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論