微機(jī)原理第四章 匯編語言程序設(shè)計(jì)ppt課件_第1頁
微機(jī)原理第四章 匯編語言程序設(shè)計(jì)ppt課件_第2頁
微機(jī)原理第四章 匯編語言程序設(shè)計(jì)ppt課件_第3頁
微機(jī)原理第四章 匯編語言程序設(shè)計(jì)ppt課件_第4頁
微機(jī)原理第四章 匯編語言程序設(shè)計(jì)ppt課件_第5頁
已閱讀5頁,還剩117頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、微型計(jì)算機(jī)原理及其運(yùn)用微型計(jì)算機(jī)原理及其運(yùn)用第四章:匯編言語程序設(shè)計(jì)第四章:匯編言語程序設(shè)計(jì)第四章第四章 匯編言語程序設(shè)計(jì)匯編言語程序設(shè)計(jì)匯編言語程序格式匯編言語程序格式偽指令語句偽指令語句DOSDOS系統(tǒng)功能調(diào)用和系統(tǒng)功能調(diào)用和BIOSBIOS中斷調(diào)用中斷調(diào)用程序設(shè)計(jì)方法程序設(shè)計(jì)方法 匯編言語是利用指令的助記符、符號(hào)地址、標(biāo)號(hào)匯編言語是利用指令的助記符、符號(hào)地址、標(biāo)號(hào)來編寫的言語。來編寫的言語。 用匯編言語編寫的程序稱為匯編言語源程序;用匯編言語編寫的程序稱為匯編言語源程序; 把匯編言語源程序翻譯成由機(jī)器代碼組成的目的把匯編言語源程序翻譯成由機(jī)器代碼組成的目的程序的過程稱為匯編;程序的過程稱

2、為匯編; 用來把匯編言語源程序自動(dòng)翻譯成目的程序的軟用來把匯編言語源程序自動(dòng)翻譯成目的程序的軟件叫匯編程序。件叫匯編程序。 計(jì)算機(jī)言語可分為機(jī)器言語、匯編言語、高級(jí)言計(jì)算機(jī)言語可分為機(jī)器言語、匯編言語、高級(jí)言語三類。語三類。 機(jī)器言語是計(jì)算機(jī)獨(dú)一能識(shí)別的言語二進(jìn)制言機(jī)器言語是計(jì)算機(jī)獨(dú)一能識(shí)別的言語二進(jìn)制言語語 匯編言語是面向機(jī)器的言語,不同的匯編言語是面向機(jī)器的言語,不同的CPUCPU有不同有不同的匯編言語的匯編言語PCPC機(jī)匯編、單片機(jī)匯編機(jī)匯編、單片機(jī)匯編 優(yōu)點(diǎn):直接針對(duì)硬件操作,效率高,節(jié)省內(nèi)存,優(yōu)點(diǎn):直接針對(duì)硬件操作,效率高,節(jié)省內(nèi)存,運(yùn)轉(zhuǎn)速度快,實(shí)時(shí)性能好。運(yùn)轉(zhuǎn)速度快,實(shí)時(shí)性能好。

3、高級(jí)言語是面向過程的言語:如高級(jí)言語是面向過程的言語:如BasicBasic、c c、PascalPascal 目前流行的面向?qū)ο蟮难哉Z:目前流行的面向?qū)ο蟮难哉Z:VBVB、VCVC、C#C# 80868086系統(tǒng)中常用的匯編程序:系統(tǒng)中常用的匯編程序: 宏匯編程序宏匯編程序MASMMASM【例】顯示輸出【例】顯示輸出“This is a sample program.“This is a sample program.DATA SEGMENT ;DATA SEGMENT ;數(shù)據(jù)段數(shù)據(jù)段DA1 DB This is a sample program.DA1 DB This is a sampl

4、e program. DB 0DH,0AH, DB 0DH,0AH, ; ;回車符和換行符的回車符和換行符的ASCIIASCII碼碼DATA ENDS DATA ENDS STACK SEGMENT STACK STACK;STACK SEGMENT STACK STACK;堆棧段堆棧段 ST1 DB 100 DUPST1 DB 100 DUP? ? ; ;定義定義100100個(gè)空的字節(jié)單元個(gè)空的字節(jié)單元STACK ENDSSTACK ENDSCODE SEGMENT ;CODE SEGMENT ;代碼段代碼段 ASSUME CS:CODE,DS:DATA,SS:STACK ; ASSUME

5、CS:CODE,DS:DATA,SS:STACK ;段分配段分配MAIN PROC FAR ;MAIN PROC FAR ;主過程開場(chǎng)主過程開場(chǎng)START: MOV AXSTART: MOV AX,STACK ;STACK ;初始化初始化SSSS MOV SS MOV SS,AXAX PUSH DS ; PUSH DS ;為前往為前往DOSDOS設(shè)置堆棧設(shè)置堆棧 MOV AX MOV AX,0 0 PUSH AX PUSH AX MOV AX MOV AX,DATA ;DATA ;初始化初始化DSDS MOV DS MOV DS,AXAX MOV AH MOV AH,9 ;99 ;9號(hào)調(diào)用號(hào)調(diào)

6、用, ,顯示字符串顯示字符串, ,以以終了終了 MOV DX MOV DX,OFFSET DA1 OFFSET DA1 INT 21H INT 21H RET RET ;前往;前往DOSDOSMAIN ENDP MAIN ENDP ;主過程終了;主過程終了CODE ENDS CODE ENDS ;代碼段終了;代碼段終了 END START END START ;源程序終了;源程序終了【例】顯示輸出【例】顯示輸出“Hello!“Hello!DATA SEGMENT ;DATA SEGMENT ;數(shù)據(jù)段數(shù)據(jù)段STRING DB Hello!,STRING DB Hello!, DATA ENDS

7、DATA ENDS CODE SEGMENT ;CODE SEGMENT ;代碼段代碼段 ASSUME CS:CODE,DS:DATA ; ASSUME CS:CODE,DS:DATA ;段分配段分配START: MOV AXSTART: MOV AX,DATA ;DATA ;初始化初始化DSDS MOV DS MOV DS,AXAX MOV AH MOV AH,9 ;99 ;9號(hào)調(diào)用號(hào)調(diào)用, ,顯示字符串顯示字符串, ,以以終了終了 MOV DX MOV DX,OFFSET STRING OFFSET STRING INT 21H INT 21H MOV AH,4CH MOV AH,4CH

8、;前往;前往DOSDOS INT 21H INT 21HCODE ENDS CODE ENDS ;代碼段終了;代碼段終了 END START END START ;源程序終了;源程序終了 由例程看出:由例程看出: (1)8086(1)8086匯編源程序具有分段構(gòu)造匯編源程序具有分段構(gòu)造 段名段名 SEGMENT SEGMENT 段名段名 ENDS ENDS 在源程序中各段的順序可以恣意,段的數(shù)目可在源程序中各段的順序可以恣意,段的數(shù)目可根據(jù)需求確定至少有一個(gè)代碼段,原那么上根據(jù)需求確定至少有一個(gè)代碼段,原那么上不受限制。而每個(gè)段又是由假設(shè)干語句組成,語不受限制。而每個(gè)段又是由假設(shè)干語句組成,語

9、句是匯編言語源程序的根底。句是匯編言語源程序的根底。 (2)CS(2)CS不能人為設(shè)置,其它段存放器的初始化需不能人為設(shè)置,其它段存放器的初始化需兩條指令完成兩條指令完成MOV AX,DATA MOV DS,AXMOV AX,DATA MOV DS,AX。(3)(3)兩種前往兩種前往DOSDOS的方法:的方法:MAIN PROC FAR MAIN PROC FAR ;將主程序建立為過程;將主程序建立為過程 PUSH DS ; PUSH DS ;將將DOSDOS段值和偏移量段值和偏移量0 0入棧入棧 MOV AX,0 MOV AX,0 PUSH AX PUSH AX RET ; RET ;前往前

10、往DOS(DOS(將將0 0和和DOSDOS段值段值IPIP、CS)CS) MAIN ENDP MAIN ENDP ;主過程終了;主過程終了運(yùn)用運(yùn)用4CH4CH號(hào)的號(hào)的DOSDOS系統(tǒng)功能調(diào)用系統(tǒng)功能調(diào)用 MOV AX,4C00H( MOV AX,4C00H(或或MOV AH ,4CH)MOV AH ,4CH) INT 21H INT 21H(4)(4)全部源程序用全部源程序用ENDEND偽指令終了。偽指令終了。MASMMASM中可運(yùn)用的語句分成兩類:指令性語句和偽指令語句。中可運(yùn)用的語句分成兩類:指令性語句和偽指令語句。一、指令性語句一、指令性語句特點(diǎn):與機(jī)器指令相對(duì)應(yīng)特點(diǎn):與機(jī)器指令相對(duì)應(yīng)

11、, ,匯編時(shí)產(chǎn)生目的代碼。匯編時(shí)產(chǎn)生目的代碼。標(biāo)號(hào):指令助記符標(biāo)號(hào):指令助記符 操作數(shù),操作數(shù)操作數(shù),操作數(shù) ;注釋;注釋標(biāo)號(hào):表示本指令語句的符號(hào)地址,后跟冒號(hào)標(biāo)號(hào):表示本指令語句的符號(hào)地址,后跟冒號(hào)“:,用:,用作轉(zhuǎn)移的目的地址;作轉(zhuǎn)移的目的地址;指令助記符:指出指令的操作類型,由英文字母縮寫而成;指令助記符:指出指令的操作類型,由英文字母縮寫而成;操作數(shù):指明參與指令運(yùn)算的數(shù)據(jù),有無操作數(shù)、單操作操作數(shù):指明參與指令運(yùn)算的數(shù)據(jù),有無操作數(shù)、單操作數(shù)和雙操作數(shù)之分,其中雙操作數(shù)之間用逗號(hào)數(shù)和雙操作數(shù)之分,其中雙操作數(shù)之間用逗號(hào)“,“,分隔,分隔,操作數(shù)與指令助記符之間用空格隔開;操作數(shù)與指

12、令助記符之間用空格隔開;注釋:用來闡明一條指令或一段程序的功能,前面以分號(hào)注釋:用來闡明一條指令或一段程序的功能,前面以分號(hào)“;為標(biāo)志,匯編程序?qū)ψ⑨尣贿M(jìn)展匯編,添加可讀性;為標(biāo)志,匯編程序?qū)ψ⑨尣贿M(jìn)展匯編,添加可讀性其中指令助記符是關(guān)鍵字,不可省略,其他部分均可省略。其中指令助記符是關(guān)鍵字,不可省略,其他部分均可省略。4-1 4-1 匯編言語程序格式匯編言語程序格式二、偽指令語句二、偽指令語句特點(diǎn):沒有對(duì)應(yīng)的機(jī)器指令本身不產(chǎn)生目的代碼,只為特點(diǎn):沒有對(duì)應(yīng)的機(jī)器指令本身不產(chǎn)生目的代碼,只為匯編程序提供匯編信息。匯編程序提供匯編信息。格式:格式: 名字名字 偽指令指示符偽指令指示符 操作數(shù),操作

13、數(shù)操作數(shù),操作數(shù) ;注釋;注釋名字:給偽指令取的稱號(hào),用符號(hào)地址表示,名字后不帶名字:給偽指令取的稱號(hào),用符號(hào)地址表示,名字后不帶冒號(hào)冒號(hào)“:,只用空格符與偽指令指示符相分隔;:,只用空格符與偽指令指示符相分隔;偽指令指示符:是偽指令指示符:是MASM規(guī)定的符號(hào),明確不同的操作;規(guī)定的符號(hào),明確不同的操作;操作數(shù):規(guī)定同指令性語句,區(qū)別在于操作數(shù)能夠多于操作數(shù):規(guī)定同指令性語句,區(qū)別在于操作數(shù)能夠多于2個(gè);個(gè);注釋:規(guī)定同指令性語句注釋:規(guī)定同指令性語句其中不可省略的部分是偽指令指示符其中不可省略的部分是偽指令指示符,其他均可缺省。其他均可缺省。三、數(shù)據(jù)項(xiàng)三、數(shù)據(jù)項(xiàng)操作數(shù)的三種根本數(shù)據(jù)項(xiàng):常數(shù)

14、、變量、標(biāo)號(hào)操作數(shù)的三種根本數(shù)據(jù)項(xiàng):常數(shù)、變量、標(biāo)號(hào)常量:固定值,不能改動(dòng)常量:固定值,不能改動(dòng) a. a.數(shù)字常數(shù):字母后綴數(shù)字常數(shù):字母后綴B B、Q(Q(或或O)O)、D D可省略、可省略、H H b. b.字符串常數(shù)字符串常數(shù): :ABCABCASCIIASCII碼字節(jié)序列碼字節(jié)序列41H41H、42H42H、43H43H c. c.符號(hào)常數(shù):符號(hào)常數(shù):COUNT EQU 100COUNT EQU 100變量:某操作數(shù)據(jù)所存放單元的符號(hào)地址,在變量:某操作數(shù)據(jù)所存放單元的符號(hào)地址,在CSCS以外的其以外的其它段由它段由DBDB、DWDW等定義等定義標(biāo)號(hào):某條指令所存放單元的符號(hào)地址,在

15、標(biāo)號(hào):某條指令所存放單元的符號(hào)地址,在CSCS中定義中定義變量和標(biāo)號(hào)均具有三種屬性:變量和標(biāo)號(hào)均具有三種屬性:a.a.段值段值SEGMENTSEGMENT: :可用分析運(yùn)算可用分析運(yùn)算SEGSEG取出取出b.b.段內(nèi)偏移地址段內(nèi)偏移地址OFFSETOFFSET: :可用分析運(yùn)算可用分析運(yùn)算OFFSETOFFSET取出取出c.c.類型類型TYPETYPE:可用分析運(yùn)算:可用分析運(yùn)算TYPETYPE取出取出 變量:每個(gè)元素所包含的字節(jié)數(shù),有變量:每個(gè)元素所包含的字節(jié)數(shù),有BYTEBYTE、WORDWORD和和DWORDDWORD三種類型。三種類型。 標(biāo)號(hào)標(biāo)號(hào): :可轉(zhuǎn)移的間隔或間隔屬性可轉(zhuǎn)移的間隔

16、或間隔屬性, ,有有NEARNEAR和和FARFAR兩種。兩種。四、四、MASMMASM中的表達(dá)式中的表達(dá)式表達(dá)式由運(yùn)算對(duì)象和運(yùn)算符組成,在匯編過程中完表達(dá)式由運(yùn)算對(duì)象和運(yùn)算符組成,在匯編過程中完成表達(dá)式運(yùn)算。其中運(yùn)算對(duì)象可以是常數(shù)、變量、成表達(dá)式運(yùn)算。其中運(yùn)算對(duì)象可以是常數(shù)、變量、標(biāo)號(hào)、存放器等。標(biāo)號(hào)、存放器等。1.1.算術(shù)運(yùn)算符運(yùn)算對(duì)象和運(yùn)算結(jié)果均為整數(shù)算術(shù)運(yùn)算符運(yùn)算對(duì)象和運(yùn)算結(jié)果均為整數(shù)包括:包括:+ +、- - 等等, ,常用于地址運(yùn)算。常用于地址運(yùn)算。注:兩符號(hào)地址相減表示某符號(hào)地址占用的內(nèi)存字注:兩符號(hào)地址相減表示某符號(hào)地址占用的內(nèi)存字節(jié)數(shù)。節(jié)數(shù)。【例】【例】ARRAY DB 1,

17、2,3,4,5,6,7,8ARRAY DB 1,2,3,4,5,6,7,8 TRY DB 20 TRY DB 20 MOV CX,TRY-ARRAY MOV CX,TRY-ARRAY 匯編后:匯編后: MOV CX,8 MOV CX,8 2.2.邏輯運(yùn)算符按位運(yùn)算邏輯運(yùn)算符按位運(yùn)算包括:包括:ANDAND、OROR、NOTNOT、XORXOR例:例:AND AL, 8FH AND 73H AND AL, 8FH AND 73H 運(yùn)算符,匯編過程中完成運(yùn)算符,匯編過程中完成 指令助記符,程序執(zhí)行時(shí)完成。指令助記符,程序執(zhí)行時(shí)完成。3.3.關(guān)系運(yùn)算符關(guān)系運(yùn)算符包括:包括:EQEQ、NE(NE(不等

18、不等) )、LT(LT(小于小于) )、GTGT大于、大于、LE()LE()、GE()GE() a. a.結(jié)果為真,輸出全結(jié)果為真,輸出全1 1字節(jié)運(yùn)算為字節(jié)運(yùn)算為OFFHOFFH或字運(yùn)算為或字運(yùn)算為OFFFFHOFFFFH b. b.結(jié)果為假,輸出全結(jié)果為假,輸出全0 0【例】【例】 MOV AX,10H GE 16 MOV AX,10H GE 16匯編后:匯編后:MOV AX,0FFFFHMOV AX,0FFFFH4.4.數(shù)值前往運(yùn)算符或分析運(yùn)算符數(shù)值前往運(yùn)算符或分析運(yùn)算符 功能:前往運(yùn)算對(duì)象的某個(gè)參數(shù)值。功能:前往運(yùn)算對(duì)象的某個(gè)參數(shù)值。包括:包括:SEGSEG、OFFSETOFFSET、

19、TYPETYPE、LENGTHLENGTH、SIZESIZESEG SEG 變量或標(biāo)號(hào)變量或標(biāo)號(hào) ;取段基址;取段基址 常用法:常用法:MOV AXMOV AX,SEG M1(SEG M1(或用段名或用段名) ) MOV DS MOV DS, AX AXOFFSET OFFSET 變量變量/ /標(biāo)號(hào)標(biāo)號(hào) ;取偏移地址值;取偏移地址值 常用法:常用法:MOV BXMOV BX,OFFSET DA1 OFFSET DA1 ;設(shè)地址指針;設(shè)地址指針 LEA BX LEA BX,DA1DA1TYPE TYPE 變量變量/ /標(biāo)號(hào)標(biāo)號(hào) ;取類型屬性;取類型屬性 變量前往變量前往1 1DBDB、2(DW)

20、2(DW)、4 4DDDD等等 標(biāo)號(hào)前往標(biāo)號(hào)前往-1-1NEARNEAR、-2-2FARFAR (0FFH) (0FEH) (0FFH) (0FEH)DATADATASEGMENTSEGMENT; ;定義數(shù)據(jù)段定義數(shù)據(jù)段VAR1 DB 10H,18H,25H,34HVAR1 DB 10H,18H,25H,34H; ;定義字節(jié)數(shù)據(jù)定義字節(jié)數(shù)據(jù)VAR2 DW 2300H,1200HVAR2 DW 2300H,1200H ; ;定義字?jǐn)?shù)據(jù)定義字?jǐn)?shù)據(jù)VAR3 DD 11002200H,33004400H ;VAR3 DD 11002200H,33004400H ;定義雙字?jǐn)?shù)據(jù)定義雙字?jǐn)?shù)據(jù)DATADAT

21、AENDSENDS; ;數(shù)據(jù)段終了數(shù)據(jù)段終了設(shè)設(shè)DATADATA段起始于物理地址段起始于物理地址30000H30000H處,那么處,那么MOV BX,SEG VAR1 MOV BX,SEG VAR1 匯編成:匯編成: MOV BX,3000H MOV BX,3000HMOV CX,SEG VAR2 MOV CX,SEG VAR2 匯編成:匯編成: MOV CX,3000H MOV CX,3000HMOV DX,SEG VAR3 MOV DX,SEG VAR3 匯編成:匯編成: MOV DX,3000H MOV DX,3000HMOV BX,OFFSET VAR1 MOV BX,OFFSET V

22、AR1 匯編成:匯編成: MOV BX,0000H MOV BX,0000HMOV CX,OFFSET VAR2 MOV CX,OFFSET VAR2 匯編成:匯編成: MOV CX,0004H MOV CX,0004HMOV DX,OFFSET VAR3 MOV DX,OFFSET VAR3 匯編成:匯編成: MOV DX,0008H MOV DX,0008H【例】【例】A1 DB 20H,30HA1 DB 20H,30H A2 DW 0438H A2 DW 0438H A3 DD ? A3 DD ? L1: MOV AH,TYPE A1 L1: MOV AH,TYPE A1 MOV BH,

23、TYPE A2 MOV BH,TYPE A2 MOV AL,TYPE A3 MOV AL,TYPE A3 MOV BL,TYPE L1 MOV BL,TYPE L1匯編后:匯編后:MOV AH,1MOV AH,1 MOV BH,2 MOV BH,2 MOV AL,4 MOV AL,4 MOV BL,0FFH MOV BL,0FFHLENGTH 變量變量 ;前往反復(fù)操作符;前往反復(fù)操作符DUP之前的反復(fù)次數(shù),之前的反復(fù)次數(shù),假設(shè)不是由假設(shè)不是由DUP定義,那么都前往定義,那么都前往1。SIZE 變量變量 ;前往該變量包含的總字節(jié)數(shù)。;前往該變量包含的總字節(jié)數(shù)。 SIZE=LENGTH*TYPE注

24、:注:SEG、OFFSET、TYPE可用于變量和標(biāo)號(hào)前,返可用于變量和標(biāo)號(hào)前,返回三種屬性值;而回三種屬性值;而LENGTH和和SIZE只對(duì)變量才有效。只對(duì)變量才有效?!纠俊纠縈1 DW 100 DUP (?) M2 DW 1,2,3 M3 DB A B C D MOV CX,LENGTH M1 MOV BL,LENGTH M2 MOV AL,LENGTH M3匯編后:匯編后: MOV CX,100 MOV CX,100 MOV BL,1 MOV BL,1 MOV AL,1 MOV AL,1 假設(shè)指令改為:假設(shè)指令改為: MOV CX,SIZE M1 MOV CX,SIZE M1 MOV

25、BL,SIZE M2 MOV BL,SIZE M2 MOV AL,SIZE M3 MOV AL,SIZE M3 那么匯編后:那么匯編后: MOV CX,200 MOV CX,200 MOV BL,2 MOV BL,2 MOV AL,1 MOV AL,15.5.修正屬性運(yùn)算符綜合運(yùn)算符修正屬性運(yùn)算符綜合運(yùn)算符功能:修正變量功能:修正變量/ /標(biāo)號(hào)的三種屬性標(biāo)號(hào)的三種屬性段操作符:修正段基址與偏移地址來源的默許關(guān)段操作符:修正段基址與偏移地址來源的默許關(guān)系,格式如下:系,格式如下:段前綴:變量或地址表達(dá)式段前綴:變量或地址表達(dá)式例:例:MOV AX MOV AX ,ES:BXES:BXPTRPTR

26、:對(duì)變量:對(duì)變量/ /標(biāo)號(hào)賦予新的屬性,以保證操作數(shù)標(biāo)號(hào)賦予新的屬性,以保證操作數(shù)類型的匹配,常與類型的匹配,常與BYTEBYTE、WORDWORD、NEARNEAR、FARFAR等連用。等連用。格式:新類型格式:新類型 PTR PTR 變量變量/ /標(biāo)號(hào)標(biāo)號(hào)例:例:MOV BX,10H ;MOV BX,10H ;匯編時(shí)提示錯(cuò)誤匯編時(shí)提示錯(cuò)誤 MOV BYTE PTRBX,10H ;BX10H MOV BYTE PTRBX,10H ;BX10H MOV WORD PTRBX,10H ;BX,BX+10010H MOV WORD PTRBX,10H ;BX,BX+10010H例:例:N1 DB

27、15H,36HN1 DB 15H,36H N2 DW 1122H,3344H N2 DW 1122H,3344H MOV AX, WORD PTR N1 MOV AX, WORD PTR N1 執(zhí)行后:執(zhí)行后:AX=3615HAX=3615H MOV BL, BYTE PTR N2 MOV BL, BYTE PTR N2 執(zhí)行后:執(zhí)行后:BL=22H BL=22H MOV AX, WORD PTR N1+1 MOV AX, WORD PTR N1+1 執(zhí)行后:執(zhí)行后:AX=2236HAX=2236H注:假設(shè)符號(hào)地址出如今操作數(shù)中,其類型為注:假設(shè)符號(hào)地址出如今操作數(shù)中,其類型為DBDB、DWD

28、W所定義所定義的類型如直接尋址、存放器相對(duì)尋址、相對(duì)基址變址尋的類型如直接尋址、存放器相對(duì)尋址、相對(duì)基址變址尋址,如類型不匹配匯編時(shí)提示址,如類型不匹配匯編時(shí)提示W(wǎng)arning Error:Operand Warning Error:Operand types must match types must match 或或 Illegal size for operand Illegal size for operand;假設(shè);假設(shè)存儲(chǔ)器操作數(shù)中不包含符號(hào)地址如存放器間接尋址等,存儲(chǔ)器操作數(shù)中不包含符號(hào)地址如存放器間接尋址等,那么該操作數(shù)的類型不確定,指令中的另一操作數(shù)必需明那么該操作數(shù)的類型不

29、確定,指令中的另一操作數(shù)必需明確類型,否那么匯編時(shí)提示確類型,否那么匯編時(shí)提示Severe Error:Operand must Severe Error:Operand must have size.have size.例:例:LEA BX,N1LEA BX,N1之后之后 CMP BX,10H CMP BX,10H 或或 INC BX INC BX均出錯(cuò)。均出錯(cuò)。THIS:對(duì)變量:對(duì)變量/標(biāo)號(hào)賦予新的屬性,且該變量或標(biāo)號(hào)的段標(biāo)號(hào)賦予新的屬性,且該變量或標(biāo)號(hào)的段地址和偏移地址與下一個(gè)存儲(chǔ)單元的地址一樣。地址和偏移地址與下一個(gè)存儲(chǔ)單元的地址一樣。格式:變量格式:變量/標(biāo)號(hào)標(biāo)號(hào) EQU THIS

30、類型類型 例:例:FIRST EQU THIS BYTE TABLE DW 200 DUP(?) TABLE為字類型為字類型,FIRST為字節(jié)類型,兩者地址一樣。為字節(jié)類型,兩者地址一樣。該數(shù)據(jù)區(qū)具有雙重類型屬性該數(shù)據(jù)區(qū)具有雙重類型屬性 MOV AL , FIRST MOV AX , TABLE 均正確。均正確。SHORT:闡明轉(zhuǎn)向地址為短轉(zhuǎn)移:闡明轉(zhuǎn)向地址為短轉(zhuǎn)移8位位移量位位移量 格式:格式:SHORT 標(biāo)號(hào)標(biāo)號(hào)例:例:JMP SHORT LP MOV -128+127之間之間LP: MOV6.6.其它運(yùn)算符其它運(yùn)算符 方括號(hào)方括號(hào) a. a.表示地址表達(dá)式表示地址表達(dá)式例:例:M1 DB

31、 10H,20H,30H,40HM1 DB 10H,20H,30H,40H M2 DW 1234H,5678H,9ABCH M2 DW 1234H,5678H,9ABCH MOV BX,OFFSET M1 MOV BX,OFFSET M1 MOV CL,BX ;10HCL MOV CL,BX ;10HCL MOV BX,OFFSET M2 MOV BX,OFFSET M2 MOV DX,BX+2 ; M2 MOV DX,BX+2 ; M2的第二個(gè)單元的第二個(gè)單元5678HDX5678HDX b. b.表示多重變量的下標(biāo)值下標(biāo)從表示多重變量的下標(biāo)值下標(biāo)從0 0開場(chǎng)算開場(chǎng)算例:例:MOV CXMO

32、V CX,M20 M20 ;1234HCX1234HCX MOV M21 MOV M21,CX CX ;CXM2CXM2的第二個(gè)單元,覆蓋的第二個(gè)單元,覆蓋5678H5678H4-2 4-2 偽指令語句偽指令語句特點(diǎn)特點(diǎn): :無對(duì)應(yīng)的機(jī)器代碼無對(duì)應(yīng)的機(jī)器代碼, ,在匯編期間進(jìn)展處置在匯編期間進(jìn)展處置 ( (不是由不是由CPUCPU執(zhí)行執(zhí)行) () (為匯編程序提供匯編信息為匯編程序提供匯編信息) )一、數(shù)據(jù)定義語句一、數(shù)據(jù)定義語句功能:為一個(gè)數(shù)據(jù)項(xiàng)分配存儲(chǔ)單元,用一個(gè)符號(hào)名功能:為一個(gè)數(shù)據(jù)項(xiàng)分配存儲(chǔ)單元,用一個(gè)符號(hào)名與這個(gè)存儲(chǔ)單元相聯(lián)絡(luò),且為此存儲(chǔ)單元提供與這個(gè)存儲(chǔ)單元相聯(lián)絡(luò),且為此存儲(chǔ)單元提

33、供恣意初始值。恣意初始值。例:例:ARRAY DB 1,2,4ARRAY DB 1,2,4 那么那么ARRAYARRAY記為第一個(gè)字節(jié)的偏移地址記為第一個(gè)字節(jié)的偏移地址該偽指令助記符有:該偽指令助記符有:DB DB 定義字節(jié)定義字節(jié) DW DW 定義字定義字 DD DD 定義雙字定義雙字1 1、操作數(shù)是常數(shù)或表達(dá)式,可以為數(shù)據(jù)或地址、操作數(shù)是常數(shù)或表達(dá)式,可以為數(shù)據(jù)或地址 DA DW 1122H,34H,5 DA DW 1122H,34H,5* *20H20H2 2、操作數(shù)為字符串,字符串必需用單引號(hào)括起來、操作數(shù)為字符串,字符串必需用單引號(hào)括起來 STR1 DB OK STR1 DB OK

34、STR2 DW OK STR2 DW OK注:字符串普通用注:字符串普通用DBDB定義,有時(shí)定義,有時(shí)2 2個(gè)字符可用個(gè)字符可用DWDW定義定義3 3、可用、可用?保管空單元分配內(nèi)存單元但不初始化保管空單元分配內(nèi)存單元但不初始化 M1 DB ? M1 DB ? M2 DW 1234H M2 DW 1234H,?,?4 4、用反復(fù)操作符、用反復(fù)操作符DUPDUP初始化反復(fù)數(shù)據(jù)初始化反復(fù)數(shù)據(jù)格式:格式:DB(DB(或或DW) DW) 反復(fù)次數(shù)反復(fù)次數(shù) DUP DUP反復(fù)內(nèi)容反復(fù)內(nèi)容注:注:DUPDUP可嵌套可嵌套 ARR DW 3 DUP(1,2 DUP(0),2) ; ARR DW 3 DUP(

35、1,2 DUP(0),2) ;變量共占變量共占 ? ?個(gè)字節(jié)單元個(gè)字節(jié)單元2424二、表達(dá)式賦值語句不占用內(nèi)存二、表達(dá)式賦值語句不占用內(nèi)存1 1、賦值語句、賦值語句 EQU EQU格式格式: :符號(hào)名符號(hào)名 EQU EQU 表達(dá)式表達(dá)式( (表達(dá)式應(yīng)有確定值表達(dá)式應(yīng)有確定值) ) COUNT EQU 100 COUNT EQU 100EQUEQU左邊的名字等價(jià)于右邊的表達(dá)式左邊的名字等價(jià)于右邊的表達(dá)式2 2、等號(hào)語句、等號(hào)語句 = = COUNT = 100 COUNT = 100與與EQUEQU語句具有一樣功能。語句具有一樣功能。區(qū)別:區(qū)別:EQUEQU中的符號(hào)名不允許反復(fù)定義,應(yīng)先用中的符

36、號(hào)名不允許反復(fù)定義,應(yīng)先用PURGEPURGE語句解除,而語句解除,而“= =偽指令可以。偽指令可以。例:例:C1 EQU 100C1 EQU 100 PURGE C1 PURGE C1 ;C1C1不再代表不再代表100100 C1 EQU 200 C1 EQU 200三、段定義語句三、段定義語句1 1、段定義語句、段定義語句 SEGMENTENDS SEGMENTENDSSEGMENTSEGMENT和和ENDSENDS必需成對(duì)運(yùn)用,將源程序分段。必需成對(duì)運(yùn)用,將源程序分段。段名段名 SEGMENT SEGMENT 定位類型定位類型 組合類型組合類型 分類名分類名 段名段名 ENDS ENDS

37、在在SEGMENTSEGMENT和和ENDSENDS之間,對(duì)于數(shù)據(jù)段、附加段和堆棧之間,對(duì)于數(shù)據(jù)段、附加段和堆棧段中,普通是一些偽指令;而對(duì)于代碼段,主要是段中,普通是一些偽指令;而對(duì)于代碼段,主要是指令序列和偽指令。指令序列和偽指令。1 1定位類型:對(duì)段起始地址定位定位類型:對(duì)段起始地址定位此參數(shù)普通缺省,缺省值為此參數(shù)普通缺省,缺省值為PARAPARA,表示段起始地址必,表示段起始地址必需在節(jié)的整數(shù)邊境存儲(chǔ)空間從需在節(jié)的整數(shù)邊境存儲(chǔ)空間從0 0開場(chǎng),每開場(chǎng),每1616個(gè)存?zhèn)€存儲(chǔ)單元叫一節(jié)。儲(chǔ)單元叫一節(jié)。2 2組合類型:提出各個(gè)邏輯之間的組合方式組合類型:提出各個(gè)邏輯之間的組合方式此參數(shù)在堆

38、棧段中不可缺省,用此參數(shù)在堆棧段中不可缺省,用STACKSTACK指定該段為堆指定該段為堆棧段。而在其它段中普通缺省,缺省值為棧段。而在其它段中普通缺省,缺省值為NONENONE,表,表示該段與其它同名段不進(jìn)展銜接,各段獨(dú)立存在于示該段與其它同名段不進(jìn)展銜接,各段獨(dú)立存在于存儲(chǔ)器中。存儲(chǔ)器中。3 3分類名分類名此參數(shù)普通缺省,主要作用是匯編程序延續(xù)時(shí)將一切此參數(shù)普通缺省,主要作用是匯編程序延續(xù)時(shí)將一切分類名一樣的邏輯段組成一個(gè)段組。分類名一樣的邏輯段組成一個(gè)段組。2 2、段分配語句、段分配語句ASSUMEASSUMEASSUME CS:CODE ,DS:DATA ,SS:STACK ,ES:E

39、XTRAASSUME CS:CODE ,DS:DATA ,SS:STACK ,ES:EXTRA該語句不可省略,普通放在代碼段的開場(chǎng)。該語句不可省略,普通放在代碼段的開場(chǎng)。用來建立用來建立4 4個(gè)段存放器個(gè)段存放器CSCS、DSDS、ESES、SSSS與程序中與程序中所取段名位于所取段名位于SEGMENTSEGMENT和和ENDSENDS之前之間的對(duì)應(yīng)之前之間的對(duì)應(yīng)關(guān)系。關(guān)系。但但ASSUMEASSUME語句只指定某個(gè)段分配給哪個(gè)段存放器,它語句只指定某個(gè)段分配給哪個(gè)段存放器,它并不能把段基址裝入段存放器中,故并不能把段基址裝入段存放器中,故DSDS、ESES、SSSS的的詳細(xì)值還必需分別經(jīng)過兩

40、條詳細(xì)值還必需分別經(jīng)過兩條MOVMOV指令得到如初始指令得到如初始化化SSSS,還應(yīng)加上,還應(yīng)加上SPSP的初始化的初始化, ,但但CSCS的賦值是在程的賦值是在程序初始化時(shí)自動(dòng)完成的。序初始化時(shí)自動(dòng)完成的。 總結(jié):分段程序的兩種完好段定義格式總結(jié):分段程序的兩種完好段定義格式 1 1DATA SEGMENT DATA SEGMENT ;數(shù)據(jù)段;數(shù)據(jù)段 DATA ENDS DATA ENDS STACK SEGMENT STACK STACK SEGMENT STACK ;堆棧段;堆棧段 STT DW 100 DUP(?) STT DW 100 DUP(?) TOP EQU SIZE STT

41、TOP EQU SIZE STT STACK ENDS STACK ENDS CODE SEGMENT CODE SEGMENT ;代碼段;代碼段 ASSUME CS:CODE,DS:DATA,SS:STACK ; ASSUME CS:CODE,DS:DATA,SS:STACK ;段分段分配配 MAIN PROC FAR MAIN PROC FAR ;主過程;主過程 START: MOV AX , STACK START: MOV AX , STACK ;初始化;初始化SSSS和和SPSP MOV SS , AX MOV SS , AX MOV SP , TOP MOV SP , TOP DW

42、 100 DUP (?) DW 100 DUP (?)TOP EQU $TOP EQU $ PUSH DS ; PUSH DS ;為前往為前往DOSDOS設(shè)置堆棧設(shè)置堆棧 MOV AX ,0 ;(XOR AX,AX),(AND AX,0) MOV AX ,0 ;(XOR AX,AX),(AND AX,0) ;(SUB AX,AX) ;(SUB AX,AX) PUSH AX PUSH AX MOV AX ,DATA ; MOV AX ,DATA ;初始化初始化DSDS MOV DS ,AX MOV DS ,AX RET ; RET ;前往前往DOSDOSMAIN ENDPMAIN ENDPCOD

43、E ENDSCODE ENDS END START END START(2)(2)前面兩個(gè)段一樣前面兩個(gè)段一樣 CODE SEGMENT CODE SEGMENT ASSUME ASSUME START: START: 段存放器及段存放器及SPSP初始化初始化 MOV AH ,4CH ; MOV AH ,4CH ;利用利用4CH4CH號(hào)號(hào)DOSDOS系統(tǒng)系統(tǒng) INT 21H ; INT 21H ;功能調(diào)用前往功能調(diào)用前往DOS DOS CODE ENDS CODE ENDS END START END START例:兩個(gè)例:兩個(gè)1616位無符號(hào)二進(jìn)制數(shù)相乘。位無符號(hào)二進(jìn)制數(shù)相乘。DATA SE

44、GMENTDATA SEGMENTD1 DW 1234HD1 DW 1234HD2 DW 5678HD2 DW 5678HP1 DD ?P1 DD ?P2 DD ?P2 DD ?DATA ENDSDATA ENDSSTACK SEGMENT STACKSTACK SEGMENT STACKSTT DB 100 DUP (?)STT DB 100 DUP (?)TOP EQU SIZE STT TOP EQU SIZE STT STACK ENDSSTACK ENDSCODE SEGMENTCODE SEGMENT ASSUME CS:CODE,SS:STACK,DS:DATA ASSUME C

45、S:CODE,SS:STACK,DS:DATASTART:MOV AX,STACKSTART:MOV AX,STACK MOV SS,AX MOV SS,AX MOV SP,TOP MOV SP,TOP MOV AX,DATA MOV AX,DATA MOV DS,AX MOV DS,AXL1: MOV AX,D1L1: MOV AX,D1 MUL D2 MUL D2 MOV BX,OFFSET P1 MOV BX,OFFSET P1 MOV BX,AX MOV BX,AX MOV BX+2,DX MOV BX+2,DX MOV AH,4CH MOV AH,4CH INT 21H INT 21

46、HCODE ENDSCODE ENDS END START END START四、過程定義語句子程序定義語句四、過程定義語句子程序定義語句格式:過程名格式:過程名 PROC NEAR PROC NEAR或或FARFAR RET RET 過程名過程名 ENDP ENDPa.a.每定義一個(gè)過程,每定義一個(gè)過程,PROCPROC和和ENDPENDP要成對(duì)出現(xiàn),兩者前面的過程要成對(duì)出現(xiàn),兩者前面的過程名應(yīng)一致。名應(yīng)一致。b.b.主、子程序在同一代碼段中,那么定義為主、子程序在同一代碼段中,那么定義為NEARNEAR型或缺省型或缺省 主、子程序不在同一代碼段中,那么定義為主、子程序不在同一代碼段中,那么

47、定義為FARFAR型;型; 普通可將主程序定義為普通可將主程序定義為FARFAR屬性主過程作為屬性主過程作為DOSDOS調(diào)用的一個(gè)調(diào)用的一個(gè)遠(yuǎn)端子過程遠(yuǎn)端子過程c.c.要調(diào)用一個(gè)過程,在主調(diào)函數(shù)中用要調(diào)用一個(gè)過程,在主調(diào)函數(shù)中用CALL CALL 過程名,而過程前過程名,而過程前往必需經(jīng)過往必需經(jīng)過RETRET語句。語句。例:用過程調(diào)用的方法,將內(nèi)存中例:用過程調(diào)用的方法,將內(nèi)存中4 4個(gè)個(gè)BCDBCD碼相加。碼相加。DATA SEGMENTDATA SEGMENTONE DB 22H,33H,44H,55HONE DB 22H,33H,44H,55HTWO DB 55H,66H,77H,88

48、HTWO DB 55H,66H,77H,88HSUM DB 20 DUP (?)SUM DB 20 DUP (?)DATA ENDSDATA ENDSSTACK SEGMENT STACKSTACK SEGMENT STACKSTT DB 100 DUP (?)STT DB 100 DUP (?)TOP EQU SIZE STTTOP EQU SIZE STTSTACK ENDSSTACK ENDSCODE SEGMENTCODE SEGMENT ASSUME CS:CODE,SS:STACK,DS:DATA ASSUME CS:CODE,SS:STACK,DS:DATA,ES:DATAES:

49、DATASTART:MOV AX,STACKSTART:MOV AX,STACK MOV SS,AX MOV SS,AX MOV SP,TOP MOV SP,TOP MOV AX,DATA MOV AX,DATA MOV DS,AX MOV DS,AX MOV ES,AX MOV ES,AX MOV SI,OFFSET ONE ; MOV SI,OFFSET ONE ;設(shè)置地址指針設(shè)置地址指針 MOV BX,OFFSET TWO MOV BX,OFFSET TWO MOV DI,OFFSET SUM MOV DI,OFFSET SUM CLD ; CLD ;清方向標(biāo)志清方向標(biāo)志 CLC ; C

50、LC ;清進(jìn)位標(biāo)志清進(jìn)位標(biāo)志 MOV CX,4 ; MOV CX,4 ;循環(huán)次數(shù)循環(huán)次數(shù)LL: CALL ABCLL: CALL ABC LOOP LL LOOP LL MOV AH,4CH MOV AH,4CH INT 21H INT 21HABC PROC NEAR ;ABC PROC NEAR ;完成單字節(jié)數(shù)據(jù)加法運(yùn)算完成單字節(jié)數(shù)據(jù)加法運(yùn)算 LODSB ;DS:SIAL,SI+1SI LODSB ;DS:SIAL,SI+1SIL1: ADC AL,BX ;L1: ADC AL,BX ;帶進(jìn)位相加帶進(jìn)位相加 DAA ; DAA ;十進(jìn)制調(diào)整十進(jìn)制調(diào)整 STOSB ;ALES:DI,DI+1

51、DI STOSB ;ALES:DI,DI+1DI INC BX ; INC BX ;修正指針修正指針 RET RETABC ENDPABC ENDPCODE ENDSCODE ENDS END START END START五、程序開場(chǎng)和終了語句五、程序開場(chǎng)和終了語句1.NAME:1.NAME:為源程序目的模塊賦名字為源程序目的模塊賦名字格式:格式:NAME NAME 程序名程序名普通放在程序開場(chǎng),列表文件將打印此程序名,如缺省普通放在程序開場(chǎng),列表文件將打印此程序名,如缺省NAMENAME語語句,匯編程序?qū)⒃次募髂康哪K的名字。句,匯編程序?qū)⒃次募髂康哪K的名字。2.ORG:2.OR

52、G:定位偽指令定位偽指令格式:格式:ORG ORG 表達(dá)式值為表達(dá)式值為0 06553565535功能:表示下面存儲(chǔ)單元的偏移地址從表達(dá)式的值開場(chǎng)排。即功能:表示下面存儲(chǔ)單元的偏移地址從表達(dá)式的值開場(chǎng)排。即程序和數(shù)據(jù)要從某一個(gè)特定的地址開場(chǎng)存放。程序和數(shù)據(jù)要從某一個(gè)特定的地址開場(chǎng)存放。注:普通,段內(nèi)的注:普通,段內(nèi)的EAEA是從段名是從段名SEGMENTSEGMENT以下,以以下,以0 0作為開場(chǎng),以作為開場(chǎng),以后每分配一個(gè)字節(jié),后每分配一個(gè)字節(jié),EAEA加加1 1。假設(shè)要給某變量或標(biāo)號(hào)設(shè)置特定的起始偏移地址,可用假設(shè)要給某變量或標(biāo)號(hào)設(shè)置特定的起始偏移地址,可用ORGORG語語句。句。 例:例

53、:DATA SEGMENTDATA SEGMENT ORG 100H ORG 100H A1 DB 10H,20H,30H A1 DB 10H,20H,30H ORG 200H ORG 200H A2 DB 40H,50H,60H A2 DB 40H,50H,60H DATA ENDS DATA ENDS3.END3.END:源程序終了語句:源程序終了語句格式:格式:END END 標(biāo)號(hào)標(biāo)號(hào) :標(biāo)號(hào)為程序中第一條指令的起始:標(biāo)號(hào)為程序中第一條指令的起始地址,可以缺省。地址,可以缺省。放在源程序最后一行,通知匯編程序,源程序到此終放在源程序最后一行,通知匯編程序,源程序到此終了,以后的內(nèi)容將被以

54、為不屬于本程序的范疇。了,以后的內(nèi)容將被以為不屬于本程序的范疇。 匯編言語中經(jīng)常地址計(jì)數(shù)器的值。匯編言語中經(jīng)常地址計(jì)數(shù)器的值。P150P150 注:地址計(jì)數(shù)器用來保管當(dāng)前指令或數(shù)據(jù)的偏移地址。其值注:地址計(jì)數(shù)器用來保管當(dāng)前指令或數(shù)據(jù)的偏移地址。其值可用可用“來援用,來援用,“的值是動(dòng)態(tài)變化的。常用于堆棧段的值是動(dòng)態(tài)變化的。常用于堆棧段的長(zhǎng)度定義,以便于設(shè)置堆棧指針。的長(zhǎng)度定義,以便于設(shè)置堆棧指針。 例:例: ORG 1000H ORG 1000H ABC DW 1,2, ABC DW 1,2,+4,ODH,OAH,+4,ODH,OAH,+3+3 設(shè)定設(shè)定ABCABC的偏移地址為的偏移地址為10

55、00H,1000H,那么第一個(gè)那么第一個(gè)“代表代表1004H1004H, 而第二個(gè)而第二個(gè)“代表代表100AH100AH。 上述語句等價(jià)于上述語句等價(jià)于 ABC DW 1,2,1008H,ODH,OAH,100DH ABC DW 1,2,1008H,ODH,OAH,100DH 例:例:STACK SEGMENTSTACK SEGMENT DW 100 DUP(?) DW 100 DUP(?) TOP EQU TOP EQU STACK ENDS STACK ENDS MOV SP,TOP ; MOV SP,TOP ;代碼段中初始化堆棧指針代碼段中初始化堆棧指針SPSP六、高檔微機(jī)添加的偽指令六

56、、高檔微機(jī)添加的偽指令1 1、常用偽指令、常用偽指令(1) .386 (1) .386 選擇選擇8038680386指令系統(tǒng)指令系統(tǒng)(2) .EXIT (2) .EXIT 前往前往DOSDOS(3) .MODEL(3) .MODEL 選擇編程模型選擇編程模型(4) .STARTUP (4) .STARTUP 指示程序的開場(chǎng)指示程序的開場(chǎng)( (包括段存放器初始化包括段存放器初始化) )2 2、匯編言語的兩種編程格式、匯編言語的兩種編程格式完好的段定義完好的段定義模型模型常用模型常用模型SMALL,SMALL,包含兩個(gè)段:包含兩個(gè)段:64KB64KB的代碼段和的代碼段和64KB64KB的的數(shù)據(jù)段。

57、數(shù)據(jù)段。例:將存儲(chǔ)塊例:將存儲(chǔ)塊LIST1LIST1中中100100個(gè)字節(jié)的內(nèi)容復(fù)制到存儲(chǔ)塊個(gè)字節(jié)的內(nèi)容復(fù)制到存儲(chǔ)塊LIST2LIST2中。中。.MODEL SMALL .MODEL SMALL ;小模型;小模型.386 .386 ;選擇;選擇8038680386指令系統(tǒng)指令系統(tǒng).STACK 100H .STACK 100H ;定義堆棧段;定義堆棧段.DATA .DATA ;定義數(shù)據(jù)段;定義數(shù)據(jù)段LIST1 DB 100 DUP (?)LIST1 DB 100 DUP (?)LIST2 DB 100 DUP (?)LIST2 DB 100 DUP (?).CODE .CODE ;定義代碼段;定

58、義代碼段.STARTUP .STARTUP ;闡明程序的起點(diǎn),初始化;闡明程序的起點(diǎn),初始化DSDS、SSSSCLDCLDMOV SI,OFFSET LIST1MOV SI,OFFSET LIST1MOV DI,OFFSET LIST2MOV DI,OFFSET LIST2MOV CX,100MOV CX,100REP MOVSBREP MOVSB.EXIT 0 .EXIT 0 ;前往;前往DOSDOS前往前往0 0,表示無錯(cuò)誤,表示無錯(cuò)誤ENDEND 操作系統(tǒng)操作系統(tǒng)OSOS包括包括DOSDOS、WINDOWSWINDOWS、UNIXUNIX等。等。 操作系統(tǒng)是用戶和操作系統(tǒng)是用戶和PCPC

59、機(jī)之間的接口,用戶依托操作系統(tǒng)來運(yùn)機(jī)之間的接口,用戶依托操作系統(tǒng)來運(yùn)用用PCPC機(jī)。機(jī)。 DOSDOS系統(tǒng)設(shè)置了兩層內(nèi)部子程序供用戶運(yùn)用系統(tǒng)設(shè)置了兩層內(nèi)部子程序供用戶運(yùn)用 根本輸入輸出系統(tǒng)根本輸入輸出系統(tǒng)BIOS(OSBIOS(OS的中心的中心) ) 主要功能:驅(qū)動(dòng)系統(tǒng)所配置的外部設(shè)備主要功能:驅(qū)動(dòng)系統(tǒng)所配置的外部設(shè)備 采用采用BIOSBIOS功能調(diào)用功能調(diào)用INT 10HINT 10HINT 1AHINT 1AH DOSDOS層的功能模塊層的功能模塊DOSDOS系統(tǒng)功能調(diào)用系統(tǒng)功能調(diào)用 主要功能:文件管理、存儲(chǔ)管理、作業(yè)管理、設(shè)備管理等主要功能:文件管理、存儲(chǔ)管理、作業(yè)管理、設(shè)備管理等 原理

60、:經(jīng)過原理:經(jīng)過BIOSBIOS運(yùn)用外部設(shè)備,但功能較運(yùn)用外部設(shè)備,但功能較BIOSBIOS弱。弱。(INT 21H)(INT 21H) 一、一、DOSDOS系統(tǒng)功能調(diào)用簡(jiǎn)述系統(tǒng)功能調(diào)用簡(jiǎn)述 按功能分為六組:按功能分為六組: 1.1.字符字符I/OI/O管理管理 2. 2.傳統(tǒng)的文件管理傳統(tǒng)的文件管理( (磁盤磁盤) ) 3.3.擴(kuò)展的文件管理擴(kuò)展的文件管理( (目錄、文件目錄、文件) 4.) 4.內(nèi)存管理內(nèi)存管理( (內(nèi)存內(nèi)存) ) 5.5.作業(yè)管理作業(yè)管理( (終止、裝入等終止、裝入等) 6.) 6.其它資源管理其它資源管理( (日期、時(shí)間等日期、時(shí)間等) )4-3 DOS4-3 DOS系

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論