




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、匯編程序:用來把匯編語言編寫的程序自動翻譯成目的匯編程序:用來把匯編語言編寫的程序自動翻譯成目的 程序的軟件程序的軟件標(biāo)號名標(biāo)號名偽指令偽指令操作數(shù)操作數(shù);注釋;注釋,7.1.1 偽指令語句格式偽指令語句格式?jīng)]有冒號!沒有冒號!常量名常量名變量名變量名過程名過程名結(jié)構(gòu)名結(jié)構(gòu)名記錄名等記錄名等常數(shù)常數(shù)字符串字符串常量名常量名變量名變量名標(biāo)號標(biāo)號專用符號(如專用符號(如BYTE、FAR)內(nèi)存數(shù)據(jù)定義偽指令內(nèi)存數(shù)據(jù)定義偽指令常數(shù):沒有任何屬性的純數(shù)值。在程序運行中不發(fā)生變化。常數(shù):沒有任何屬性的純數(shù)值。在程序運行中不發(fā)生變化。如:如:10010011B、0A5H、”ZHIFUCHUAN”變變 量:表
2、示存儲單元,單元中的數(shù)在程序運行期間隨時量:表示存儲單元,單元中的數(shù)在程序運行期間隨時 可以修改??梢孕薷?。變量名:存放數(shù)據(jù)單元的符號地址變量名:存放數(shù)據(jù)單元的符號地址標(biāo)標(biāo) 號:表示存儲單元,單元中存放的是機器指令代碼號:表示存儲單元,單元中存放的是機器指令代碼段屬性(段屬性(SEG):變量或標(biāo)號對應(yīng)存儲單元所在段的段值):變量或標(biāo)號對應(yīng)存儲單元所在段的段值偏移量屬性(偏移量屬性(OFFSET):變量或標(biāo)號對應(yīng)存儲單元的起始地址的段內(nèi)偏移):變量或標(biāo)號對應(yīng)存儲單元的起始地址的段內(nèi)偏移類型屬性(類型屬性(TYPE):): 變量類型主要是字節(jié)(變量類型主要是字節(jié)(BYTE)、字()、字(WORD)
3、、雙字()、雙字(DWORD) 標(biāo)號類型主要是近(標(biāo)號類型主要是近(NEAR)和遠()和遠(FAR) 匯編語言的一個實例匯編語言的一個實例: hello.asm Hello DB Hello, world!,0DH,0AH,$ ASSUME CS:prog,DS:datastart: MOV AX,data MOV DS,AX LEA DX,hello;取字符串首地址取字符串首地址 MOV AH,9 INT 21H;顯示字符串顯示字符串 MOV AH,4CH INT 21H;退回退回DOS名字標(biāo)號ORG 100HX DB 33HY DW 0A65DH變量名變量名MOV AL,XMOV BX,Y
4、表達式:由操作數(shù)和運算符組成的式子表達式:由操作數(shù)和運算符組成的式子算術(shù)運算符:算術(shù)運算符: +、-、*、/、MOD(除法取余)、(除法取余)、SHL(左移)、(左移)、 SHR(右移)(右移)例:例: MOV AX,100*4+5 ;AX=405 邏輯運算符:邏輯運算符:AND、OR、NOT、XOR例:例: 24H OR 0FH=2FH按位運算按位運算 關(guān)系運算:關(guān)系運算: EQ、NE、LT、LE、GT、GE例:例:MOV AX,1234H GT 1024H關(guān)系運算結(jié)果總是關(guān)系運算結(jié)果總是一個數(shù)值。若關(guān)系不一個數(shù)值。若關(guān)系不成立,則結(jié)果為成立,則結(jié)果為0,若,若關(guān)系成立,則結(jié)果關(guān)系成立,則結(jié)
5、果為為0FFFFHMOV AX,0FFFFH 分析運算符(數(shù)值回送操作符):分析運算符(數(shù)值回送操作符): SEG(計算段基址)(計算段基址) OFFSET(計算偏移地址)(計算偏移地址) TYPE(計算符號類型值)(計算符號類型值) SIZE(計算符號名分配的字節(jié)數(shù))(計算符號名分配的字節(jié)數(shù))(=TYPE*LENGTH) LENGTH(計算符號名分配的數(shù))(計算符號名分配的數(shù))例例2:把:把VARW的偏移地址送的偏移地址送BX MOV BX,OFFSET VARW例例3:假設(shè):假設(shè)VARW變量是字變量,把變量是字變量,把VARW的類型值送的類型值送AL MOV AL, TYPE VARW ;
6、AL =2例例1:把:把VARW所在段的段值送所在段的段值送AX MOV AX,SEG VARW變量名變量名TYPE 取取LENGTH 取所定義取所定義的長度的長度 (即(即中元素的個數(shù))中元素的個數(shù))SIZE 取所定義存儲區(qū)的字節(jié)數(shù)取所定義存儲區(qū)的字節(jié)數(shù) (=TYPE*LENGTH)例:例:VAR DW 1,2,3,4,5 組合運算符(屬性操作符)組合運算符(屬性操作符)定義符號名為新類型定義符號名為新類型PTR格式:格式: PTR 功能:用于指定或臨時改變變量或標(biāo)號的類型功能:用于指定或臨時改變變量或標(biāo)號的類型例:例:MOV WORD PTR SI,1 ;指明字類型;指明字類型指定新類型指
7、定新類型THIS格式:格式:THIS 功能:為某個符號名建立新類型功能:為某個符號名建立新類型例:例:LABC EQU THIS BYTE MOV LABC,AL執(zhí)行后執(zhí)行后SI = 01SI+1=00 分離運算符分離運算符LOW 取低字節(jié)取低字節(jié) 格式:格式:LOW HIGH 取高字節(jié)取高字節(jié) 格式:格式:HIGH 例:設(shè)例:設(shè)SSY=2050H MOV AL,LOW 3080H ;AL=80H MOV AH,HIGH SSY ;AH=20 MOV CL, LOW 3A4BH ;CL=4BH 匯編運算符的優(yōu)先級匯編運算符的優(yōu)先級括號括號LENGTH、SIZEPTR、OFFSET、.HIGH、
8、LOW*、/、MOD、SHL、SHR+、-EQ、NE、LT、LE、GT、GENOTANDOR、XOR1. 符號定義偽指令(賦值語句)符號定義偽指令(賦值語句)(1)格式:格式: EQU 功能:用符號來代表表達式的內(nèi)容功能:用符號來代表表達式的內(nèi)容 等價語句等價語句EQU表達式可以是常表達式可以是常數(shù)、數(shù)值表達式、數(shù)、數(shù)值表達式、字符串、存儲器字符串、存儲器符號等符號等例:例:COUNT EQU 100 ;符號;符號COUNT代表常數(shù)代表常數(shù)100 BUFF EQU 4*COUNT ;BUFF代表代表400 HELLO EQU “How are you! ” ;HELLO代表代表How are
9、you VARW EQU THIS WORD ;變量;變量VARW的類型是字的類型是字 注意:等價語句的符號名注意:等價語句的符號名不能被重新賦值不能被重新賦值 等號語句等號語句=格式:格式: = 功能:用符號來代表表達式的數(shù)值功能:用符號來代表表達式的數(shù)值數(shù)值表達式數(shù)值表達式例:例:ABCD = 100 YY = 20+300/4 ABCD = 2*ABCD+1可以重新賦值可以重新賦值先定義先定義后引用后引用 字節(jié)定義語句字節(jié)定義語句DB格式:格式:名字名字 DB 功能:表達式值或項表中的每一項是一個字節(jié)數(shù),功能:表達式值或項表中的每一項是一個字節(jié)數(shù), 它們從符號名地址開始按字節(jié)連續(xù)存放。它
10、們從符號名地址開始按字節(jié)連續(xù)存放。例:例:COUNT DB 100 DB 0DH,0AH, VARW DB ?,?,6,?,?,?,?低低0A2406 0D64COUNTVARW高高可以使用重復(fù)操作符可以使用重復(fù)操作符DUP如:如:BUFFER DB 8 DUP(0)符號地址符號地址DUP可以嵌套如:可以嵌套如:ARRAY DB 100 DUP(0,2 DUP(1,2),),3) 字定義語句字定義語句DW格式:格式:名字名字 DW 功能:表達式值或項表中的每一項是一個字數(shù),功能:表達式值或項表中的每一項是一個字數(shù), 它們從符號名地址開始按字連續(xù)存放。它們從符號名地址開始按字連續(xù)存放。例:例:F
11、LAG DW 2FCDH,24H DW ?2400 2FCDFLAG低低高高匯編后對應(yīng)的存儲區(qū)域分配情況匯編后對應(yīng)的存儲區(qū)域分配情況 四字節(jié)定義語句四字節(jié)定義語句DD格式:格式:名字名字 DD 功能:表達式值或項表中的每一項是四個字節(jié)數(shù),它們功能:表達式值或項表中的每一項是四個字節(jié)數(shù),它們 從符號名地址開始按四字節(jié)從小地址連續(xù)存放。從符號名地址開始按四字節(jié)從小地址連續(xù)存放。格式:格式:名字名字 DQ 功能:表達式值或項表中的每一項是八個字節(jié)數(shù),它們功能:表達式值或項表中的每一項是八個字節(jié)數(shù),它們 從符號名地址開始按八字節(jié)從小地址連續(xù)存放。從符號名地址開始按八字節(jié)從小地址連續(xù)存放。 八字節(jié)定義語
12、句八字節(jié)定義語句DQ 10字節(jié)定義指令字節(jié)定義指令DTDSEG1 SEGMENTDSEG1 ENDS05H10H00H01HFCHFFHFBHFFH00H00H0AHDSEG1: STRHELLO注意下面兩個定義的不同之處:注意下面兩個定義的不同之處: X DB AB ;41H在低字節(jié),在低字節(jié),42H在高字節(jié)在高字節(jié) Y DW AB ;42H在低字節(jié),在低字節(jié),41H在高字節(jié)在高字節(jié)48H45H4CH4CH4FH41H42H42H41HXYBUFFER0080H80HTABLE008AH008BH008CH008DH008EH.8FH00H00H0089H10 Bytes程序計數(shù)器程序計數(shù)器
13、 $程序計數(shù)器程序計數(shù)器 $段定義的一般格式:段定義的一般格式: SEGMENT 定位方式定位方式連接方式連接方式類型名類型名 ENDS段開始語句段開始語句段結(jié)束語句段結(jié)束語句例:一個簡單的數(shù)據(jù)段例:一個簡單的數(shù)據(jù)段 DSEG SEGMENT BUFFER DB 8 DUP(0) DSEG ENDS開始的段名與結(jié)開始的段名與結(jié)束的段名必須相束的段名必須相同,段的長度不同,段的長度不能超過能超過64KB,SEGMENT后面后面的參數(shù)是可選的的參數(shù)是可選的注意: 定位方式定位方式(定位類型)(定位類型) 書書(P162)定位類型指出了對當(dāng)前段起始地址的要求,有定位類型指出了對當(dāng)前段起始地址的要求,
14、有4個選項個選項PAGE 指定起始地址的低指定起始地址的低8位是位是0,即其值能被,即其值能被256整除(稱頁邊界)整除(稱頁邊界)PARA 指定起始地址的低指定起始地址的低4為是為是0,即其值能被,即其值能被16整除(整除(稱段邊界稱段邊界)WORD指定起始地址的最低位是指定起始地址的最低位是0,即其值能被,即其值能被2整除(稱為字邊界)整除(稱為字邊界)BYTE 指定起始地址是任意值指定起始地址是任意值缺省定位缺省定位定位類型是用來確定程序段與程序段之間的銜接,如定位類型是用來確定程序段與程序段之間的銜接,如BYTE 使得當(dāng)前段緊接前一段,而使得當(dāng)前段緊接前一段,而PAGE可能導(dǎo)致最大的段
15、間隔可能導(dǎo)致最大的段間隔 連接方式(組合類型)連接方式(組合類型)連接方式告訴連接程序本段可按某種方式連接連接方式告訴連接程序本段可按某種方式連接PUBLIC告訴連接程序本段與其它同名同類別告訴連接程序本段與其它同名同類別 的段連接起來,公用一個起始點。的段連接起來,公用一個起始點。STACK 表示是堆棧段,連接方式同上。表示是堆棧段,連接方式同上。NONE 表示本段不與任何段連接。表示本段不與任何段連接。COMMON表示本段與同名同類別的段共用同一段地址,表示本段與同名同類別的段共用同一段地址, 即同名同類段相重疊。即同名同類段相重疊。MEMORY本段連接時定位在所有段之上,即高地址處。本段
16、連接時定位在所有段之上,即高地址處。AT 表達式表達式表示本段定位在表達式值指定的段地址處。表示本段定位在表達式值指定的段地址處。隱含連接方式隱含連接方式一個源程序至少有一個堆棧段一個源程序至少有一個堆棧段 例例:連接方式連接方式BmaxC(S)B(C)A(P)B(C)AC(S)A(P)B(C)AC2C1A1A2PCS模塊模塊1模塊模塊2模塊模塊3N 類別名類別名 類別名是由程序員指定的字符串,沒有給出類別時,類別名是由程序員指定的字符串,沒有給出類別時,這個段的類別就為空。這個段的類別就為空。例例1:某個源程序:某個源程序SSEG SEGMENT PARA STACK DB 1024 DUP
17、(?)(?)SSEG ENDS;DSEG SEGMENT PARA COMMONMESS DB HELLO,0DH,0AH,DSEG ENDS;CSEG SEGMENT PARA PUBLICCSEG ENDS END START給出類別時,給出類別時,PUBLICCODEPUBLICCODECOMMONDATACOMMONDATAAT 2000HAT 8000H格式:格式:ASSUME 段寄存器:段定義名段寄存器:段定義名1,段寄存器:段定義名,段寄存器:段定義名2,功能:告訴匯編程序在匯編時,段寄存器的符號基址功能:告訴匯編程序在匯編時,段寄存器的符號基址例:例:DSEG1 SEGMENT
18、 VARW DW 12 DSEG1 ENDS ; DSEG2 SEGMENT XXX DW 0 YYY DW 0 DSEG2 ENDS ;CSEG SEGMENT ASSUME CS:CSEG,DS:DSEG1,ES:DSEG2 MOV AX,DSEG1 MOV DS,AX MOV AX,DSEG2 MOV ES,AX CSEG ENDS 格式:格式: PROC 過程屬性過程屬性 ENDP段間為段間為FAR段內(nèi)為段內(nèi)為NEARXXX SEGMENT main proc far call subr1 ret main endp subr1 proc near ret subr1 endp XXX
19、 ENDSXXX SEGMENT main proc far call subr1 ret subr1 proc near ret subr1 endp main endp XXX ENDS例例1: 調(diào)用程序和子程序在同一代碼段中調(diào)用程序和子程序在同一代碼段中一個過程一個過程一個過程一個過程例例2: 調(diào)用過程和調(diào)用過程和子過程不在子過程不在同一個代碼同一個代碼段內(nèi)段內(nèi)SEGX SEGMENT subt proc far ret subt endp call subt SEGX ENDSSEGY SEGMENT call subt SEGY ENDS在同一段中調(diào)用在同一段中調(diào)用也在不同段中調(diào)用也
20、在不同段中調(diào)用所以過程屬性所以過程屬性為為FAR6. 模塊開始偽指令模塊開始偽指令格式:格式:NAME 模塊名模塊名7. 模塊結(jié)束偽指令模塊結(jié)束偽指令格式:格式:END 啟動標(biāo)號或過程名啟動標(biāo)號或過程名功能:告訴匯編程序源文件結(jié)束,并給出執(zhí)行程功能:告訴匯編程序源文件結(jié)束,并給出執(zhí)行程 序的入口地址序的入口地址格式:格式:ORG 功能:把以下語句定義的內(nèi)存數(shù)據(jù)或程序,從表達式功能:把以下語句定義的內(nèi)存數(shù)據(jù)或程序,從表達式 指定的起點開始連續(xù)存放。指定的起點開始連續(xù)存放。9. 列表偽指令列表偽指令格式:格式:TITLE 標(biāo)題標(biāo)題 ;為列表文件每頁第一行定義標(biāo)題為列表文件每頁第一行定義標(biāo)題SUBT
21、TL 小標(biāo)題小標(biāo)題 ;為列表文件每頁定義小標(biāo)題,大標(biāo)題之后為列表文件每頁定義小標(biāo)題,大標(biāo)題之后PAGE 行數(shù),行字數(shù);行數(shù),行字數(shù);為列表文件定義每頁行數(shù),每行字符數(shù)。為列表文件定義每頁行數(shù),每行字符數(shù)。缺省值是缺省值是66行,行,80列列格式:格式:RADIX 表達式表達式 功能:改變隱含進制數(shù)功能:改變隱含進制數(shù)例:例:RADIX 16 MOV AX,0FA4 MOV BX,100D 后面可以不跟后面可以不跟H后面必須跟后面必須跟D,表,表示示 十進制數(shù)十進制數(shù)模塊引用模塊引用格式:格式:PUBLIC 功能:本模塊用功能:本模塊用PUBLIC說明了的符號名,可以被其它程說明了的符號名,可以
22、被其它程 序模塊引用序模塊引用 公用符號語句公用符號語句PUBLIC變量名、標(biāo)號、過變量名、標(biāo)號、過程名、符號常量程名、符號常量 引用符號語句引用符號語句EXTRN格式:格式:EXTRN 功能:在本模塊內(nèi)引用的其它模塊符號名,必須用功能:在本模塊內(nèi)引用的其它模塊符號名,必須用EXTRN 進行說明,否則不能引用。進行說明,否則不能引用。 公用符號語句公用符號語句PUBLIC (P182)例例: 引用符號語句引用符號語句EXTRNPUBLIC 5EXTRN二級模塊二級模塊PUBLIC 6EXTRN二級模塊二級模塊PUBLIC 4EXTRN二級模塊二級模塊PUBLIC 7EXTRN二級模塊二級模塊P
23、UBLIC 2EXTRN 5,6一級模塊一級模塊PUBLIC 3EXTRN 6,7一級模塊一級模塊PUBLIC 1EXTRN 4,5一級模塊一級模塊NAME XX EXTRN 1,2,3主模塊主模塊NAME 4 NAME 5NAME 6 NAME 7NAME 3NAME 2 NAME 1 調(diào)用方法:調(diào)用方法: 準(zhǔn)備入口參數(shù)準(zhǔn)備入口參數(shù) 把功能調(diào)用號送把功能調(diào)用號送AH寄存器寄存器 發(fā)軟中斷指令發(fā)軟中斷指令 INT 21H 功能:從鍵盤讀一字符,并將該字符回顯在顯示器上功能:從鍵盤讀一字符,并將該字符回顯在顯示器上入口參數(shù):無入口參數(shù):無出口參數(shù):出口參數(shù):AL=讀到字符的讀到字符的ASCII碼
24、碼說明:如果讀到的字符是說明:如果讀到的字符是Ctrl+c或或Ctrl+Break則結(jié)束程序則結(jié)束程序例:例: MOV AH,1 INT 21H 功功 能:從鍵盤讀一字符串。能:從鍵盤讀一字符串。入口參數(shù):入口參數(shù):DS:DX=緩沖區(qū)首址,緩沖區(qū)的第緩沖區(qū)首址,緩沖區(qū)的第一個字節(jié)放緩沖區(qū)最大容量數(shù)一個字節(jié)放緩沖區(qū)最大容量數(shù)出口參數(shù):接收到的字符串放在緩沖出口參數(shù):接收到的字符串放在緩沖 區(qū)中第三個字節(jié)開始區(qū)中第三個字節(jié)開始說說 明:明: 緩沖區(qū)第二個字節(jié)存放實際讀入緩沖區(qū)第二個字節(jié)存放實際讀入 的字符數(shù)。的字符數(shù)。 字符串以回車結(jié)束字符串以回車結(jié)束(0DH) 如果輸入字符串超過了緩沖的區(qū)容如果
25、輸入字符串超過了緩沖的區(qū)容 量,量, 超出的部分丟失,同時響鈴超出的部分丟失,同時響鈴 如果在輸入時按如果在輸入時按Ctrl+C或或Ctrl+Break,則結(jié)束程序,則結(jié)束程序 例:例: BUF DB 20 ;緩沖區(qū)最大容量數(shù)緩沖區(qū)最大容量數(shù) DB ? ;存放實際讀入的字符數(shù)存放實際讀入的字符數(shù) DB 20 DUP(?)(?) MOV DX,OFFSET BUF MOV AH,0AH INT 21H ;輸入字符串輸入字符串 功能:寄存器功能:寄存器DL中的字符從屏幕上顯示輸出中的字符從屏幕上顯示輸出入口參數(shù):入口參數(shù):DL=要輸出字符的要輸出字符的ASCII碼碼出口參數(shù):無出口參數(shù):無例:例:
26、 MOV DL,A MOV AH,2 INT 21H 功功 能:將指定緩沖區(qū)中的字符串從屏幕上顯示輸出能:將指定緩沖區(qū)中的字符串從屏幕上顯示輸出入口參數(shù):入口參數(shù):DS:DX=要輸出字符的首址要輸出字符的首址,字符串以字符,字符串以字符 為結(jié)束標(biāo)志為結(jié)束標(biāo)志出口參數(shù):無出口參數(shù):無 BUF DB good bye MOV DX,OFFSET BUF MOV AH,09H INT 21H ;字符串從屏幕上顯示字符串從屏幕上顯示 例:例:功功 能:直接鍵盤輸入屏幕顯示輸出能:直接鍵盤輸入屏幕顯示輸出入口參數(shù):入口參數(shù):DL=OFFH,表示輸入;否則表示輸出,表示輸入;否則表示輸出, DL=輸出字符
27、代碼輸出字符代碼出口參數(shù):輸入時,出口參數(shù):輸入時,AL=輸入字符代碼,輸出時,無輸入字符代碼,輸出時,無例:例: MOV DL,0FFH MOV AH,6 INT 21H MOV DL,a MOV AH,6 INT 21H 鍵盤輸入單字符送鍵盤輸入單字符送AL將將DL的內(nèi)容送屏幕顯示的內(nèi)容送屏幕顯示說明:說明:1、在輸入時,如無字符可讀,、在輸入時,如無字符可讀,不等待不等待 2、不檢查、不檢查Ctrl+C或或Ctrl+Break鍵鍵 3、在讀到字符時也不回顯、在讀到字符時也不回顯 功功 能:從鍵盤上讀一個字符到能:從鍵盤上讀一個字符到AL入口參數(shù):無入口參數(shù):無出口參數(shù):出口參數(shù):AL=讀
28、到字符的代碼讀到字符的代碼7. 無回顯鍵盤輸入單字符無回顯鍵盤輸入單字符08H號功能號功能調(diào)用調(diào)用 功功 能:從鍵盤上讀一個字符到能:從鍵盤上讀一個字符到AL 入口參數(shù):無入口參數(shù):無 出口參數(shù):出口參數(shù):AL=讀到字符的代碼讀到字符的代碼功功 能:從異步通信口串行輸入的字符到能:從異步通信口串行輸入的字符到AL中中入口參數(shù):無入口參數(shù):無出口參數(shù):出口參數(shù):AL=讀到字符的代碼讀到字符的代碼9. 向串口輸出單字符向串口輸出單字符04H號功能調(diào)用號功能調(diào)用 功功 能:將能:將DL寄存器中的字符通過異步通信口串行輸出寄存器中的字符通過異步通信口串行輸出 入口參數(shù):入口參數(shù):DL=要輸出字符的代碼
29、要輸出字符的代碼 出口參數(shù):無出口參數(shù):無功功 能:設(shè)置有效日期能:設(shè)置有效日期入口參數(shù):入口參數(shù):CX=年號,年號,DH=月號,月號,DL=日期日期 都是裝配型都是裝配型BCD碼碼出口參數(shù):出口參數(shù):AL=0,表示設(shè)置成功;否則,表示設(shè)置成功;否則AL=0FFH例:例: MOV CX,2008H MOV DH,04H MOV DL,14H MOV AH,2BH INT 21H 功功 能:將當(dāng)前日期取到能:將當(dāng)前日期取到CX和和DX寄存器中寄存器中入口參數(shù):無入口參數(shù):無出口參數(shù):出口參數(shù):CX=年號,年號,DH=月號,月號,DL=日期日期 都是裝配型都是裝配型BCD碼碼12. 設(shè)置時間設(shè)置時
30、間2DH號功能調(diào)用號功能調(diào)用功功 能:設(shè)置有效時間能:設(shè)置有效時間入口參數(shù):入口參數(shù):CH=時數(shù),時數(shù),CL=分數(shù),分數(shù),DH=秒數(shù),秒數(shù), DL=百分之一秒數(shù),都是裝配型百分之一秒數(shù),都是裝配型BCD碼碼出口參數(shù):出口參數(shù):AL=0,表示設(shè)置成功;否則,表示設(shè)置成功;否則AL=0FFH功功 能:將當(dāng)前時間取到能:將當(dāng)前時間取到CX和和DX寄存器中寄存器中入口參數(shù):無入口參數(shù):無出口參數(shù):出口參數(shù):CX=時分,時分,DH=秒,都是裝配型秒,都是裝配型BCD碼碼例:例: MOV AH,2CH INT 21H 功功 能:結(jié)束當(dāng)前正在執(zhí)行的程序,并返回操作系統(tǒng)能:結(jié)束當(dāng)前正在執(zhí)行的程序,并返回操作系
31、統(tǒng)入口參數(shù):無入口參數(shù):無出口參數(shù):無出口參數(shù):無回到回到DOS提示符下提示符下C:例:例: MOV AH,4CH INT 21H 堆棧段數(shù)據(jù)段代碼段(EDIT)匯編語言匯編語言源文件(源文件(.ASM)匯編程序匯編程序(MASM或或ASM)目標(biāo)代碼文件目標(biāo)代碼文件.BOJ列表文件列表文件.LST交叉索引文件交叉索引文件.CRF輸入輸入翻譯翻譯輸出輸出匯編程序的功能就是把用助記符書寫的匯編語言源程序,匯編程序的功能就是把用助記符書寫的匯編語言源程序,翻譯成機器語言目標(biāo)代碼;同時進行語法檢查,指出語翻譯成機器語言目標(biāo)代碼;同時進行語法檢查,指出語法錯誤所在行的行號。法錯誤所在行的行號。在計算機上
32、運行匯編語言程序的步驟在計算機上運行匯編語言程序的步驟用編輯程序建立用編輯程序建立XX.ASM程序程序用匯編程序把用匯編程序把XX.ASM程序轉(zhuǎn)換成程序轉(zhuǎn)換成XX.OBJ程序程序用連接程序把用連接程序把XX.OBJ程序轉(zhuǎn)換成程序轉(zhuǎn)換成XX.EXE程序程序用調(diào)試程序調(diào)試程序用調(diào)試程序調(diào)試程序 XX.EXE用用DOS命令直接鍵入程序名執(zhí)行命令直接鍵入程序名執(zhí)行文本編文本編輯輯EIDTEIDT匯編程匯編程序序MASMMASM連接程連接程序序LINKLINKDEBUDEBUG G編輯源文件(用編輯源文件(用EDIT)文件存盤文件存盤用用MASM匯編源文件(匯編源文件(.ASM)生成目標(biāo)代碼文件(生成目
33、標(biāo)代碼文件(.OBJ)開始開始有語法錯?有語法錯?用用LINK連接目標(biāo)代碼文件連接目標(biāo)代碼文件生成可執(zhí)行文件(生成可執(zhí)行文件(.EXE)有語法錯?有語法錯?在在DOS下執(zhí)行下執(zhí)行.EXE文件文件程序運行有錯?程序運行有錯?調(diào)試文件(調(diào)試文件(DEBUG)結(jié)束結(jié)束YYY7.5.2程序的編輯、匯編及連接程序的編輯、匯編及連接擴展名為擴展名為.ASM的文件的文件1. 編輯程序編輯程序EDIT 文件名文件名.ASM 回車回車在在DOS方式下方式下輸入程序輸入程序存盤存盤2. 匯編程序匯編程序MASM 文件名;回車文件名;回車缺省方式,以源文件名缺省方式,以源文件名為目標(biāo)文件名,無列表為目標(biāo)文件名,無列
34、表文件;無交叉索引文件文件;無交叉索引文件如果有語法錯誤,用如果有語法錯誤,用EDIT修改文件修改文件3. 程序連接程序連接LINK 文件名;回車文件名;回車上機步驟:上機步驟:5. 調(diào)試程序調(diào)試程序DEBUG 文件名文件名. EXE 回車回車進入了進入了DEBUG調(diào)試狀態(tài)調(diào)試狀態(tài)4. 執(zhí)行程序執(zhí)行程序文件名文件名 回車回車如果執(zhí)行程序有錯,進入第如果執(zhí)行程序有錯,進入第5步步DATA SEGMENT ;存放數(shù)據(jù)項的數(shù)據(jù)段;存放數(shù)據(jù)項的數(shù)據(jù)段DATA ENDSEXTRA SEGMENT ;存放數(shù)據(jù)項的附加段;存放數(shù)據(jù)項的附加段EXTRA ENDSSTAC SEGMENT PARA STACK ;作堆棧用的堆棧段;作堆棧用的堆棧段STAC ENDSCOSEG SEGMENT ASSUME CS:COSEG,DS:DATA ASSUME SS:STAC,ES:EXTRABEING:MOV AX,DATA MOV DS,AX ;存放指令序列;存放指令序列COSEG ENDS END BEING7. 6匯
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 工程船舶出租合同協(xié)議
- 園林綠化銷售合同協(xié)議
- 生鮮采購農(nóng)戶合同協(xié)議
- 外貿(mào)年度采購合同協(xié)議
- 廢品站雇傭合同協(xié)議
- 小型飯店轉(zhuǎn)租合同協(xié)議
- 工地機械收購合同協(xié)議
- 鞋廠招工合同協(xié)議
- 體能培訓(xùn)雙方協(xié)議書
- 租賃合同終止協(xié)議書格式
- 艾滋病宣傳員知識培訓(xùn)
- 2024-2025學(xué)年廣東省深圳市南山區(qū)四年級(上)期末數(shù)學(xué)試卷
- 風(fēng)電項目合作框架協(xié)議
- 2025年小學(xué)科學(xué)教材教法考試模擬測試卷及答案
- 《論語》(子路篇第十三)原文及翻譯
- 學(xué)前兒童情感教育的家庭實踐策略
- 美好家園《8未來城市》課件 -2024-2025學(xué)年浙人美版(2024)初中美術(shù)七年級下冊
- 解析:2024年廣東省深圳市龍崗區(qū)中考二模物理試題(解析版)
- 教師語言與溝通藝術(shù)知到智慧樹章節(jié)測試課后答案2024年秋溫州大學(xué)
- 共享菜園協(xié)議書5篇
- 人教版小學(xué)數(shù)學(xué)知識點總結(jié)大全
評論
0/150
提交評論