第1章計算機程序設(shè)計語言_第1頁
第1章計算機程序設(shè)計語言_第2頁
第1章計算機程序設(shè)計語言_第3頁
第1章計算機程序設(shè)計語言_第4頁
第1章計算機程序設(shè)計語言_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、IBMPCIBMPC匯編語言程序設(shè)計匯編語言程序設(shè)計( (第第2 2版版) )主講教師:羅江琴主講教師:羅江琴計算機語言的發(fā)展計算機語言的發(fā)展 機器語言機器語言FORTRANFORTRANBASICBASICCOBOLCOBOLPASCALPASCALC/C+C/C+JAVAJAVA.匯編語言匯編語言高級語言高級語言 匯編語言是介于計算機能直接理解的匯編語言是介于計算機能直接理解的機器語言與用戶容易理解的高級語言之間機器語言與用戶容易理解的高級語言之間的一種語言。它除了有與代碼指令一一對的一種語言。它除了有與代碼指令一一對應(yīng)的符號指令外,還增加了專用于定義變應(yīng)的符號指令外,還增加了專用于定義變

2、量,常量,符號,過程,分配存儲空間,量,常量,符號,過程,分配存儲空間,定位程序起始地址等一系列稱之為偽指令定位程序起始地址等一系列稱之為偽指令的符號指令。的符號指令。匯編語言概述 采用高級語言編寫的程序,機器是采用高級語言編寫的程序,機器是不能直接執(zhí)行的,需要由編譯程序或解不能直接執(zhí)行的,需要由編譯程序或解釋程序?qū)⑺g成對應(yīng)的機器語言程序,釋程序?qū)⑺g成對應(yīng)的機器語言程序,機器才能接受。而這種機器語言程序往機器才能接受。而這種機器語言程序往往往比較冗長,占用存儲空間較大,執(zhí)行比較冗長,占用存儲空間較大,執(zhí)行起來速度慢,起來速度慢,但能夠直接利用機器硬件但能夠直接利用機器硬件系統(tǒng)的許多特性

3、,如寄存器,標(biāo)志位等。系統(tǒng)的許多特性,如寄存器,標(biāo)志位等。 同高級語言比較,它更接近機器語言,同高級語言比較,它更接近機器語言,更能全面的反映計算機硬件的功能特點。更能全面的反映計算機硬件的功能特點。同機器語言比較,它易于閱讀,編寫和同機器語言比較,它易于閱讀,編寫和修改程序。因此,使用匯編語言可編寫修改程序。因此,使用匯編語言可編寫出出運行速度快,占存儲空間少,能充分運行速度快,占存儲空間少,能充分利用硬件資源,發(fā)揮計算機效能并能進利用硬件資源,發(fā)揮計算機效能并能進行精確控制的程序行精確控制的程序。匯編語言是面向機器的語言,故它將因計匯編語言是面向機器的語言,故它將因計算機機型的不同而異,但

4、用匯編語言進行算機機型的不同而異,但用匯編語言進行程序設(shè)計的基本概念,基本技巧和基本方程序設(shè)計的基本概念,基本技巧和基本方法是普遍適用的。我們選擇目前國內(nèi)最廣法是普遍適用的。我們選擇目前國內(nèi)最廣泛使用的泛使用的IBM PCIBM PC作為基礎(chǔ)講授。其他機型作為基礎(chǔ)講授。其他機型同學(xué)們可觸類旁通。同學(xué)們可觸類旁通。匯編語言的特點匯編語言的特點 面向機器的低級語言,通常是為特定的計算面向機器的低級語言,通常是為特定的計算 機或計算機系列機或計算機系列專門設(shè)計的。專門設(shè)計的。 保持了機器語言的優(yōu)點,具有直接和簡捷保持了機器語言的優(yōu)點,具有直接和簡捷 的特點。的特點。 可有效地訪問、控制計算機的各種硬

5、件設(shè)備可有效地訪問、控制計算機的各種硬件設(shè)備, , 如磁盤、存儲器、如磁盤、存儲器、CPUCPU、I/OI/O端口等。端口等。 目標(biāo)代碼簡短,占用內(nèi)存少,執(zhí)行速度快,目標(biāo)代碼簡短,占用內(nèi)存少,執(zhí)行速度快, 是高效的程序設(shè)計語言。是高效的程序設(shè)計語言。 經(jīng)常與高級語言配合使用,應(yīng)用十分廣泛經(jīng)常與高級語言配合使用,應(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; 編譯后的目標(biāo)文編譯后的目標(biāo)文件

6、達到件達到3.59KBdata segmentdata segmenta db ?a db ?b db ?b db ?c db ?c db ?string db c=$string db c=$data endsdata endscode segmentcode segmentmain proc farmain proc far assume cs:code, assume cs:code, ds:data, es:datads:data, es:datastart:start: push dspush ds sub ax,ax sub ax,ax push ax push ax mov ax

7、,data mov ax,data mov ds,ax mov ds,ax mov es,ax mov es,axmov a,1mov a,1 mov b,2 mov b,2 mov al,a mov al,a add al,b add al,b mov c,al mov c,al lea dx,stringlea dx,string mov ah,09 mov ah,09 int 21h int 21h add c,30hadd c,30h mov dl,c mov dl,c mov ah,2 mov ah,2 int 21h int 21h mov dl,0ah mov dl,0ah in

8、t 21h int 21h mov dl,0dh mov dl,0dh int 21h int 21h ret retmain endpmain endpcode endscode ends end start end start例例 2. C = a + b2. C = a + b匯編后的目匯編后的目標(biāo)文件只有標(biāo)文件只有208208字節(jié)字節(jié)匯編語言的應(yīng)用匯編語言的應(yīng)用系統(tǒng)程序、效率代碼、系統(tǒng)程序、效率代碼、I/OI/O驅(qū)動程序驅(qū)動程序70%70%以上的系統(tǒng)軟件是用匯編語言編寫的。以上的系統(tǒng)軟件是用匯編語言編寫的。 某些快速處理、位處理、訪問硬件設(shè)備等某些快速處理、位處理、訪問硬件設(shè)備等 高效

9、程序是用匯編語言編寫的。高效程序是用匯編語言編寫的。 高級繪圖程序、視頻游戲程序一般是用匯高級繪圖程序、視頻游戲程序一般是用匯 編語言編寫的編語言編寫的。匯編語言廣泛應(yīng)用于如下方面:匯編語言廣泛應(yīng)用于如下方面:高級語言編譯程序的編制;高級語言編譯程序的編制;中斷處理程序中斷處理程序的編制的編制;計算機內(nèi)部設(shè)備的驅(qū)動程序的編制;計算機內(nèi)部設(shè)備的驅(qū)動程序的編制;控制,指揮和監(jiān)制等實時處理程序的計算控制,指揮和監(jiān)制等實時處理程序的計算機系統(tǒng)的開發(fā)機系統(tǒng)的開發(fā)目標(biāo):目標(biāo): 了解匯編語言的特性及其編程技術(shù),了解匯編語言的特性及其編程技術(shù), 建立起建立起“機器機器”和和“程序程序”、“空間空間”和和 “

10、“時間時間”的概念。的概念。建議:建議: 充分注意充分注意“匯編匯編”課實踐性強的特點,課實踐性強的特點, 多讀程序多讀程序, ,多寫程序多寫程序, ,多上機調(diào)試程序多上機調(diào)試程序, , 熟悉熟悉PCPC機的編程結(jié)構(gòu),機的編程結(jié)構(gòu), 掌握匯編語言及其程序設(shè)計的基本概掌握匯編語言及其程序設(shè)計的基本概 念、方法和技巧念、方法和技巧。參考資料參考資料1.80X861.80X86匯編語言程序設(shè)計匯編語言程序設(shè)計沈美明沈美明 溫冬嬋溫冬嬋 清華大學(xué)出版社清華大學(xué)出版社2.IBM PC 2.IBM PC 匯編語言與程序設(shè)計匯編語言與程序設(shè)計 PETER ABEL PETER ABEL 編著編著 第第4 4

11、版版 清華大學(xué)出版社清華大學(xué)出版社.PRENTICE HALL.PRENTICE HALL第第5 5版版 人民郵電出版社人民郵電出版社3. IBM PC 3. IBM PC 匯編語言與程序設(shè)計例題習(xí)題集匯編語言與程序設(shè)計例題習(xí)題集 溫冬嬋溫冬嬋 沈美明沈美明 清華大學(xué)出版社清華大學(xué)出版社第第1章章 基基 礎(chǔ)礎(chǔ) 知知 識識 學(xué)習(xí)內(nèi)容:學(xué)習(xí)內(nèi)容: 數(shù)制數(shù)制 數(shù)制之間的轉(zhuǎn)換數(shù)制之間的轉(zhuǎn)換 運算運算 數(shù)和字符的表示數(shù)和字符的表示學(xué)習(xí)目標(biāo):了解計算機中數(shù)和字符表示方法;學(xué)習(xí)目標(biāo):了解計算機中數(shù)和字符表示方法;了解不同基數(shù)的數(shù)之間的轉(zhuǎn)換方法;了解不同基數(shù)的數(shù)之間的轉(zhuǎn)換方法;熟悉計算機中補碼數(shù)的算術(shù)運算和邏

12、輯運算規(guī)則;熟悉計算機中補碼數(shù)的算術(shù)運算和邏輯運算規(guī)則;預(yù)預(yù) 備備 知知 識識存儲容量存儲容量1K = 1024 = 210 (Kilo) 1M = 1024K = 220 (Mega) 1G = 1024M = 230 (Giga)1個二進制位:bit (比特)8個二進制位:Byte (字節(jié)) 1Byte = 8bit2個字節(jié): Word (字) 1Word = 2Byte = 16bit1. 數(shù)數(shù) 制制 數(shù)數(shù) 制制 基基 數(shù)數(shù) 數(shù)數(shù) 碼碼 二進制二進制 Binary 2 0, 1 八進制八進制 Octal 8 0, 1, 2, 3, 4, 5, 6, 7 十進制十進制 Decimal 10

13、 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 十六進制十六進制 Hexadecimal 16 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F二進制二進制: 基數(shù)為2,逢二進一 11012 = 12 3 + 12 2 + 12 0 = 1310十六進制十六進制:基數(shù)為16,逢十六進一 1001, 0001, 1000, 0111 9 1 8 7 = 9 16 3 + 1 16 2 + 8 16 1 + 7 16 02. 數(shù)制之間的轉(zhuǎn)換數(shù)制之間的轉(zhuǎn)換 二進制二進制 十六進制十六進制 十進制十進制 二進制二進制 十進制十進制 十六進制十六進

14、制降冪法降冪法 除法除法 二進制二進制 十六進制十六進制 0011 0101 1011 1111 3 5 B F 0011,0101,1011,1111B = 35BFH A 1 9 C 1010 0001 1001 1100 A19CH = 1010,0001,1001,1100B 1011B = 23+21+20=11D 降冪法 除法 例例: 27D = ? B 27 11 3 3 1 - - - - 2n 16 8 4 2 1 1 1 0 1 1 27D = 11011B 二進制二進制 十進制十進制 十進制轉(zhuǎn)換成R進制 一個任意的十進制數(shù)可以由整數(shù)部分 和小數(shù)部分構(gòu)成,若設(shè)整數(shù)部分為M1

15、, 小數(shù)部分為M2。 則整數(shù)部分為: (M1)10=an-1Rn-1+an-2Rn-2+a2R2+a1R+a0 我們將這種方法取名為除以R取余法, 逆序排列。 其中R為基數(shù)。 小數(shù)部分為: (M2)10=a-1R-1+a-2R-2+a-mR-m 我們將這種方法取名為乘以R取整法,順序排列。 【例】 將十進制數(shù)10.375轉(zhuǎn)換成二進 制數(shù)(R=2)。 解:將十進制數(shù)10.375的整數(shù)部分和小數(shù) 部分分別轉(zhuǎn)換。 整數(shù)部分轉(zhuǎn)換采用除以R取余法(在本例中R=2) 2 10 余數(shù) 對應(yīng)二進制數(shù)碼(數(shù)符) 2 5 0 a0 2 2 1 a1 2 1 0 a2 0 1 a3 于是(10)10 = (1010

16、)2 小數(shù)部分采用乘以R取整法(在本例中R=2) 整數(shù)部分 對應(yīng)二進制數(shù)碼(數(shù)符) 0.3752=0.75 0 a-1 0.752=1.5 1 a-2 0.52=1.0 1 a-3 剩余誤差e=0 于是 (0.375)10=(.011)2+e=(.011)2 最后得到 (10.375)2=(1010.011)2 十六進制十六進制 十進制十進制 BF3CH = 11163 +15162 +3161 +12160 = 48956D 降冪法 除法 例例:399D = ? H 399 143 15 399/1624/161/16 0 - - - 16n 256 16 1 F 8 1 1 8 F 399

17、D = 18FH 算術(shù)運算算術(shù)運算 二進制數(shù):二進制數(shù):逢二進一逢二進一 借一為二借一為二 加法規(guī)則 乘法規(guī)則 0 + 0 = 0 0 0 = 0 0 + 1 = 1 0 1 = 0 1 + 0 = 1 1 0 = 0 1 + 1 = 0 (進位1) 1 1 = 13. 運算(算術(shù)運算和邏輯運算)運算(算術(shù)運算和邏輯運算)0 5 C 3 H3 D 2 5 H4 2 E 8 H3 D 2 5 H0 5 C 3 H3 7 6 2 H1 11 1十六進制數(shù):十六進制數(shù):逢十六進一逢十六進一 借一為十六借一為十六 邏輯運算(邏輯運算(按位操作按位操作)“與與”運算(運算(AND) “或或”運算(運算(

18、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“非非”運算(運算(NOT) “異或異或”運算(運算(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 B Y= 0101 0101 0101 0101 B Z= 0101 0101 1010 1010 B Z=55AAH4. 數(shù)和字符的表示數(shù)和字符的表示 計算機中正負計算機中正負數(shù)的表示數(shù)的表示 7 6 5 4 3 2

19、1 0符號位符號位 數(shù)值位數(shù)值位假設(shè)機器字長字長為16位:符號位符號位 = 0 正數(shù)正數(shù) 數(shù)值位數(shù)值位 = 1 負數(shù)負數(shù)15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0假設(shè)機器字長字長為8位:H.O.ByteH.O.ByteL.O.ByteL.O.ByteH.O.NibbleH.O.NibbleL.O.NibbleL.O.Nibble數(shù)的常用表示法數(shù)的常用表示法 原碼原碼 反碼反碼 補碼補碼原碼表示法原碼表示法:符號:符號 + 絕對值絕對值例:n = 8bit +3原碼 = 0 000,0011 = 03H - 3原碼 = 1 000,0011 = 83H +0原碼

20、= 0 000,0000 = 00H - 0原碼 = 1 000,0000 = 80H 0 的表示不惟一反碼表示法反碼表示法:正數(shù)的反碼同原碼,負數(shù)的反碼數(shù)值位與原碼相反正數(shù)的反碼同原碼,負數(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 的表示不惟一例: 機器字長8位,- 46補碼 = ? 46補碼 = 0 0 1 0 1 1 1 0 1 1 0 1 0 0 0 1 1 1 0 1 0 0 1 0

21、= D2H 機器字長16位,- 46補碼 = FFD2H +0補碼 = 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 = - 0補碼 0 的表示的表示惟一按位求反按位求反末位加一末位加一按位求反按位求反末位加一末位加一補碼補碼(Twos Complement)表示法:表示法:正數(shù)的補碼:正數(shù)的補碼: 同原碼負數(shù)的補碼負數(shù)的補碼:(1)寫出與該負數(shù)相對應(yīng)的正數(shù)的補碼 (2)按位求反 (3)末位加一 十進制 二進制 十六進制 十進制 十六進制 n=8 n=16 +127 0111 1111 7F +32767 7FFF +126 0111 1110 7E +32766 7FFE . . . +2 0000 0010 02 +2 0002 +1 0000 0001 01 +1 0001 0 0000 0000 00 0 0000 -1 1111 1111 FF -1 FFFF -2 1111 1110 FE -2 FFFE . . .-126 1000 0010 82 -32766 8002-127 1000 0001 81 -32767 8001-128 1000 0000 80 -32768 8000n位二進

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論