




已閱讀5頁(yè),還剩54頁(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)介
微機(jī)原理及應(yīng)用,主講教師 張西良,2019/7/13,第四章 匯編語(yǔ)言及匯編程序設(shè)計(jì),2,第四章 匯編語(yǔ)言及匯編程序設(shè)計(jì),一、概述 二、偽指令 三、表達(dá)式及運(yùn)算符 四、宏指令 五、匯編語(yǔ)言程序的上機(jī)過(guò)程 六、匯編程序的設(shè)計(jì)過(guò)程 七、匯編程序基本設(shè)計(jì)方法 八、系統(tǒng)功能調(diào)用 例題,作業(yè),2019/7/13,第四章 匯編語(yǔ)言及匯編程序設(shè)計(jì),3,一、概述,匯編語(yǔ)言是一種面向CPU指令系統(tǒng)的程序設(shè)計(jì)語(yǔ)言。指令格式:,1、標(biāo)號(hào)是指該指令的符號(hào)地址,以冒號(hào)結(jié)束; 2、用助記符表示操作碼,是指令名稱的代表符號(hào),是語(yǔ)句中的關(guān)鍵字,不可缺??;,2019/7/13,第四章 匯編語(yǔ)言及匯編程序設(shè)計(jì),4,一、概述(續(xù)上頁(yè)),3、用符號(hào)代表操作數(shù)或操作數(shù)地址。 操作數(shù)是本指令執(zhí)行需要的數(shù)據(jù)。 有些指令不需要指明操作數(shù),可以默認(rèn);有些指令需要兩個(gè)操作數(shù);還有些操作數(shù)可以用表達(dá)式。 4 、注釋項(xiàng)是可選項(xiàng),用分號(hào)開(kāi)始。,2019/7/13,第四章 匯編語(yǔ)言及匯編程序設(shè)計(jì),5,一、概述(續(xù)上頁(yè)),用匯編語(yǔ)言編寫(xiě)的程序稱為源程序,常用的匯編程序有ASM-86和宏匯編MASM-86。 匯編語(yǔ)言源程序的組成部分: 可以使用CPU指令系統(tǒng)所提供的指令(硬指令); 可以使用各種符合匯編語(yǔ)法的表達(dá)式, 運(yùn)算符以及自行定義生成滿足需要的目標(biāo)代碼的指令。,2019/7/13,第四章 匯編語(yǔ)言及匯編程序設(shè)計(jì),6,1、標(biāo)號(hào),8086/8088匯編語(yǔ)言中使用的標(biāo)號(hào)必須遵循下列規(guī)則: (1)大小寫(xiě)字母; (2)數(shù)字09; (3)某些特殊字符(, _,?) (4)第一個(gè)字符不能是數(shù)字, “?”不能單獨(dú)作為標(biāo)號(hào)。 (5)標(biāo)號(hào)的有效長(zhǎng)度是31; 有效標(biāo)號(hào):START MY_PROGRAM 無(wú)效標(biāo)號(hào):MAIN% 1BETA,2019/7/13,第四章 匯編語(yǔ)言及匯編程序設(shè)計(jì),7,二、偽指令,偽指令是告訴匯編程序生成目標(biāo)代碼的指令語(yǔ)句。 1、 符號(hào)定義偽指令 2、內(nèi)存數(shù)據(jù)定義偽指令 3、段定義偽指令 4、段寄存器說(shuō)明偽指令 5、 定位偽指令 6、 子程序偽指令,2019/7/13,第四章 匯編語(yǔ)言及匯編程序設(shè)計(jì),8,1、符號(hào)定義偽指令,(1)EQU偽指令 (2)等號(hào)(賦值)偽指令 (3)解除符號(hào)定義偽指令,2019/7/13,第四章 匯編語(yǔ)言及匯編程序設(shè)計(jì),9,(1)EQU偽指令,偽指令格式: EQU 指令功能: 給符號(hào)名賦值。符號(hào)名可以由程序員取定, 表達(dá)式應(yīng)該是可以計(jì)算得出一個(gè)具體值。例: PORT EQU 88H ;定義符號(hào)PORT代表88H DATA EQU PORT+2 ;定義符號(hào)DATA代表 ;PORT+2 注意: 用EQU定義的符號(hào),不能重新再定義,除非用PURGE偽指令解除; 如果在表達(dá)式中用了其他符號(hào),必須事先定義。,2019/7/13,第四章 匯編語(yǔ)言及匯編程序設(shè)計(jì),10,(2)等號(hào)(賦值)偽指令,偽指令格式: = 指令功能: 與EQU類似,唯一的區(qū)別是“=”可以隨時(shí)對(duì)符號(hào)名賦新值, 而不必使用PURGE偽指令。 例: PORT=88H ;定義符號(hào)PORT代表88H DATA=PORT+2 ;定義符號(hào)DATA代表PORT+2,2019/7/13,第四章 匯編語(yǔ)言及匯編程序設(shè)計(jì),11,(3)解除符號(hào)定義偽指令,偽指令格式: PURGE 符號(hào)1, 符號(hào)2, 指令功能: 撤消用EQU賦值的符號(hào)名, 以便于賦予新值。 例: PURGE PORT, DATA ;撤消用EQU對(duì)PORT、 ;DATA的賦值,2019/7/13,第四章 匯編語(yǔ)言及匯編程序設(shè)計(jì),12,2、內(nèi)存數(shù)據(jù)定義偽指令,格式: 變量 命令 參數(shù)1, 參數(shù)2, 功能: 數(shù)據(jù)定義語(yǔ)句用來(lái)分配存儲(chǔ)單元。數(shù)據(jù)定義語(yǔ)句的命令有: DB 定義字節(jié)數(shù)據(jù) DW 定義字?jǐn)?shù)據(jù) DD 定義雙字?jǐn)?shù)據(jù) DQ 定義8字節(jié)數(shù)據(jù) DT 定義10字節(jié)數(shù)據(jù),2019/7/13,第四章 匯編語(yǔ)言及匯編程序設(shè)計(jì),13,2、內(nèi)存數(shù)據(jù)定義偽指令,復(fù)制操作符 格式: DUP 數(shù)據(jù)1,數(shù)據(jù)2, 功能:匯編程序把所定義的數(shù)據(jù)按先后次序連續(xù)分配存儲(chǔ)空間,所起的名稱只代表第一個(gè)單元的字符。 例題,2019/7/13,第四章 匯編語(yǔ)言及匯編程序設(shè)計(jì),14,2、內(nèi)存數(shù)據(jù)定義偽指令,例: VAR1 DB 32H,ABC VAR2 DW 1234H,40H,AB DD 12345678H DB ?, 11000011B ARRY1 DB 2 DUP(0,1) ARRY2 DW 2 DUP(?,1) ,2019/7/13,第四章 匯編語(yǔ)言及匯編程序設(shè)計(jì),15,三、表達(dá)式及運(yùn)算符,在匯編語(yǔ)言中,指令的操作數(shù)除了可以是常數(shù)、寄存器、變量和標(biāo)號(hào)外,還可以是表達(dá)式。 表達(dá)式是由常數(shù)、寄存器、變量、標(biāo)號(hào)和專用運(yùn)算符組合而成。 在程序匯編時(shí),匯編程序自動(dòng)把這些表達(dá)式計(jì)算出來(lái),形成具體的指令操作數(shù)。 1、常數(shù)、變量和標(biāo)號(hào) 2、表達(dá)式及運(yùn)算符,返回,2019/7/13,第四章 匯編語(yǔ)言及匯編程序設(shè)計(jì),16,1、常數(shù)、變量和標(biāo)號(hào),常數(shù) 包括數(shù)值型常數(shù)和字符型常數(shù)。 如:12H,1234H,AB 變量 變量代表存放在存儲(chǔ)單元中的數(shù)據(jù)。 定義后的變量有三個(gè)屬性: (1)段屬性表示變量所在的邏輯段; (2)偏移量屬性表示變量所在邏輯段中的偏移地址; (3)類型屬性表示變量占用的存儲(chǔ)單元數(shù),DB、DW、DD、DQ、DT。,2019/7/13,第四章 匯編語(yǔ)言及匯編程序設(shè)計(jì),17,1、常數(shù)、變量和標(biāo)號(hào),標(biāo)號(hào) 是指令目標(biāo)代碼的符號(hào)地址。 在轉(zhuǎn)移指令中常用標(biāo)號(hào)代替具體轉(zhuǎn)移地址,標(biāo)號(hào)的使用使編寫(xiě)匯編語(yǔ)言程序時(shí),不必考慮程序匯編、連接后系統(tǒng)分配給指令代碼的實(shí)際地址。 標(biāo)號(hào)同樣有三個(gè)屬性: (1)段屬性表示指令代碼所在的邏輯段; (2)偏移量屬性表示指令代碼所在的邏輯段中的偏移地址; (3)距離屬性表示標(biāo)號(hào)可作段內(nèi)轉(zhuǎn)移或段間轉(zhuǎn)移(NEAR、FAR)。,2019/7/13,第四章 匯編語(yǔ)言及匯編程序設(shè)計(jì),18,2、表達(dá)式及運(yùn)算符,表達(dá)式由操作數(shù)和運(yùn)算符組成。 其中,操作數(shù)可以是常數(shù)、變量、寄存器和標(biāo)號(hào)。 運(yùn)算符包括算術(shù)運(yùn)算符、邏輯運(yùn)算符、關(guān)系運(yùn)算符、分析運(yùn)算符和屬性運(yùn)算符五類運(yùn)算。 注意:運(yùn)算符的先后次序 。,2019/7/13,第四章 匯編語(yǔ)言及匯編程序設(shè)計(jì),19,五、匯編語(yǔ)言程序的上機(jī)過(guò)程,建立匯編語(yǔ)言的環(huán)境,典型的匯編語(yǔ)言開(kāi)發(fā)環(huán)境都包含4種工具: 1、編輯程序 2、匯編程序 3、連接程序 4、匯編程序的上機(jī)過(guò)程,2019/7/13,第四章 匯編語(yǔ)言及匯編程序設(shè)計(jì),20,1、編輯程序,(1) 編輯程序是用來(lái)輸入?yún)R編語(yǔ)言源程序的工具,包括EDIT.EXE, EDLIN.EXE等; (2) 匯編語(yǔ)言是以文本格式保存的; (3) 匯編程序的源程序必須以ASM作為擴(kuò)展名; (4) 輸入和編輯源程序時(shí)必須遵循匯編語(yǔ)言的語(yǔ)法規(guī)定。 匯編程序的基本結(jié)構(gòu) 例題 實(shí)際操作: 編輯源程序 TEST11.ASM,2019/7/13,第四章 匯編語(yǔ)言及匯編程序設(shè)計(jì),21,匯編程序的基本結(jié)構(gòu),DATAA SEGMENT ;數(shù)據(jù)段內(nèi)定義各類程序執(zhí)行需要的相關(guān)的數(shù)據(jù) DATAA ENDS STACKA SEGMENT ;根據(jù)具體程序的需要,定義堆棧段供程序執(zhí)行過(guò)程 ;中保持臨時(shí)數(shù)據(jù) STACKA ENDS CODEA SEGMENT ASSUME CS:CODEA,DS:DATAA,SS:STACKA START: MOV AX,DATAA MOV DS,AX ;完成具體操作的指令序列 CODEA ENDS END START,2019/7/13,第四章 匯編語(yǔ)言及匯編程序設(shè)計(jì),22,實(shí)際操作(實(shí)現(xiàn)X+YZ, 源程序文件名: TEST11.ASM),DATA1 SEGMENT ; 數(shù)據(jù)段 X DB 05H Y DB 04H Z DB ? DATA1 ENDS CODE1 SEGMENT ;代碼段 ASSUME CS:CODE,DS:DATA START: MOV AX,DATA ; 數(shù)據(jù)段基址AX MOV DS,AX ; AX DS MOV AL,X ; 內(nèi)存單元X的數(shù)據(jù)AL ADD AL,Y ; 內(nèi)存單元Y的數(shù)據(jù)+ALAL, 即X+Y AL MOV Z, AL ; AL內(nèi)存單元Z, 即求和結(jié)果送回Z MOV AH,4CH ;送功能號(hào) INT 21H ;系統(tǒng)功能調(diào)用,返回操作系統(tǒng) CODE1 ENDS END START,2019/7/13,第四章 匯編語(yǔ)言及匯編程序設(shè)計(jì),23,2、匯編程序,(1) 匯編程序用來(lái)把源程序翻譯成機(jī)器碼, 包括ASM.EXE, MASM.EXE; (2) 匯編程序翻譯源程序, 產(chǎn)生一個(gè)目標(biāo)代碼文件,與源程序文件名相同,擴(kuò)展名為OBJ。 實(shí)際操作: 產(chǎn)生目標(biāo)文件TEST11.OBJ,2019/7/13,第四章 匯編語(yǔ)言及匯編程序設(shè)計(jì),24,3、連接程序,通過(guò)匯編產(chǎn)生的是OBJ文件是二進(jìn)制目標(biāo)文件, 但用的是浮動(dòng)地址, 不能直接運(yùn)行, 必須用連接程序LINK.EXE連接和定位。 實(shí)際操作: 產(chǎn)生可執(zhí)行文件TEST11.EXE,2019/7/13,第四章 匯編語(yǔ)言及匯編程序設(shè)計(jì),25,4、匯編程序的上機(jī)過(guò)程,實(shí)際操作演示,2019/7/13,第四章 匯編語(yǔ)言及匯編程序設(shè)計(jì),26,data1 segment ; 數(shù)據(jù)段開(kāi)始 x db 05h y db 04h z db ? buff db 5+4= $ ; 定義一個(gè)數(shù)據(jù)串,數(shù)據(jù)串規(guī)定以$結(jié)尾, 為了顯示5+4= data1 ends code1 segment ; 代碼段開(kāi)始 assume cs:code1,ds:data1 ; 段寄存器說(shuō)明偽指令 start: mov ax,data1 ; 將數(shù)據(jù)段基址ax mov ds, ax ; axds mov al, x ; 內(nèi)存數(shù)據(jù)xal add al, y ; 內(nèi)存數(shù)據(jù)Y+alal, 即X+Y al mov z, al ; alZ, 即X+Y Z lea dx, buff ; 裝載 buff的有效地址 mov ah, 09h ; 送功能號(hào) int 21h ;系統(tǒng)功能調(diào)用,顯示屏顯示字符串5+4= mov dl,z ; 將z送dl add dl,30h ; 將z的值轉(zhuǎn)換成對(duì)應(yīng)的ASCII碼值 mov ah, 02h ;送功能號(hào) int 21H ;系統(tǒng)功能調(diào)用, 將x+y的和z以單字符形式在顯示屏上顯示出來(lái) mov ah,4ch ; 送功能號(hào) int 21h ; 系統(tǒng)功能調(diào)用,返回DOS狀態(tài) code1 ends end start,返回,2019/7/13,第四章 匯編語(yǔ)言及匯編程序設(shè)計(jì),27,六、匯編程序的設(shè)計(jì)過(guò)程,1、分析問(wèn)題確定算法 2、繪制程序流程圖(做作業(yè)一定要求) 3、編寫(xiě)代碼,2019/7/13,第四章 匯編語(yǔ)言及匯編程序設(shè)計(jì),28,七、匯編程序基本設(shè)計(jì)方法,1、 簡(jiǎn)單程序 作業(yè) 2、 分支程序 3、 循環(huán)程序 4、 子程序,2019/7/13,第四章 匯編語(yǔ)言及匯編程序設(shè)計(jì),29,1、簡(jiǎn)單程序,簡(jiǎn)單程序是指順序結(jié)構(gòu)程序, 在程序中不包含任何轉(zhuǎn)移類指令。 執(zhí)行時(shí)按指令的先后次序從第一條開(kāi)始逐條執(zhí)行,直至程序結(jié)束。 例題,2019/7/13,第四章 匯編語(yǔ)言及匯編程序設(shè)計(jì),30,例題,1、有X,Y兩個(gè)16位數(shù)3456H和0ABCDH,求兩數(shù)之和,并將結(jié)果送到Z單元。 解: 編寫(xiě)流程圖,2019/7/13,第四章 匯編語(yǔ)言及匯編程序設(shè)計(jì),31,例題 程序清單,DATA SEGMENT X DW 3456H Y DW 0ABCDH Z DW 0 DATA ENDS ;設(shè)置數(shù)據(jù)段,取名DATA CODE SEGMENT ASSUME DS :DATA,CS:CODE START :MOV AX,DATA ;取數(shù)碼段DATA段址至AX MOV DS,AX ;段地址送DS LEA SI,X ;將X的有效地址送S1 LEA DI, Y ;將Y的有效地址送D1 MOV AX,SI ;將X的值送AX ADD AX,DI ;AX+Y的值送回AX MOV Z, AX ;將AX的值送到存儲(chǔ)單元Z MOV AH, 4CH ;設(shè)置功能號(hào) INT 21H ;系統(tǒng)功能調(diào)用,返回DOS CODE ENDS END START,2019/7/13,第四章 匯編語(yǔ)言及匯編程序設(shè)計(jì),32,作業(yè),P.120 2、3、 5、7、12,2019/7/13,第四章 匯編語(yǔ)言及匯編程序設(shè)計(jì),33,2、分支程序,分支程序就是利用轉(zhuǎn)移指令,控制計(jì)算機(jī)執(zhí)行某段程序或不執(zhí)行某段程序。,兩路分支,多路分支,例題,2019/7/13,第四章 匯編語(yǔ)言及匯編程序設(shè)計(jì),34,例題,1、內(nèi)存中有一個(gè)8位帶符號(hào)數(shù),求其絕對(duì)值,并將結(jié)果放回原處。 答:編寫(xiě)流程圖,程序清單,2019/7/13,第四章 匯編語(yǔ)言及匯編程序設(shè)計(jì),35,例題 程序清單,DATA2 SEGMENT M DB 05H ; 第二個(gè)程序換成5,即0fbh DATA2 ENDS CODE2 SEGMENT ASSUME CS:CODE2,DS:DATA2 START: MOV AX,DATA2 MOV DS,AX ;送段地址至DS LEA SI,M ;取M的指針 MOV AL,SI ;取帶符號(hào)數(shù) AND AL,AL ;判斷符號(hào)位 JNS DONE ;SF=0,轉(zhuǎn)移到DONE NEG AL ;SF=1,AL0,AL求補(bǔ) DONE: MOV SI,AL ;絕對(duì)值送回原內(nèi)存單元 MOV DL, SI ADD DL, 30H MOV AH, 02H INT 21H ; 系統(tǒng)功能調(diào)用,顯示該數(shù)值 MOV AH,4CH INT 21H CODE2 ENDS END START,2019/7/13,第四章 匯編語(yǔ)言及匯編程序設(shè)計(jì),36,例題,2、編寫(xiě)程序?qū)崿F(xiàn)函數(shù)。 1 (當(dāng)X0) Y= 0 (當(dāng)X=0) 9 (當(dāng)X0) 解: 編寫(xiě)程序清單,程序清單,2019/7/13,第四章 匯編語(yǔ)言及匯編程序設(shè)計(jì),37,例題 程序清單_數(shù)據(jù)段,DATAXY SEGMENT X DB 8FH ; 另外兩組分別是7FH,00H Y DB ? DATAXY ENDS,2019/7/13,第四章 匯編語(yǔ)言及匯編程序設(shè)計(jì),38,例題 程序清單_代碼段,CODE SEGMENT ASSUME CS:CODE,DS:DATAXY START: MOV AX,DATAXY MOV DS,AX ;送段地址 LEA SI, X ;取X的指針 MOV AL,SI ;將X的值送AL AND AL, AL ;自身與,取符號(hào)標(biāo)志位 JNS OTHER ;SF=0,轉(zhuǎn)移到OTHER MOV Y, 09H ;SF=1,則X0 DONE: MOV DL, Y ADD DL, 30H MOV AH, 02H INT 21H ; 系統(tǒng)功能調(diào)用,顯示Y的 值 MOV AH,4CH INT 21H CODE2 ENDS END START,2019/7/13,第四章 匯編語(yǔ)言及匯編程序設(shè)計(jì),39,3、循環(huán)程序,循環(huán)程序就是控制計(jì)算機(jī)反復(fù)執(zhí)行一段指令序列的程序結(jié)構(gòu)。,非零次循環(huán)結(jié)構(gòu),零次循環(huán)結(jié)構(gòu),例題,2019/7/13,第四章 匯編語(yǔ)言及匯編程序設(shè)計(jì),40,1、統(tǒng)計(jì)字節(jié)數(shù)據(jù)Z的1的個(gè)數(shù),將結(jié)果放在RESULT內(nèi)。 解:編寫(xiě)流程圖,例題,程序清單,2019/7/13,第四章 匯編語(yǔ)言及匯編程序設(shè)計(jì),41,例題 程序清單 數(shù)據(jù)段,DATAXY SEGMENT X DB 0FFH ; 第二個(gè)程序換成5,即0fbh RESULT DB ? DATAXY ENDS,2019/7/13,第四章 匯編語(yǔ)言及匯編程序設(shè)計(jì),42,例題 程序清單 代碼段,CODE SEGMENT ASSUME CS:CODE,DS:DATAXY START: MOV AX,DATAXY MOV DS,AX ;送段地址至DS XOR BL,BL ;累加器BL清0 MOV CX,08H ;循環(huán)次數(shù)送CX LEA SI,X ;取X的指針 MOV AL,SI ;取X送AL SUM: SHR AL,1 ;邏輯右移1位 JNC NONE ;CF=0,轉(zhuǎn)移到NONE INC BL ;CF=1,BL+1BL NONE: LOOP SUM MOV RESULT,BL;統(tǒng)計(jì)值送RESULT內(nèi)存單元 MOV DL, RESULT ADD DL, 30H MOV AH, 02H INT 21H ; 系統(tǒng)功能調(diào)用,顯示該統(tǒng)計(jì)數(shù)值 MOV AH,4CH INT 21H CODE ENDS END START,2019/7/13,第四章 匯編語(yǔ)言及匯編程序設(shè)計(jì),43,4、子程序,一個(gè)程序中,當(dāng)在不同的地方需要多次使用某段程序時(shí),我們常將這段程序單獨(dú)編寫(xiě)成一個(gè)程序段,稱為子程序/過(guò)程。 (1)子程序的定義格式 (2)子程序的調(diào)用 (3)編寫(xiě)子程序的注意事項(xiàng),2019/7/13,第四章 匯編語(yǔ)言及匯編程序設(shè)計(jì),44,(1)子程序的定義格式,格式: 子程序名 PROC RET 子程序名 ENDP,2019/7/13,第四章 匯編語(yǔ)言及匯編程序設(shè)計(jì),45,(2)子程序的調(diào)用,格式: CALL 子程序名,2019/7/13,第四章 匯編語(yǔ)言及匯編程序設(shè)計(jì),46,(3)編寫(xiě)子程序的注意事項(xiàng),1、現(xiàn)場(chǎng)保護(hù): 保護(hù)調(diào)用子程序的現(xiàn)場(chǎng), 即保護(hù)子程序中會(huì)用到的寄存器, 將這些寄存器入棧; 2、功能子程序: 子程序要完成的功能; 3、恢復(fù)現(xiàn)場(chǎng): 為了使計(jì)算機(jī)返回到主程序調(diào)用時(shí)的狀態(tài), 將入棧的數(shù)據(jù)出棧。注意順序! 例題:子程序的基本框架,2019/7/13,第四章 匯編語(yǔ)言及匯編程序設(shè)計(jì),47,子程序的基本框架,設(shè)某一子程序中要用到寄存器BX,CX,SI,DI 則: ABC: PUSH BX PRSH CX PUSH SI PUSH DI ;子程序的功能程序 POP DI POP SI POP CX POP BX RET,2019/7/13,第四章 匯編語(yǔ)言及匯編程序設(shè)計(jì),48,例題1,編寫(xiě)統(tǒng)計(jì)X數(shù)據(jù)中的“1”的個(gè)數(shù)子程序,并編寫(xiě)主程序調(diào)用。 子程序如下: ABC: PUSH BX PUSH CX XOR BL,BL ;累加器BL清0 MOV CX,08H ;循環(huán)次數(shù)送CX SUM:SHR AL,1 ;邏輯右移1位 JNC NONE ;CF=0,轉(zhuǎn)移到NONE INC BL ;CF=1,BL+1BL NONE: LOOP SUM MOV AL, BL ;AL里保存的是“1”的統(tǒng)計(jì)個(gè)數(shù) POP CX POP BX RET,2019/7/13,第四章 匯編語(yǔ)言及匯編程序設(shè)計(jì),49,例題1 主程序_數(shù)據(jù)段_堆棧段,DATAXY SEGMENT X DB 0FFH SX DB ? DATAXY ENDS ;- STACK SEGMENT DW 100 DUP(?) STACK ENDS,2019/7/13,第四章 匯編語(yǔ)言及匯編程序設(shè)計(jì),50,例題1 主程序_代碼段,CODE1 SEGMENT ASSUME CS:CODE1, DS:DATAXY,SS:STACK START: MOV AX, DATA MOV DS, AX LEA BX, X MOV AL,BX CALL ABC MOV BX+1, AL MOV DL, SX ADD DL, 30H MOV AH, 02H INT 21H ; 系統(tǒng)功能調(diào)用,顯示該統(tǒng)計(jì)數(shù)值 MOV AH,4CH INT 21H ; 子程序插入此處 CODE1 ENDS END START,2019/7/13,第四章 匯編語(yǔ)言及匯編程序設(shè)計(jì),51,例題2、,將一字節(jié)無(wú)符號(hào)二進(jìn)制數(shù)轉(zhuǎn)換為兩位十進(jìn)制數(shù)的ASCII碼值,并存放在其后的兩個(gè)字節(jié)。(顯示程序用子程序編寫(xiě))。 解:編寫(xiě)流程圖:,2019/7/13,第四章 匯編語(yǔ)言及匯編程序設(shè)計(jì),52,程序數(shù)據(jù)段,data1 segment x db 2ah ;可任取100的無(wú)符號(hào)字節(jié)數(shù)據(jù) y db ? z db ? buff db 2ah=$ data1 ends,2019/7/13,第四章 匯編語(yǔ)言及匯編程序設(shè)計(jì),53,代碼段:,code1 segment assume cs:code1,ds:data1 start: mov ax,data1 mov ds,ax mov al,x cbw mov bl,0ah div bl mov y,al mov z,ah lea dx,buff mov ah,09h int 21h mov al,y ;下接右上,;上接左下 call disp mov al,z call disp jmp eend disp: mov dl,al add dl,30h mov ah,02h int 21h ret eend: mov ah,4ch int 21h code1 ends end start,2019/7/13,第四章 匯編語(yǔ)言及匯編程序設(shè)計(jì),54,思考題,試編制程序?qū)⒁粋€(gè)字?jǐn)?shù)據(jù)用十六進(jìn)制數(shù)的形式顯示在屏幕上。,2019/7/13,第四章 匯編語(yǔ)言及匯編程序設(shè)計(jì),55,八、系統(tǒng)功能調(diào)用,MS-DOS是8086/8088微機(jī)系統(tǒng)廣泛使用的一種操作系統(tǒng)。MS-DOS中包含有許多通用的內(nèi)部子程序,分別用于完成I/O管理、內(nèi)存管理、文件管理以及作業(yè)管理等。 MS-DOS以中斷服務(wù)程序形式提供這些功能程序,在匯編
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 農(nóng)村爐灶銷售合同范本
- 廚師聘用合同范例范例
- 合伙創(chuàng)業(yè)開(kāi)店合同范本
- 勞務(wù)合同范本填寫(xiě)文本
- 休閑廣場(chǎng)門(mén)面出租合同范本
- 發(fā)電機(jī)設(shè)備出租合同范本
- 儀器搬家合同范例
- 合同范例意思
- 順豐簽合同范本
- 產(chǎn)品定制打樣合同范本
- 建筑冷熱源素材樣本
- 胸椎小關(guān)節(jié)紊亂診斷與治療-課件
- 四川省德陽(yáng)市各縣區(qū)鄉(xiāng)鎮(zhèn)行政村村莊村名居民村民委員會(huì)明細(xì)及行政區(qū)劃代碼
- Unit1Developingideaslittlewhitelies課件-高中英語(yǔ)外研版必修第三冊(cè)
- Unit 2 Listening and speaking 課件-高中英語(yǔ)人教版(2019)選擇性必修第二冊(cè)
- (參考)食品加工操作流程圖
- 員工面試登記表
- 鋼棧橋施工方案型鋼
- PySide學(xué)習(xí)教程
- 事業(yè)單位綜合基礎(chǔ)知識(shí)考試題庫(kù) 綜合基礎(chǔ)知識(shí)考試題庫(kù).doc
- 譯林初中英語(yǔ)教材目錄
評(píng)論
0/150
提交評(píng)論