微機原理與接口技術(shù)(第2版)第04章 8086匯編語言程序設計.ppt_第1頁
微機原理與接口技術(shù)(第2版)第04章 8086匯編語言程序設計.ppt_第2頁
微機原理與接口技術(shù)(第2版)第04章 8086匯編語言程序設計.ppt_第3頁
微機原理與接口技術(shù)(第2版)第04章 8086匯編語言程序設計.ppt_第4頁
微機原理與接口技術(shù)(第2版)第04章 8086匯編語言程序設計.ppt_第5頁
已閱讀5頁,還剩43頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第四章 8086匯編語言程序設計,幾個概念 8086匯編語言的語句 8086匯編中的偽指令 8086匯編中的運算符 匯編語言程序設計 宏定義與宏調(diào)用 系統(tǒng)調(diào)用,幾個概念,匯編語言 匯編語言源程序 匯編 匯編程序,41 8086匯編語言的語句,匯編語言由指令性語句和指令性語句組成 一、指令性語句格式 標號: 操作碼 操作數(shù)1, 操作數(shù)2 ;注釋 二、指示性語句格式 標識符(名字) 指示符(偽指令) 表達式 三、有關(guān)屬性 存儲器操作數(shù)的屬性有三種:段值、段內(nèi)偏移量和類型。,42 8086匯編中的偽指令,一、 符號定義語句 1、等值語句 格式:符號名 EQU 表達式 例: PORT EQU 1234

2、 BUFF EQU PORT58 MEM EQU DS:BP20H COUNT EQU CX ABC EQU AAA,2、等號語句 格式: NUM34 NUM341,二、變量定義語句 格式: 符號名 DB/DW/DD 表達式,1、定義一組數(shù)據(jù) 例1: BUFF DW 1234H, 0ABCDH, 8EH DW 79DH, 7B6AH 2、定義一串字符 例2: STR DB Welcome ! 3、定義保留存儲單元 例3: SUM DW ? ,?,4、復制操作 復制操作符DUP(Duplication)可預置重復的數(shù)值 例4: ALL_ZERO DB 0,0,0,0,0 用復制操作可改為: AL

3、L_ZERO DB 5 DUP(0) 5、將已定義的地址存入內(nèi)存單元 例5: LIT DD CYC CYC: MOV AX , BX,三、段定義語句 1、 段定義語句格式: 段名 SEGMENT 定位類型 組合類型 類別 段名 ENDS 只需要掌握 段名 SEGMENT 段名 ENDS,2、段假設語句 ASSUME 段寄存器名:段名, 3、ORG偽指令、地址計數(shù)器 $ ORG偽指令格式: ORG 4、END 表示源代碼結(jié)束 格式為: END 常數(shù)或表達式.,四、過程定義語句 過程名 PROC NEAR/FAR RET 過程名 ENDP,43 8086匯編中的運算符,一、常用運算符 1、算術(shù)運算

4、符 (加)、(減)、*(乘)、/(除)、MOD(求余)。 2、邏輯運算符 AND、OR、XOR、NOT,3、關(guān)系運算符 EQ(相等)、NE(不等、) LT(小于)、GT(大于)、 LE(小于等于)、GE(大于等于)。 關(guān)系成立,全1 關(guān)系不成立,全0 例: MOV DL , 10H LT 16 MOV DL,0 例: AND AX , 555 GT 222 AND AX,0FFFFH,二、 常用的操作符 4、分析操作符 1)SEG操作符 例: MOV AX , SEG BUFF 2)OFFSET操作符 例:MOV BX , OFFSET BUFF,3)TYPE操作符 對于變量有3種: 1 字節(jié)

5、型; 2 字型; 4 雙字型; 對于標號有2種:1 NEAR(段內(nèi)), 2 FAR(段間)。 例: BUFF DB 20H MOV BX ,TYPE BUFF MOV BX,01,4)LENGTH操作符 5)SIZE操作符 SIZETYPELENGTH 例:BUFF DB 10DIP(?) MOV CX,LENGTH BUF MOV CX,10 MOV CX,SIZE BUF MOV CX,20,5、綜合運算符(合成操作符) 功能: 1、由已有的操作數(shù)建立新的操作數(shù); 2、新操作數(shù)和已有的操作數(shù)類型不一樣 1)PTR運算符 格式: 類型 PTR 表達式 例:INC WORD PTR BX wx

6、dw 1234h mov al, byte ptr wx mov ah, byte ptr wx+1 2)THIS操作符 格式: THIS 類型(或?qū)傩? 例:FIRST EQU THIS BYTE SECOND DW 100 DUP (?),44匯編語言程序設計,常用的匯編語言程序框架: DATA SEGMENT;定義數(shù)據(jù)段 VAL1 DB 12H , 8EH ;定義變量 DATA ENDS ;數(shù)據(jù)段結(jié)束 CODE SEGMENT;定義代碼段 ASSUME DS:DATA , CS: CODE;段屬性說明 START: MOV AX , DATA;初始化DS MOV DS , AX MOV

7、AX , 4C00H;返回DOS INT 21H CODE ENDS ;代碼段結(jié)束 END START ;源程序結(jié)束,特點 程序分段 語句由指令性和指示性語句組成 兩種程序框架,框架一: DATA SEGMENT;定義數(shù)據(jù)段 VAL1 DB 12H , 8EH ;定義變量 DATA ENDS ;數(shù)據(jù)段結(jié)束 CODE SEGMENT;定義代碼段 ASSUME DS:DATA , CS: CODE;段屬性說明 START: MOV AX , DATA;初始化DS MOV DS , AX ; 填寫代碼 MOV AX , 4C00H;返回DOS INT 21H CODE ENDS ;代碼段結(jié)束 END

8、 START ;源程序結(jié)束,框架二: DATA SEGMENT;定義數(shù)據(jù)段 VAL1 DB 12H , 8EH ;定義變量 DATA ENDS ;數(shù)據(jù)段結(jié)束 CODE SEGMENT;定義代碼段 MAIN PROC FAR ASSUME DS:DATA , CS: CODE;段屬性說明 START: PUSH DS MOV AX , 0 PUSH AX MOV AX,DATA MOV DS,AX ;填寫代碼 RET MAIN ENDP CODE ENDS ;代碼段結(jié)束 END START ;源程序結(jié)束,一、匯編語言程序設計基本步驟 分析問題,確定模型 確定算法 繪制流程圖 編寫程序 檢查和調(diào)試

9、 二、匯編語言程序的基本結(jié)構(gòu),1、順序結(jié)構(gòu),舉例,把al內(nèi)容除2,并四舍五入 完成 x1*x2x3 x1:byte x2:word x3 34bit,2、分支結(jié)構(gòu),舉例,實現(xiàn),用查表法確定分支 a、對8種產(chǎn)品進行編號0,1,7 b、每一個編號對應一個入口地址 proc0,proc1,proc7 步驟: a、把入口地址放在Table開始的內(nèi)存單元; b、根據(jù)key內(nèi)容進行查表實現(xiàn)分支轉(zhuǎn)移,3、循環(huán)結(jié)構(gòu),舉例,例1、計算y0241998 ydxax 查找數(shù)組中是否由關(guān)鍵字, 有:變量dd11;dd2關(guān)鍵字偏移量 無:變量dd10 方法一、用loop指令 方法二、用loopnz(loopne)指令,

10、Call proc1,ret,實現(xiàn)方法 主程序有調(diào)用指令call 子程序有返回指令ret 特點 Call指令與ret缺一不可 現(xiàn)場保護 入口出口參數(shù)設置,舉例 編寫AX*10AX子程序,子程序編寫 1、子程序組成 使用說明 a、子程序功能 b、使用寄存器情況 c、入口出口參數(shù) 程序體 入口出口參數(shù)傳遞 現(xiàn)場保護 功能程序段,;這是一個乘10子程序 ;使用寄存器AX ;入口:AX,出口:AX mul10proc far push bx ;保護現(xiàn)場 pushf add ax,ax;2ax mov bx,ax;2axbx add ax,ax;4ax add ax,ax;8ax add ax,bx;1

11、0ax popf;恢復現(xiàn)場 pop bx ret mul10endp,功能程序段,2、現(xiàn)場保護和入口出口參數(shù)傳遞 (1)、現(xiàn)場保護 方案一:在子程序中保護 靈活,不方便 方案二:在主程序中保護 方便,不靈活 (2)、參數(shù)傳遞 寄存器傳遞 變量傳遞 堆棧傳遞,舉例 1、數(shù)組元素求和,2、計算 N! (1)如果AL0,則結(jié)果為1; (2)如果AL!0,在堆棧中形成n,n1,n2,1; (3)從堆棧中推出1,2,n1,n2,計算n!,4.4 系統(tǒng)調(diào)用,一、PCDOS執(zhí)行流程,BIOS,IBMBIO,IBMDOS,鍵盤命令,命令處理程序,文件管理,基本輸入/輸出,BIOS,用戶程序,用戶程序,ROM,IBMBIO,IBMDOS,二、DOS系統(tǒng)子程序功能 1、磁盤管理 2、內(nèi)存管理 3、系統(tǒng)輸入/輸出 共87個子程序,三、系統(tǒng)功能調(diào)用 對87個子程序進行編號,根據(jù)編號進行相關(guān)處理 格式 1、入口參數(shù) 2、編號ah 3、INT 21H,編號ah INT 21,ah=1 1號調(diào)用,ah=2 2號調(diào)用,常用的系統(tǒng)調(diào)用 1、1號調(diào)用鍵盤輸入 2、8號調(diào)用鍵盤輸入 3、6號調(diào)用顯示及輸入 4、9號調(diào)用輸出字符 5、10號調(diào)用輸

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論