復習深化第三章_第1頁
復習深化第三章_第2頁
復習深化第三章_第3頁
復習深化第三章_第4頁
復習深化第三章_第5頁
已閱讀5頁,還剩34頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、微機系統與接口微機系統與接口 第三章第三章 匯編語言程序設計匯編語言程序設計Assembly Language Programming 格式格式# 偽指令偽指令# DOS/BIOSDOS/BIOS調用調用 (簡單了解)簡單了解) 重點:重點:數據結構表示數據結構表示 變量、指針變量、指針 程序結構程序結構 程序流控制(條件、分支、循環(huán))程序流控制(條件、分支、循環(huán)) 程序設計方法程序設計方法1微機系統與接口微機系統與接口程序設計語言與匯編語言程序設計語言與匯編語言計算機計算機程序程序設計語言設計語言高級語言(高級語言(High Level Language): 通用,一般不要通用,一般不要求了

2、解結構原理。易讀,易編寫,調試,簡潔求了解結構原理。易讀,易編寫,調試,簡潔BASIC,.,VC(+)/VB/DELPHI,JAVA,C#,HTML =機器語言(執(zhí)行)機器語言(執(zhí)行)-翻譯翻譯/編譯編譯 解釋程序(解釋程序(Interpreter)/編譯程序(編譯程序(Compiler)(編譯原理)(編譯原理)C+編譯編譯真實指令真實指令 JAVA編譯編譯 Java bytecode中間代碼中間代碼虛擬機指令虛擬機指令JAVA解釋器解釋器機器語言、匯編語言和高級語言機器語言、匯編語言和高級語言2微機系統與接口微機系統與接口程序設計語言與匯編語言程序設計語言與匯編語言(2)匯編語言匯編語言(A

3、ssembly Language)-面向具體機器(面向具體機器(CPU)語言)語言 ,最最接近于機器語言的低級語言。借助于助記符編程,地址數據可符號化接近于機器語言的低級語言。借助于助記符編程,地址數據可符號化(可讀性提高),編寫、修改較方便。完整的語法,不易出錯。例:(可讀性提高),編寫、修改較方便。完整的語法,不易出錯。例: ADD AX,100 (05 64 00) JMP 1000:2000 (EA 00 20 00 10)特點:特點:匯編語言程序與機器代碼匯編語言程序與機器代碼一一對應一一對應,程序流可控,速度快程序流可控,速度快,用,用于編制系統程序、實時通信于編制系統程序、實時通

4、信/控制控制/處理。處理。-面向具體機器(面向具體機器(CPU)語)語言,移植性差,不通用。言,移植性差,不通用。匯編(匯編(Assemble)源程序代碼源程序代碼機器語言代碼(目標程序)的過程。機器語言代碼(目標程序)的過程。功能:功能:語法檢查、翻譯。匯編程序語法檢查、翻譯。匯編程序Assembler機器匯編(機器匯編(人工人工匯編)。交叉匯編匯編)。交叉匯編借助其它機器(如借助其它機器(如PC)匯編。匯編。 反匯編(反匯編(Dis-Assemble) 機器語言代碼機器語言代碼指令指令代碼(源程序代碼(源程序) ,逆逆向工程向工程Reverse Engineering)機器語言機器語言 二

5、進制表示的指令和數據序列二進制表示的指令和數據序列/目標代碼目標代碼3微機系統與接口微機系統與接口程序設計語言與匯編語言程序設計語言與匯編語言(3)匯編程序獲取匯編程序獲取 (1)機器碼機器碼Disassemble Sourcer /debuger (2)C ASM CL /Fa開關開關; TCC -B; VS-C+Listing File (3)ASM 編程編程 (高級語言嵌入小匯編程序模塊高級語言嵌入小匯編程序模塊) MASM TASM ASM;匯編程序(匯編程序(MS-MASM 4.0/5.0 6.11/6.14/6.15)ASM86(小,無宏小,無宏MICRO支持支持)TASM(2.0

6、/3.0/3.1/4.1) MS/DOS版,版,Winddows版版匯編程序用途匯編程序用途 EXE, DLL, PE; PO, OO; 4微機系統與接口微機系統與接口匯編語言源程序結構特點匯編語言源程序結構特點1.分段結構:分段結構:由若干邏輯段組成,有段名,用段由若干邏輯段組成,有段名,用段定義偽指令來定義。定義偽指令來定義。 (SS/CS/DS/ES) (開(開頭頭SEGMENT-結尾結尾ENDS)2. 代碼段起始處,用代碼段起始處,用ASSUME偽指令說明各段偽指令說明各段寄存器與邏輯段的關系,建立這些邏輯段的可寄存器與邏輯段的關系,建立這些邏輯段的可尋址性。尋址性。3. 整個源程序必

7、須以整個源程序必須以END結尾,通知匯編程序停結尾,通知匯編程序停止匯編。止匯編。4. 代碼段必須含有返回到代碼段必須含有返回到DOS系統的指令,保系統的指令,保證程序執(zhí)行完后自動回到證程序執(zhí)行完后自動回到DOS。5微機系統與接口微機系統與接口匯編語言源程序格式匯編語言源程序格式(例(例1P137)DATA SEGMENT ;定義數據段定義數據段 DATA1 DB 0F8H,60H, 0ACH,74H,3BH;被加數被加數 DATA2 DB 0C1H,36H,9EH,0D5H,20H;加數加數 DATA ENDS;數據段結束數據段結束 CODE SEGMENT;定義代碼段定義代碼段 ASSUM

8、E CS:CODE,DS:DATA;告訴匯編程序段范圍告訴匯編程序段范圍 START: MOV AX,DATA MOV DS,AX ;初始化初始化DS MOV CX,5 ;循環(huán)次數送循環(huán)次數送CX段名段名段說明偽指令段說明偽指令標號標號6微機系統與接口微機系統與接口 匯編語言源程序格式(例匯編語言源程序格式(例1續(xù))續(xù)) MOV SI,0 ;置置SI初值為零初值為零 CLC ; 清清CF標志標志LOOPER:MOV AL,DATA2SI;取一個字節(jié)加數取一個字節(jié)加數 ADC DATA1SI,AL;與被加數相加與被加數相加 INC SI ;SI加加1指向下一字節(jié)指向下一字節(jié) DEC CX;計數器

9、計數器CX減減1 JNZ LOOPER;不等于零,轉不等于零,轉LOOPER (HLT) ;停止停止-實際?實際?(INT21H) CODE ENDS ;代碼段結束代碼段結束 END START;源程序結束,指定起始地址標號源程序結束,指定起始地址標號7微機系統與接口微機系統與接口匯編語言源程序格式(例匯編語言源程序格式(例2)(PC臺式計算機在臺式計算機在MS-DOS環(huán)境下的標準程序格式)環(huán)境下的標準程序格式)MAIN PROC FAR ;MS-DOS 模板語句模板語句 PUSH DS XOR AX,AX ;=MOV AX,0 PUSH AX ;保存返回指針保存返回指針START: MOV

10、AX, DATA MOV DS, AX : RET ;返回原返回原DS:0000HMS-DOSMAIN ENDP8微機系統與接口微機系統與接口匯編語言源程序匯編語言源程序語句的種類語句的種類(1)指令語句)指令語句(指令性語句)(指令性語句)可執(zhí)行,匯編程序產生機器目標代碼可執(zhí)行,匯編程序產生機器目標代碼MOV DS,AX(2)偽指令語句)偽指令語句(指示性語句(指示性語句)CPU不執(zhí)行,不產生目標代碼,不執(zhí)行,不產生目標代碼,匯編輔助信息匯編輔助信息DATA SEGMENT(3)宏指令語句)宏指令語句匯編時,有宏指令的地方都將用相應的指令序列的目匯編時,有宏指令的地方都將用相應的指令序列的目

11、標代碼插入。標代碼插入。9微機系統與接口微機系統與接口匯編語言源程序匯編語言源程序語句的格式語句的格式語句構成:語句構成:標號:標號: 指令助記符指令助記符 操作數操作數 ;注釋;注釋line1: MOV DS, AX ;comments名字名字 偽指令定義符偽指令定義符 操作數操作數 ;注釋;注釋 DATA SEGMENT構成元素:構成元素:標號和名字;標號和名字;助記符和偽操作;操作數;注釋(分號助記符和偽操作;操作數;注釋(分號后)后) ;界符(空格)界符(空格) 10微機系統與接口微機系統與接口語句的構成元素語句的構成元素p標號和名字標號和名字:以字母開頭,包含字母,數字,特殊符號等,

12、 32個,個,不能是匯編語言中的特殊保留字。標號標號(Label)指令的符號地址(可浮動),指令的符號地址(可浮動),這個地址一定在代碼段中!這個地址一定在代碼段中!三屬性:三屬性:段段(SEGMENT)、偏移量偏移量(OFFSET)、類型類型(TYPE即轉移遠近即轉移遠近(NEAR段內轉移段內轉移/FAR段間轉移段間轉移) )line1: MOV DS, AX ;comments JMP line111微機系統與接口微機系統與接口語句的構成元素語句的構成元素名字名字(Name) 變量名變量名/段名段名/過程名過程名-指示性語句(可浮動)指示性語句(可浮動) 無冒號無冒號; 三屬性:三屬性:段

13、段(SEGMENT)、偏移量偏移量(OFFSET)、類類型型(TYPE即數據類型即數據類型(BYTE字節(jié)字節(jié)/WORD字字/DWORD雙字雙字 /QWORD四字四字 /TBYTE十字節(jié)十字節(jié)) )段段過程過程變量變量標記標記名稱名稱12微機系統與接口微機系統與接口語句的構成元素語句的構成元素p助記符和偽操作助記符和偽操作 (Mnemonic & Pseudo Operation) 指令助記符指令助記符 MOV,ADD,. 指示性操作指示性操作 DB,DW,SEGMENT,ENDS,ASSUME,ENDp操作數操作數(Operand)單)單/雙雙/無,逗號隔開無,逗號隔開 包括:常數包括

14、:常數/寄存器寄存器/存儲器存儲器/表達式表達式 (1)常數:常數:xxxxD/B/H/O(Q),),ASCII(A01) 十進制十進制D可以缺省,十六進制可以缺省,十六進制ABH必須寫成必須寫成0ABH13微機系統與接口微機系統與接口語句的構成元素語句的構成元素 操作數(操作數(1)(2)寄存器操作數寄存器操作數 8位位: AL/AH, BH/BL, CH,CL,DH,DL 16位位:AX/BX/CX/DX,SI/DI/BP/SP/ D/ES/CS(3)存儲器操作數存儲器操作數 標號標號 (少用絕對地址,多用標號(少用絕對地址,多用標號-維護,移植維護,移植) 變量變量 內存數據區(qū)名內存數據

15、區(qū)名, 存在該單元中的值存在該單元中的值, 類型類型 B/W/DW/QW/TB(4)表達式表達式 (預編譯(預編譯/匯編處理)匯編處理) (a)數值表達式:數值表達式:由數值常量、字符串常量或符號由數值常量、字符串常量或符號常量與常量與算數、邏輯、關系等運算符算數、邏輯、關系等運算符連接而成,在連接而成,在匯編時產生一個數值匯編時產生一個數值,僅有大小而沒有其它屬性,僅有大小而沒有其它屬性(段段/偏移量偏移量/類型類型),作為一種立即數。,作為一種立即數。14微機系統與接口微機系統與接口語句的構成元素語句的構成元素 操作數(操作數(1)(4)表達式表達式 (b)地址表達式:地址表達式:由常量、

16、標號、寄存器的內容及由常量、標號、寄存器的內容及其其一些運算符一些運算符組成,其值表示存儲器地址,具有組成,其值表示存儲器地址,具有三大屬性(段三大屬性(段/偏移量偏移量/類型)。類型)。表達式中的運算符:表達式中的運算符: 算術運算符算術運算符 + - * / MOD (變量地址(變量地址+/-) PLACE+2*3,是,是PLACE單元后單元后6個單元的地址個單元的地址 (標號的偏移量改變,而段基標號的偏移量改變,而段基/類型不變類型不變) 邏輯運算符邏輯運算符 (位)(位)AND/OR/XOR/NOT AND AL,100001B AND AL,100001B AND 1111101B

17、區(qū)別于區(qū)別于邏輯運算指令邏輯運算指令15微機系統與接口微機系統與接口語句的構成元素語句的構成元素 操作數(操作數(2)(5)表達式(續(xù))表達式(續(xù))關系運算符關系運算符 關系運算符有:關系運算符有:EQ(等于),(等于),NE(不等),(不等),LT(小于),(小于),GT(大于),(大于),LE(小于或等于),(小于或等于),GE(大于或等于)等。(大于或等于)等。 參與關系運算的必須是兩個數值,或同一段中的兩參與關系運算的必須是兩個數值,或同一段中的兩個存儲單元地址,但運算結果只可能是兩個特定的個存儲單元地址,但運算結果只可能是兩個特定的數值之一:當關系不成立(假)時,數值之一:當關系不成

18、立(假)時,結果為結果為0;當;當關系成立(真)時,關系成立(真)時,結果為結果為0FFFFH。例如,。例如,MOV AX,4 EQ 3;關系不成立,故(;關系不成立,故(AX)0 MOV AX,4 NE 3;關系成立,故(;關系成立,故(AX)0FFFFH16微機系統與接口微機系統與接口語句的構成元素語句的構成元素 操作數(操作數(3) 分析運算符和合成運算符分析運算符和合成運算符 分析運算符分析運算符 用以分析提取一個用以分析提取一個存儲器操作數存儲器操作數的的屬性屬性,如段、偏移量或類型等。,如段、偏移量或類型等。OFFSET 可以得到一個可以得到一個標號或變量標號或變量的偏移地址的偏移

19、地址 MOV SI,OFFSET DATA1 LEA SI, DATAl LEA SI, DATA1BX+100 SEG 可以得到一個標號或變量的段值可以得到一個標號或變量的段值 MOV AX,SEG ARRAY MOV DS,AXTYPE 結果結果=類型數值(與存儲器操作數類型屬性的類型數值(與存儲器操作數類型屬性的對應)對應) B-1;W-2/DW-4/NEAR-(-1)/FAR(-2)17微機系統與接口微機系統與接口語句的構成元素語句的構成元素 操作數(操作數(4)分析運算符分析運算符 TYPEVAR DW ?;?;變量變量VAR的類型為字的類型為字 2ARRAY DD 10 DUP(?

20、);(?); 變量變量ARRAY的類型為雙字的類型為雙字:type ARRAY= 4STR DB This is a test;變量變量STR的類型為字節(jié)的類型為字節(jié) 1 : MOV AX, TYPE VAR;(AX)2 MOV BX, TYPE ARRAY;(BX)4 MOV CX, TYPE STR ; (CX) 118微機系統與接口微機系統與接口語句的構成元素語句的構成元素 操作數(操作數(5)分析運算符分析運算符 LENGTH/ SIZELENGTH 一個變量按一個變量按DUP定義的變量總數定義的變量總數 非非DUP則則=1 (LENGTH ARRAY=10)SIZE 一個變量第一個一

21、個變量第一個DUP定義的字節(jié)總數定義的字節(jié)總數 (變量(變量TYPE*LENGTH) 非非DUP則則=TYPE 例例 V1 DB 20 DUP(?)(?),20,100H DUP(A) V2 DD 4000H SIZE V120 SIZE V2=419微機系統與接口微機系統與接口語句的構成元素語句的構成元素 操作數(操作數(6) 分析運算符和合成運算符分析運算符和合成運算符合成運算符合成運算符 可規(guī)定存儲器操作數的某個屬性,例如可規(guī)定存儲器操作數的某個屬性,例如類型。類型。 PTR/THIS/HIGH/LOW/$ (類似類(類似類型強制轉換)型強制轉換)例:例: INC WORD PTR BX

22、 ADD BYTE PTR1000H, 38H20微機系統與接口微機系統與接口語句的構成元素語句的構成元素 操作數(操作數(7)PTR (強制)指定存儲器操作數類型屬性,而段(強制)指定存儲器操作數類型屬性,而段/偏移地址偏移地址屬性保留。屬性保留。 MOV AX,BX INC WORD PTR BXTHIS(同(同C中中UNION聯合體)聯合體) 同一變量區(qū)同一變量區(qū),可按不同類型訪問(,可按不同類型訪問(BYTE/WORD/DWORD) V1WEQUTHIS WORDV1BDB 10 DUP(?)(?)MOV AX,WORD PTR V1B ;強制轉換;強制轉換 MOV AX, V1WSH

23、ORT 128/+127 短標號短標號 JMP SHORT SLABLE21微機系統與接口微機系統與接口語句的構成元素語句的構成元素 操作數(操作數(8)(5)表達式(續(xù))表達式(續(xù)) 其它運算符其它運算符段超越段超越“:” CS:/ES/ SS:/DS:HIGH xxxxLOW xxxx $(當前指令地址當前指令地址)運算關系順序運算關系順序 P127 表表3.2 先合成先合成-分析運算分析運算(1)LENGTH,SIZE,WIDTH,MASK,(), (2)(結構成員)(結構成員)(3) (段超越)(段超越)(4)PTR,OFFSET,SEG,TYPE,THIS(5)HIGH,LOW-(6

24、)+,-(7)*/MOD,(8)SHL,SHR (9)EQ,NE,LT,LE,GT,GE(10)NOT(11)AND(12)OR,XOR(13) SHORT (最低最低) (不用硬記,多用括號)不用硬記,多用括號)優(yōu)先順序優(yōu)先順序22微機系統與接口微機系統與接口源程序格式源程序格式 偽指令偽指令以上是操作數中的運算符:運算符:算數、邏輯、關系、分析、合成算數、邏輯、關系、分析、合成下面介紹偽指令: (分析合成分析合成運算符也是運算符也是偽指令偽指令)CPU指令指令一種操作一種操作偽指令偽指令指示性的語句指示性的語句23微機系統與接口微機系統與接口偽指令(一)偽指令(一)符號定位偽指令符號定位偽

25、指令名字名字 EQU 表達式表達式(全局,唯一,不可換)(全局,唯一,不可換) COUNT EQU 2000名字名字 = 表達式表達式 COUNT=2000 (可換改)可換改) 名字名字 LABEL 類型類型(Byte,Word,Double Word, STRUC,RECORD,NEAR,FAR) THIS 定義標號或變量類型定義標號或變量類型(下一下一CPU指令或指令或DB偽偽指令指令)例:例:V1W EQU THIS WORD ;同同V1W LABLE WORD24微機系統與接口微機系統與接口偽指令(二)偽指令(二)數據定義數據定義定義變量,指定其類型和名稱,并分配存儲單元定義變量,指定

26、其類型和名稱,并分配存儲單元DB(字節(jié))(字節(jié)) DW(字)(字) DD(雙字)(雙字) DQ (4字字/8字節(jié))字節(jié))DT (十字節(jié))(十字節(jié))DB 30,20H,111110B, 3 DUP(xx/?);DB ?,?DW ?,?,?, LABEL(偏移量偏移量)DD LABEL ;四字節(jié);四字節(jié) DT 十字節(jié)十字節(jié)HEX經過定義的變量名都有三屬性:經過定義的變量名都有三屬性: 段基地址段基地址(用用SEG獲得獲得) 偏移量偏移量(用用OFFSET獲得獲得) 類型類型(用用TYPE獲得獲得)25微機系統與接口微機系統與接口偽指令(二)偽指令(二)數據定義數據定義STRUC 自定義多字段組成的

27、數據類型。自定義多字段組成的數據類型。(同同C中中struct) -定義結構類型定義結構類型 變量名變量名 結構名結構名 定義結構變量定義結構變量 VS1 S1; VS2 S1 20 DUP(); VS3 S1 30 dup) 結構變量名結構變量名.字段名(成員名)字段名(成員名)-引用引用 |BX.字段名,字段名,VS1. 字段名字段名(SIZE 等仍可用等仍可用)VS1.V1, BX.V2, BX.V1+100結構名結構名 STRUC: : 結構名結構名 ENDS例例 S1 STRUC V1 DB ? V2 DW ? S1 ENDS26微機系統與接口微機系統與接口偽指令(三)偽指令(三)段

28、定義段定義SEGMENT / ENDS 邏輯段存儲定位關系邏輯段存儲定位關系 SEGMENT 定位類型定位類型,組合類型,組合類型,類別類別. PARA (段的起始位置必須是段的起始位置必須是XXXX0H) BYTE (任意)(任意) WORD (偶數地址)(偶數地址) PAGE (頁(頁256,XXX00H)四種定位類型四種定位類型:匯編程序對源程序匯編得到匯編程序對源程序匯編得到OBJ,其中,其中各段地址和偏移量都未最終確定,還需要用鏈接程各段地址和偏移量都未最終確定,還需要用鏈接程序序LINK把各個模塊連起來。定位類型告訴把各個模塊連起來。定位類型告訴LINK程程序連接時本段首地址的邊界

29、定位方式。)序連接時本段首地址的邊界定位方式。)段1段2段327微機系統與接口微機系統與接口偽指令(三)偽指令(三)段定義段定義SEGMENT / ENDS SNAME SEGMENT 定位類型定位類型,組合類型組合類型,類別類別. NONE 不組合不組合 PUBLIC 多個模塊中的相同段名裝配合一多個模塊中的相同段名裝配合一 STACK 同同Public( 相同段名裝配合一相同段名裝配合一),作為堆棧段,作為堆棧段 COMMON 公用,各模塊中由此方式說明的同名段公用,各模塊中由此方式說明的同名段重疊覆蓋,有著相同的起始地址。重疊覆蓋,有著相同的起始地址。 MEMORY 把本段置于被鏈接到一

30、起的其他所有段把本段置于被鏈接到一起的其他所有段的最后,多個時取首先遇到的作為的最后,多個時取首先遇到的作為MEMORY,其,其余作為余作為COMMON28微機系統與接口微機系統與接口偽指令(三)偽指令(三)段定義段定義SEGMENT / ENDS SEGMENT 定位類型定位類型,組合類型,組合類型,類別類別. AT 表達式表達式 定位在指定段基位置定位在指定段基位置 AT 2000H 起始物理地址起始物理地址20000H; 類別類別(名稱名稱 )鏈接時,相同類別)鏈接時,相同類別連續(xù)連續(xù)裝入成一塊裝入成一塊(段段) ENDS -段結束段結束 簡化的段定義簡化的段定義 MASM5.0.COD

31、E .DATA .STACK 29微機系統與接口微機系統與接口偽指令(三)偽指令(三)段定義段定義ORG 強行指定地址計數器(記載正在匯編的數據或指令代碼存放強行指定地址計數器(記載正在匯編的數據或指令代碼存放在當前段內的偏移量),以改變在它以后的數據或代碼存放在當前段內的偏移量),以改變在它以后的數據或代碼存放的偏移地址。的偏移地址。 DATA SEGMENT ORG 10H;強行改變強行改變起始偏移地址起始偏移地址 X DB 20H,30H ORG $+5 Y DB 40H,50H30微機系統與接口微機系統與接口偽指令(四)偽指令(四)段寄存器說明段寄存器說明ASSUME SR:段名:段名

32、,SR:段名:段名, - 邏 輯 段 與 物 理 段 之 間 的 關 系邏 輯 段 與 物 理 段 之 間 的 關 系 ( 段 寄 存 器段 寄 存 器=CS/DS/ES/SS) 匯編時確定變量匯編時確定變量(直接直接MEM訪問訪問)屬于哪一個段范圍屬于哪一個段范圍計算偏移量,計算偏移量,必要時自動加段超越前綴。不改變段必要時自動加段超越前綴。不改變段寄存器內容!寄存器內容! MOV AX, WORDMEM 匯編匯編 CS/ES/SS: MOV AX,3002例例ASSUME CS:CODE, DS:DATA, SS:STACK未注明未注明error A2068:Cannot address

33、with segement register.31微機系統與接口微機系統與接口偽指令(五)偽指令(五)過程定義過程定義過程名過程名 PROC (NEAR)/FAR: RET;(自動(自動RETF/RET)例:例: 過程名過程名 ENDP ; 程序塊定義程序塊定義 子程序(子程序(SUBROUTINE) 引用:引用:CALL 過程名過程名,(堆棧使用)堆棧使用) 轉移轉移, 順序執(zhí)行順序執(zhí)行MYPROC PROC : RETMYPROC ENDPCALL MYPROC;32微機系統與接口微機系統與接口偽指令(五)偽指令(五)過程定義過程定義縮短源程序代碼總長度縮短源程序代碼總長度:一處定義一處定

34、義, 多處調用多處調用(CALL)利于實現模塊化的程序設計利于實現模塊化的程序設計,便于編制、調試和維護便于編制、調試和維護PRINTCHS PROC : RETPRINTCHS ENDPPUSH S1CALL PRINTCHS:PUSH S2CALL PRINTCHS:PUSH S3 CALL PRINTCHS實現實現: 利用堆棧來傳遞參數、利用堆棧來傳遞參數、保存斷點、過程的定義保存斷點、過程的定義和調用均可嵌套、返回和調用均可嵌套、返回33微機系統與接口微機系統與接口偽指令(六)偽指令(六)模塊與鏈接定義模塊與鏈接定義NAME NAME 給匯編后的目標程序指定模塊名給匯編后的目標程序指定

35、模塊名 ENDEND 起始入口標號起始入口標號 源程序到此結束源程序到此結束PUBLICPUBLIC 符號符號 , 模塊中的某些符號是公共的模塊中的某些符號是公共的( (本模塊定義)本模塊定義)EXTRNEXTRN 名字:類型名字:類型 , 模塊中的某些符號是公共的模塊中的某些符號是公共的( (他模塊定他模塊定義)義) ( (匯編匯編) )源程序文件源程序文件 匯編工具匯編工具MASM.EXE MASM.EXE 浮動目標程序浮動目標程序 xxx.ASM xxx.ASM xxx.OBJ xxx.OBJ 浮動目標浮動目標程序程序 鏈接程序鏈接程序link.exe link.exe 可執(zhí)行目標程序可執(zhí)行目標程序 xxx.OBJ xxx.OBJ xxx.exe xxx.exe 各自生成各自生成OBJOBJ,但通過鏈接成為一個整體,但通過鏈接成為一個整體exeexe,一個模,一個模塊中定義的符號可以被另一個模塊引用。塊中定義的符號可以被另一個模塊引用。單單模模塊塊34微機系統與接口微機系統與接口偽指令(六)偽指令(六)多模塊與鏈接多模塊與鏈接 ( (匯編匯編) )源程序文件源程序文件 匯編工具匯編工具MASM.EXE MASM.EXE 浮動目標程序浮動目標程序 A.ASM A.ASM

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論