




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、匯編語言匯編語言言言介紹介紹80 x86計算機組織計算機組織清華大學計算機系列教材清華大學計算機系列教材 沈美明沈美明 溫冬蟬溫冬蟬 編著編著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 程序設計語言程序設計語言 面向面向機器機器的低級語言的低級語言 面向面向過程過程的高級語言的高級語言 面向面向?qū)ο髮ο蟮母呒壵Z言的高級語言 機器語言機器語言 BASIC C+ 匯編語言匯編語言 Pascal Smalltalk C VC FORTRAN JAVA COBOL5機器語言
3、:機器語言: 所謂機器語言,就是用所謂機器語言,就是用“0”和和“1”所組成的一串二進制數(shù)所所組成的一串二進制數(shù)所表示的命令或數(shù)據(jù),是計算機的硬件表示的命令或數(shù)據(jù),是計算機的硬件唯一唯一能夠能夠直接識別和執(zhí)行直接識別和執(zhí)行的的語言。語言。特點:特點:代碼效率高。代碼效率高。 難于記憶和理解,編寫程序麻煩易出錯,不利于難于記憶和理解,編寫程序麻煩易出錯,不利于學習、推廣和使用。學習、推廣和使用。aver=(x+y+z)/3;A100000306020003060400B303F6F3A306006匯編語言匯編語言 采用采用助記符助記符表示的程序語言表示的程序語言匯編語言的執(zhí)行語句與機器語言的指令
4、是一一對應的。匯編語言的執(zhí)行語句與機器語言的指令是一一對應的。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; 編譯后的目標文件達編譯后的目標文件達到到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匯編后的目標文匯編后的目標文件只有件只有208208字節(jié)字節(jié)匯編語言的特點匯編語言的特點 面向面向機器機器的低級語言,通常是為的低級語言,通常是為特定的計算特定的計算 機機或或計算機系列計算機系列專門設計專門設計的。的。 保持了機器語言的優(yōu)點,具有保持了機器語言的優(yōu)點,具有直接和簡捷直接和簡捷 的特點。的特點。 可可有效有效地訪問、控制計算機的各種地訪問、控制計算機的各種硬件硬件設備設備, , 如磁盤、存儲器、如磁盤、存儲器、CPUCPU、I/OI/O端口等
8、。端口等。 目標代碼目標代碼簡短簡短,占用,占用內(nèi)存少內(nèi)存少,執(zhí)行,執(zhí)行速度快速度快, 是高效的程序設計語言。是高效的程序設計語言。 經(jīng)常與高級語言經(jīng)常與高級語言配合配合使用使用。匯編語言的應用匯編語言的應用系統(tǒng)程序、效率代碼、系統(tǒng)程序、效率代碼、I/OI/O驅(qū)動程序驅(qū)動程序70%70%以上的以上的系統(tǒng)軟件系統(tǒng)軟件是用匯編語言編寫的。是用匯編語言編寫的。 某些快速處理、位處理、訪問硬件設備等某些快速處理、位處理、訪問硬件設備等 高效程序高效程序是用匯編語言編寫的。是用匯編語言編寫的。 高級繪圖程序、視頻游戲程序一般是用匯高級繪圖程序、視頻游戲程序一般是用匯 編語言編寫的編語言編寫的。參考資料參
9、考資料1.80X861.80X86匯編語言程序設計匯編語言程序設計沈美明沈美明 溫冬嬋溫冬嬋 清華大學出版社清華大學出版社2.IBM PC 2.IBM PC 匯編語言與程序設計匯編語言與程序設計 PETER ABEL PETER ABEL 編著編著 第第4 4版版 清華大學出版社清華大學出版社.PRENTICE HALL.PRENTICE HALL第第5 5版版 人民郵電出版社人民郵電出版社3. IBM PC 3. IBM PC 匯編語言與程序設計例題習題集匯編語言與程序設計例題習題集 溫冬嬋溫冬嬋 沈美明沈美明 清華大學出版社清華大學出版社12匯編語言源程序匯編語言源程序 目目 標標 程程
10、序序 可可 運運 行行 程程 序序匯編程序匯編程序MASM連接程序連接程序LINK.asm.obj.exe匯編語言程序上機調(diào)試過程13開 始編輯記事本記事本連接LINK.EXE有錯誤?調(diào)試DEBUG.EXE有錯誤?匯編MASM.EXE有錯誤?YNYYNN運 行*.ASM*.OBJ*.EXE匯編語言程序設計和調(diào)試過程匯編語言程序設計和調(diào)試過程14主要內(nèi)容:主要內(nèi)容: (以以X86 PC機為模型機為模型) 介紹指令系統(tǒng)和介紹指令系統(tǒng)和尋址尋址方式。方式。 介紹偽操作和匯編語言程序介紹偽操作和匯編語言程序格式格式。 說明循環(huán)、分支、子程序結(jié)構(gòu)和說明循環(huán)、分支、子程序結(jié)構(gòu)和程序設計程序設計的基本方法,
11、以及多種算的基本方法,以及多種算法的程序?qū)嵗?。法的程序?qū)嵗?說明說明BIOS和和DOS系統(tǒng)功能調(diào)用系統(tǒng)功能調(diào)用的使用方法。的使用方法。 介紹介紹宏宏等高級匯編語言技術(shù)。等高級匯編語言技術(shù)。 介紹介紹I/O程序設計方法,重點說明程序設計方法,重點說明中斷中斷原理、中斷過程及中斷程序原理、中斷過程及中斷程序設計方法。設計方法。80 x86計算機組織計算機組織 計算機系統(tǒng)計算機系統(tǒng) 存儲器存儲器 中央處理機中央處理機 外部設備外部設備計算機系統(tǒng)計算機系統(tǒng)硬件:硬件:中央處理機中央處理機 CPU總線控制 邏輯接 口接 口存儲器存儲器大容量存儲器I/O設備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: (累加器累加器) 乘法、除法運算,所有乘法、除法運算,所有IO指令指令都用都用AX與與外部外部設備數(shù)據(jù)傳送。設備數(shù)據(jù)傳送。BX:數(shù)據(jù)尋址常用作數(shù)據(jù)尋址常用作基址基址寄存器。寄存器。CX:常用來保存常用來保存計數(shù)值計數(shù)值,如在移位指令、循環(huán)指令和串處理指令中用作計數(shù)。,如在移位指令、循環(huán)指令和串處理指令中用作計數(shù)。D
13、X:雙字長數(shù)據(jù)運算時,常用于存儲高字,雙字長數(shù)據(jù)運算時,常用于存儲高字,IO操作時,常用操作時,常用DX存放存放端口地址端口地址。19段寄存器(段寄存器(1616位):位):CS:存儲代碼段的段地址。存儲代碼段的段地址。 DS:存儲數(shù)據(jù)段的段地址。存儲數(shù)據(jù)段的段地址。SS:存儲堆棧段的段地址。存儲堆棧段的段地址。 ES:存儲附加段的段地址。存儲附加段的段地址。FS、GS:存儲附加數(shù)據(jù)段的段地址。存儲附加數(shù)據(jù)段的段地址。 高16位 低16位指針及變址寄存器:SP: 堆棧指針寄存器。堆棧指針寄存器。 (SS):(SP)為當前堆棧段的棧頂指針。為當前堆棧段的棧頂指針。BP:堆棧段堆棧段數(shù)據(jù)尋址常用作
14、數(shù)據(jù)尋址常用作基址基址寄存器。寄存器。DI:目的變址目的變址寄存器。寄存器。SI: 源變址源變址寄存器。寄存器。IP: 指令指針指令指針寄存器,用來存放代碼段的偏移地址。寄存器,用來存放代碼段的偏移地址。 (CS):(IP)指向下一條要執(zhí)行指令的首地址指向下一條要執(zhí)行指令的首地址。 ESPEBP EDIESI EIP SPBP DISIIP20標志寄存器(程序狀態(tài)字寄存器 PSW)OF OF 溢出標志溢出標志SF SF 符號標志符號標志 ZF ZF 零標志零標志CF CF 進位標志進位標志AF AF 輔助進位標志輔助進位標志PF PF 奇偶標志奇偶標志 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 方向標志方向標志IF IF 中斷標志中斷標志TF TF 陷阱標志陷阱標志條件碼標志控制標志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ù)來表示(編程用十六進制表示)來表示(編程用十六進制表示) 一個一個字要占用相繼的兩個字節(jié)字要占用相繼的兩個字節(jié) 低位字節(jié)存入低地址,高位字節(jié)存入高地址低位字節(jié)存入低地址,高位字節(jié)存入高地址 字單元地址用它的低地址字單元地址用它的低地址來表示來表示 機器以機器以偶地址偶地址訪問(讀訪問(讀 / 寫)存儲器寫)存儲器存儲器
17、的分段:存儲器的分段:20 根地址線:根地址線: 地址范圍地址范圍 00000H FFFFFH (1MB)機器字長機器字長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)點優(yōu)點: 允許程序在存儲器內(nèi)允許程序在存儲器內(nèi)重定位重定位; 允許允許實模式實模式程序在程序在保護模式保護模式下運行;下運行; 有利于有利于程序程序和和數(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、速度快 訪問速度慢訪問速度慢容量小,成本高容量小,成本高 容量大,成本低容量大,成本低用名字表示用名字表示 用地址表示用地址表示沒有地址沒有地址 地址可用各種方式形成地址可用各種方式形成外部設備外部設備 外部設備與主機( CPU 和存儲器)的通信是通過外設接口(Interface)進行的,每個接口包括一組寄存器。數(shù)據(jù)寄存器:存放外設和主機間傳送的數(shù)據(jù)狀態(tài)寄存器:保存外設或接口的狀態(tài)信息命令寄存器:保存CPU發(fā)給外設或接口的控制命令 外設中每個寄存器有一個端口(Port)地址,構(gòu)成一個獨立于內(nèi)存的 I / O 地址空間地址空間:0000H FFFFH匯編程序員可見31存儲器工作模式存儲器工作模式
22、實模式:實模式: 內(nèi)存尋址內(nèi)存尋址1M,采用采用段加偏移地址段加偏移地址方式尋方式尋址。可尋址任意地址址。可尋址任意地址,所有指令都相當于工作所有指令都相當于工作在在特權(quán)級特權(quán)級。DOS工作在工作在實模式實模式下。下。 保護模式:保護模式: 內(nèi)存尋址方式為:內(nèi)存尋址內(nèi)存尋址方式為:內(nèi)存尋址4GB,支持分支持分頁,支持頁,支持虛擬內(nèi)存虛擬內(nèi)存,支持,支持優(yōu)先級優(yōu)先級,支持,支持多任多任務務等。等。 Windows工作在保護模式下。工作在保護模式下。支持支持多任務多任務處理功能處理功能支持支持虛擬存儲器虛擬存儲器特性特性 保護模式下的保護模式下的80 x86保護模式下的存儲器尋址保護模式下的存儲器尋址 所選存儲單元所選存儲單元 描描 述述 符符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)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 國際結(jié)算流動資金貸款合同樣本
- 鞋類定制加工合同范本
- 農(nóng)村集體土地承包合同版
- 試驗檢測技術(shù)服務合同模板
- 電力調(diào)度合同協(xié)議
- 化工原料采購合同格式范本
- 新建住房分期付款合同
- 甲乙丙三方租賃合同補充協(xié)議
- 搬家行業(yè)安全生產(chǎn)與事故預防考核試卷
- 危險品倉儲安全操作規(guī)程優(yōu)化考核試卷
- 2024中考英語1500詞匯默寫匯總表練習(含答案)
- 2024屆高三英語作文復習寫作專項讀后續(xù)寫:幫我修車的墨西哥一家人(人性之光)任務單學案
- 2022年四川省綿陽市中考語文真題
- 麥琪的禮物全面英文詳細介紹
- 使用智能手機教程文檔
- 數(shù)字資產(chǎn)培訓課件
- (醫(yī)院安全生產(chǎn)培訓)課件
- 大檔案盒正面、側(cè)面標簽模板
- 幼兒園優(yōu)質(zhì)公開課:中班數(shù)學《到艾比家做客》課件
- 部編人教版歷史八年級下冊《三大改造》省優(yōu)質(zhì)課一等獎教案
- 水輪機調(diào)速器現(xiàn)場調(diào)試
評論
0/150
提交評論