版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、匯編語言匯編語言言言介紹介紹80 x86計(jì)算機(jī)組織計(jì)算機(jī)組織清華大學(xué)計(jì)算機(jī)系列教材清華大學(xué)計(jì)算機(jī)系列教材 沈美明沈美明 溫冬蟬溫冬蟬 編著編著1. IntroductionImage Transform : Image transforms can be simple / complex mathematical operations on images which convert images from one representation to another.The output images characteristics is generally quite different fr
2、om the characteristics of the input images. This difference might be in the geometry of the information in the image or the nature of the information itself4 程序設(shè)計(jì)語言程序設(shè)計(jì)語言 面向面向機(jī)器機(jī)器的低級語言的低級語言 面向面向過程過程的高級語言的高級語言 面向面向?qū)ο髮ο蟮母呒壵Z言的高級語言 機(jī)器語言機(jī)器語言 BASIC C+ 匯編語言匯編語言 Pascal Smalltalk C VC FORTRAN JAVA COBOL5機(jī)器語言
3、:機(jī)器語言: 所謂機(jī)器語言,就是用所謂機(jī)器語言,就是用“0”和和“1”所組成的一串二進(jìn)制數(shù)所所組成的一串二進(jìn)制數(shù)所表示的命令或數(shù)據(jù),是計(jì)算機(jī)的硬件表示的命令或數(shù)據(jù),是計(jì)算機(jī)的硬件唯一唯一能夠能夠直接識別和執(zhí)行直接識別和執(zhí)行的的語言。語言。特點(diǎn):特點(diǎn):代碼效率高。代碼效率高。 難于記憶和理解,編寫程序麻煩易出錯,不利于難于記憶和理解,編寫程序麻煩易出錯,不利于學(xué)習(xí)、推廣和使用。學(xué)習(xí)、推廣和使用。aver=(x+y+z)/3;A100000306020003060400B303F6F3A306006匯編語言匯編語言 采用采用助記符助記符表示的程序語言表示的程序語言匯編語言的執(zhí)行語句與機(jī)器語言的指令
4、是一一對應(yīng)的。匯編語言的執(zhí)行語句與機(jī)器語言的指令是一一對應(yīng)的。A10000 MOV AX,X03060200 ADD AX,Y03060400 ADD AX,ZB303 MOV BL,3F6F3 DIV BLA30600 MOV AV,AX#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)文件達(dá)編譯后的目標(biāo)文件達(dá)到到3.59KBdata segmentdata segmenta db ?a
5、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 assume cs:codecs:code, , ds:datads:data, , es:dataes:datastart:start: push push dsds sub sub ax,axax,ax push ax push ax movmov ax,dataax,data movmov ds,axds,ax movmov es,
6、axes,axmovmov a,1 a,1 movmov b,2 b,2 movmov al,aal,a add add al,bal,b movmov c,alc,al lea lea dx,stringdx,string movmov ah,09 ah,09 intint 21h 21h add c,30hadd c,30h movmov dl,cdl,c movmov ah,2 ah,2 intint 21h 21h movmov dl,0ah dl,0ah intint 21h 21h movmov dl,0dh dl,0dh intint 21h 21h ret retmain ma
7、in endpendpcode endscode ends end startend start例例 C = a + bC = a + b匯編后的目標(biāo)文匯編后的目標(biāo)文件只有件只有208208字節(jié)字節(jié)匯編語言的特點(diǎn)匯編語言的特點(diǎn) 面向面向機(jī)器機(jī)器的低級語言,通常是為的低級語言,通常是為特定的計(jì)算特定的計(jì)算 機(jī)機(jī)或或計(jì)算機(jī)系列計(jì)算機(jī)系列專門設(shè)計(jì)專門設(shè)計(jì)的。的。 保持了機(jī)器語言的優(yōu)點(diǎn),具有保持了機(jī)器語言的優(yōu)點(diǎn),具有直接和簡捷直接和簡捷 的特點(diǎn)。的特點(diǎn)。 可可有效有效地訪問、控制計(jì)算機(jī)的各種地訪問、控制計(jì)算機(jī)的各種硬件硬件設(shè)備設(shè)備, , 如磁盤、存儲器、如磁盤、存儲器、CPUCPU、I/OI/O端口等
8、。端口等。 目標(biāo)代碼目標(biāo)代碼簡短簡短,占用,占用內(nèi)存少內(nèi)存少,執(zhí)行,執(zhí)行速度快速度快, 是高效的程序設(shè)計(jì)語言。是高效的程序設(shè)計(jì)語言。 經(jīng)常與高級語言經(jīng)常與高級語言配合配合使用使用。匯編語言的應(yīng)用匯編語言的應(yīng)用系統(tǒng)程序、效率代碼、系統(tǒng)程序、效率代碼、I/OI/O驅(qū)動程序驅(qū)動程序70%70%以上的以上的系統(tǒng)軟件系統(tǒng)軟件是用匯編語言編寫的。是用匯編語言編寫的。 某些快速處理、位處理、訪問硬件設(shè)備等某些快速處理、位處理、訪問硬件設(shè)備等 高效程序高效程序是用匯編語言編寫的。是用匯編語言編寫的。 高級繪圖程序、視頻游戲程序一般是用匯高級繪圖程序、視頻游戲程序一般是用匯 編語言編寫的編語言編寫的。參考資料參
9、考資料1.80X861.80X86匯編語言程序設(shè)計(jì)匯編語言程序設(shè)計(jì)沈美明沈美明 溫冬嬋溫冬嬋 清華大學(xué)出版社清華大學(xué)出版社2.IBM PC 2.IBM PC 匯編語言與程序設(shè)計(jì)匯編語言與程序設(shè)計(jì) PETER ABEL PETER ABEL 編著編著 第第4 4版版 清華大學(xué)出版社清華大學(xué)出版社.PRENTICE HALL.PRENTICE HALL第第5 5版版 人民郵電出版社人民郵電出版社3. IBM PC 3. IBM PC 匯編語言與程序設(shè)計(jì)例題習(xí)題集匯編語言與程序設(shè)計(jì)例題習(xí)題集 溫冬嬋溫冬嬋 沈美明沈美明 清華大學(xué)出版社清華大學(xué)出版社12匯編語言源程序匯編語言源程序 目目 標(biāo)標(biāo) 程程
10、序序 可可 運(yùn)運(yùn) 行行 程程 序序匯編程序匯編程序MASM連接程序連接程序LINK.asm.obj.exe匯編語言程序上機(jī)調(diào)試過程13開 始編輯記事本記事本連接LINK.EXE有錯誤?調(diào)試DEBUG.EXE有錯誤?匯編MASM.EXE有錯誤?YNYYNN運(yùn) 行*.ASM*.OBJ*.EXE匯編語言程序設(shè)計(jì)和調(diào)試過程匯編語言程序設(shè)計(jì)和調(diào)試過程14主要內(nèi)容:主要內(nèi)容: (以以X86 PC機(jī)為模型機(jī)為模型) 介紹指令系統(tǒng)和介紹指令系統(tǒng)和尋址尋址方式。方式。 介紹偽操作和匯編語言程序介紹偽操作和匯編語言程序格式格式。 說明循環(huán)、分支、子程序結(jié)構(gòu)和說明循環(huán)、分支、子程序結(jié)構(gòu)和程序設(shè)計(jì)程序設(shè)計(jì)的基本方法,
11、以及多種算的基本方法,以及多種算法的程序?qū)嵗?。法的程序?qū)嵗?說明說明BIOS和和DOS系統(tǒng)功能調(diào)用系統(tǒng)功能調(diào)用的使用方法。的使用方法。 介紹介紹宏宏等高級匯編語言技術(shù)。等高級匯編語言技術(shù)。 介紹介紹I/O程序設(shè)計(jì)方法,重點(diǎn)說明程序設(shè)計(jì)方法,重點(diǎn)說明中斷中斷原理、中斷過程及中斷程序原理、中斷過程及中斷程序設(shè)計(jì)方法。設(shè)計(jì)方法。80 x86計(jì)算機(jī)組織計(jì)算機(jī)組織 計(jì)算機(jī)系統(tǒng)計(jì)算機(jī)系統(tǒng) 存儲器存儲器 中央處理機(jī)中央處理機(jī) 外部設(shè)備外部設(shè)備計(jì)算機(jī)系統(tǒng)計(jì)算機(jī)系統(tǒng)硬件:硬件:中央處理機(jī)中央處理機(jī) CPU總線控制 邏輯接 口接 口存儲器存儲器大容量存儲器I/O設(shè)備I/O子系統(tǒng)子系統(tǒng)系統(tǒng)總線系統(tǒng)總線.軟件:軟件
12、:系統(tǒng)軟件 用戶軟件18微處理器微處理器通用寄存器:通用寄存器:CPU組成:算術(shù)邏輯部件組成:算術(shù)邏輯部件ALU、控制邏輯、工作寄存器控制邏輯、工作寄存器 AXBX CXDX 高16位 高8位 低8位 AH AL BH BL CH CL DH DL EAXEBX ECXEDXAX: (累加器累加器) 乘法、除法運(yùn)算,所有乘法、除法運(yùn)算,所有IO指令指令都用都用AX與與外部外部設(shè)備數(shù)據(jù)傳送。設(shè)備數(shù)據(jù)傳送。BX:數(shù)據(jù)尋址常用作數(shù)據(jù)尋址常用作基址基址寄存器。寄存器。CX:常用來保存常用來保存計(jì)數(shù)值計(jì)數(shù)值,如在移位指令、循環(huán)指令和串處理指令中用作計(jì)數(shù)。,如在移位指令、循環(huán)指令和串處理指令中用作計(jì)數(shù)。D
13、X:雙字長數(shù)據(jù)運(yùn)算時,常用于存儲高字,雙字長數(shù)據(jù)運(yùn)算時,常用于存儲高字,IO操作時,常用操作時,常用DX存放存放端口地址端口地址。19段寄存器(段寄存器(1616位):位):CS:存儲代碼段的段地址。存儲代碼段的段地址。 DS:存儲數(shù)據(jù)段的段地址。存儲數(shù)據(jù)段的段地址。SS:存儲堆棧段的段地址。存儲堆棧段的段地址。 ES:存儲附加段的段地址。存儲附加段的段地址。FS、GS:存儲附加數(shù)據(jù)段的段地址。存儲附加數(shù)據(jù)段的段地址。 高16位 低16位指針及變址寄存器:SP: 堆棧指針寄存器。堆棧指針寄存器。 (SS):(SP)為當(dāng)前堆棧段的棧頂指針。為當(dāng)前堆棧段的棧頂指針。BP:堆棧段堆棧段數(shù)據(jù)尋址常用作
14、數(shù)據(jù)尋址常用作基址基址寄存器。寄存器。DI:目的變址目的變址寄存器。寄存器。SI: 源變址源變址寄存器。寄存器。IP: 指令指針指令指針寄存器,用來存放代碼段的偏移地址。寄存器,用來存放代碼段的偏移地址。 (CS):(IP)指向下一條要執(zhí)行指令的首地址指向下一條要執(zhí)行指令的首地址。 ESPEBP EDIESI EIP SPBP DISIIP20標(biāo)志寄存器(程序狀態(tài)字寄存器 PSW)OF OF 溢出標(biāo)志溢出標(biāo)志SF SF 符號標(biāo)志符號標(biāo)志 ZF ZF 零標(biāo)志零標(biāo)志CF CF 進(jìn)位標(biāo)志進(jìn)位標(biāo)志AF AF 輔助進(jìn)位標(biāo)志輔助進(jìn)位標(biāo)志PF PF 奇偶標(biāo)志奇偶標(biāo)志 15 14 13 12 11 10 9
15、8 7 6 5 4 3 2 1 0OF DF IF TF SF ZF AF PF CFEFLAGS(32位位)FLAGS(16位位)DF DF 方向標(biāo)志方向標(biāo)志IF IF 中斷標(biāo)志中斷標(biāo)志TF TF 陷阱標(biāo)志陷阱標(biāo)志條件碼標(biāo)志控制標(biāo)志OV NVNGPLZRNZCYNCACNAPEPODN UPEIDI21例:例: MOV AX, 1 MOV BX, 2 ADD AX, BX執(zhí)行后,執(zhí)行后,(AX)=3, OF=0, CF=0, ZF=0,SF=0例:例: MOV AX, FFFFH MOV BX, 1 ADD AX, BX指令執(zhí)行后,指令執(zhí)行后,(AX)=0, OF=0, CF=1, ZF=1
16、, SF=0例:ADD AX, BX JO / JC ERROR ?存儲器存儲器存儲單元的存儲單元的地址地址和和內(nèi)容內(nèi)容: 存儲器以存儲器以字節(jié)(字節(jié)(8 bit)為編程單位為編程單位 每個字節(jié)單元都有唯一的地址編碼每個字節(jié)單元都有唯一的地址編碼 地址用無符號整數(shù)地址用無符號整數(shù)來表示(編程用十六進(jìn)制表示)來表示(編程用十六進(jìn)制表示) 一個一個字要占用相繼的兩個字節(jié)字要占用相繼的兩個字節(jié) 低位字節(jié)存入低地址,高位字節(jié)存入高地址低位字節(jié)存入低地址,高位字節(jié)存入高地址 字單元地址用它的低地址字單元地址用它的低地址來表示來表示 機(jī)器以機(jī)器以偶地址偶地址訪問(讀訪問(讀 / 寫)存儲器寫)存儲器存儲器
17、的分段:存儲器的分段:20 根地址線:根地址線: 地址范圍地址范圍 00000H FFFFFH (1MB)機(jī)器字長機(jī)器字長16位:位:僅能表示地址范圍僅能表示地址范圍 0000H FFFFH (64KB)小段:小段:每每16個字節(jié)為一小段,共有個字節(jié)為一小段,共有64K個小段個小段 小段的首地址小段的首地址 00000 H 0000F H 00010 H 0001F H 00020 H 0002F H FFFF0 H FFFFF H 段起始地址:段起始地址:小段首地址小段首地址段的大?。憾蔚拇笮。?64K 范圍內(nèi)的任意字節(jié)范圍內(nèi)的任意字節(jié)存儲器的存儲器的邏輯邏輯分段:分段: 存儲器存儲器64K
18、B代碼01500H42000H1CD00H0150H4200H1CD0H段寄存器段寄存器CSDSSSES64KB堆棧64KB數(shù)據(jù) 64KB附加數(shù)據(jù)B0000HB000H 存儲器存儲器 8KB代碼 2KB數(shù)據(jù) 256堆棧02000H04800H04000H0200H0400H0480HCSDSSS優(yōu)點(diǎn)優(yōu)點(diǎn): 允許程序在存儲器內(nèi)允許程序在存儲器內(nèi)重定位重定位; 允許允許實(shí)模式實(shí)模式程序在程序在保護(hù)模式保護(hù)模式下運(yùn)行;下運(yùn)行; 有利于有利于程序程序和和數(shù)據(jù)數(shù)據(jù)的的分離分離。物理地址物理地址 = 16 段地址段地址 + 偏移地址偏移地址 16 位 段 地 址 16 位 偏 移 地 址 0000+ 20
19、 位 物 理 地 址 例:(DS) = 2100H, (BX) = 0500H (PA) = 21000H+0500H = 21500H 存儲器的存儲器的邏輯地址邏輯地址與與物理地址物理地址 10011111 00100110 01001000邏輯地址邏輯地址段地址段地址 : 偏移地址偏移地址 1000 : 0000H 1000 : 0001H1000 : 0002H1000 : 0003H1000 : 0004H1000 : 0005H 物理地址物理地址10000H10001H10002H10003H 10004H10005H 10000011 01011100 10100010字節(jié)內(nèi)容(1
20、0000H)9FH;(10001H)26H字內(nèi)容 (10000H)269FH;(10001H)4826H訪問兩次內(nèi)存8086/8088寄存器組:寄存器組:數(shù)據(jù)寄存器數(shù)據(jù)寄存器:指針指針及變址寄存器及變址寄存器:SP、BP、SI、DI段寄存器段寄存器: CS、DS、SS、ES控制寄存器控制寄存器: IP、FLAGSCPU組成:算術(shù)邏輯部件ALU、 控制器、寄存器 AX BX CX DX AH AL BH BL CH CL DH DL 高8位 低8位匯編程序員可見 寄存器與存儲器的比較:寄存器與存儲器的比較: 寄寄 存存 器器 存存 儲儲 器器 在在CPU內(nèi)部內(nèi)部 在在CPU外部外部訪問速度快訪問
21、速度快 訪問速度慢訪問速度慢容量小,成本高容量小,成本高 容量大,成本低容量大,成本低用名字表示用名字表示 用地址表示用地址表示沒有地址沒有地址 地址可用各種方式形成地址可用各種方式形成外部設(shè)備外部設(shè)備 外部設(shè)備與主機(jī)( CPU 和存儲器)的通信是通過外設(shè)接口(Interface)進(jìn)行的,每個接口包括一組寄存器。數(shù)據(jù)寄存器:存放外設(shè)和主機(jī)間傳送的數(shù)據(jù)狀態(tài)寄存器:保存外設(shè)或接口的狀態(tài)信息命令寄存器:保存CPU發(fā)給外設(shè)或接口的控制命令 外設(shè)中每個寄存器有一個端口(Port)地址,構(gòu)成一個獨(dú)立于內(nèi)存的 I / O 地址空間地址空間:0000H FFFFH匯編程序員可見31存儲器工作模式存儲器工作模式
22、實(shí)模式:實(shí)模式: 內(nèi)存尋址內(nèi)存尋址1M,采用采用段加偏移地址段加偏移地址方式尋方式尋址??蓪ぶ啡我獾刂分贰?蓪ぶ啡我獾刂?所有指令都相當(dāng)于工作所有指令都相當(dāng)于工作在在特權(quán)級特權(quán)級。DOS工作在工作在實(shí)模式實(shí)模式下。下。 保護(hù)模式:保護(hù)模式: 內(nèi)存尋址方式為:內(nèi)存尋址內(nèi)存尋址方式為:內(nèi)存尋址4GB,支持分支持分頁,支持頁,支持虛擬內(nèi)存虛擬內(nèi)存,支持,支持優(yōu)先級優(yōu)先級,支持,支持多任多任務(wù)務(wù)等。等。 Windows工作在保護(hù)模式下。工作在保護(hù)模式下。支持支持多任務(wù)多任務(wù)處理功能處理功能支持支持虛擬存儲器虛擬存儲器特性特性 保護(hù)模式下的保護(hù)模式下的80 x86保護(hù)模式下的存儲器尋址保護(hù)模式下的存儲器尋址 所選存儲單元所選存儲單元 描描 述述 符符64描述符表描述符表所選段所選段存存 儲儲 器器段基地址段基地址32選擇器選擇器16偏移地址偏移地址 32邏輯地址邏輯地址33選擇選擇 符符段寄存器段寄存器描描
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024自然人之間借款合同范本
- 2025年度城市綜合體場地合作經(jīng)營合同
- 2025年度文化產(chǎn)業(yè)園物業(yè)管理與文化活動策劃服務(wù)協(xié)議3篇
- 2024版教育機(jī)構(gòu)裝潢工程合同樣本
- 二零二四年度9A文智能家居系統(tǒng)定制開發(fā)合同
- 2024版環(huán)評工程服務(wù)合同范本大全
- 2025年度生態(tài)農(nóng)業(yè)用地承包種植合作合同規(guī)范文本3篇
- 二零二四年度BIM可視化展示與演示合同
- 二零二五年度廁所改造工程環(huán)保標(biāo)準(zhǔn)制定合同2篇
- 二零二五年度金融借款合同電子化轉(zhuǎn)型的法律挑戰(zhàn)3篇
- 離職分析報告
- 春節(jié)家庭用電安全提示
- 醫(yī)療糾紛預(yù)防和處理?xiàng)l例通用課件
- 廚邦醬油推廣方案
- 乳腺癌診療指南(2024年版)
- 高三數(shù)學(xué)寒假作業(yè)1
- 保險產(chǎn)品創(chuàng)新與市場定位培訓(xùn)課件
- (完整文本版)體檢報告單模版
- 1例左舌鱗癌手術(shù)患者的圍手術(shù)期護(hù)理體會
- (完整)100道兩位數(shù)加減兩位數(shù)口算題(難)
- 鋼結(jié)構(gòu)牛腿計(jì)算
評論
0/150
提交評論