第四章 8086匯編語(yǔ)言程序設(shè)計(jì) 微機(jī)原理與接口技術(shù) 彭虎.ppt_第1頁(yè)
第四章 8086匯編語(yǔ)言程序設(shè)計(jì) 微機(jī)原理與接口技術(shù) 彭虎.ppt_第2頁(yè)
第四章 8086匯編語(yǔ)言程序設(shè)計(jì) 微機(jī)原理與接口技術(shù) 彭虎.ppt_第3頁(yè)
第四章 8086匯編語(yǔ)言程序設(shè)計(jì) 微機(jī)原理與接口技術(shù) 彭虎.ppt_第4頁(yè)
第四章 8086匯編語(yǔ)言程序設(shè)計(jì) 微機(jī)原理與接口技術(shù) 彭虎.ppt_第5頁(yè)
已閱讀5頁(yè),還剩44頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

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

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

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

4、符 (加)、(減)、*(乘)、/(除)、MOD(求余)。 2、邏輯運(yùn)算符 AND、OR、XOR、NOT,3、關(guān)系運(yù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操作符 對(duì)于變量有3種: 1 字節(jié)

5、型; 2 字型; 4 雙字型; 對(duì)于標(biāo)號(hào)有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、綜合運(yùn)算符(合成操作符) 功能: 1、由已有的內(nèi)存操作數(shù)建立新的內(nèi)存操作數(shù); 2、新操作數(shù)和已有的操作數(shù)類型不一樣 1)PTR運(yùn)算符 格式: 類型 PTR 表達(dá)式 例:INC WORD PTR B

6、X wxdw 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匯編語(yǔ)言程序設(shè)計(jì),常用的匯編語(yǔ)言程序框架: DATA SEGMENT;定義數(shù)據(jù)段 VAL1 DB 12H , 8EH ;定義變量 DATA ENDS ;數(shù)據(jù)段結(jié)束 CODE SEGMENT;定義代碼段 ASSUME DS:DATA , CS: CODE;段屬性說(shuō)明 START: MOV AX , DATA;初始化DS MOV DS , AX

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

8、 END 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;段屬性說(shuō)明 START: PUSH DS MOV AX , 0 PUSH AX MOV AX,DATA MOV DS,AX ;填寫(xiě)代碼 RET MAIN ENDP CODE ENDS ;代碼段結(jié)束 END START ;源程序結(jié)束,一、匯編語(yǔ)言程序設(shè)計(jì)基本步驟 分析問(wèn)題,確定模型 確定算法 繪制流程圖 編寫(xiě)程序 檢

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

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

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

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論