微機原理及應用課上機_第1頁
微機原理及應用課上機_第2頁
微機原理及應用課上機_第3頁
微機原理及應用課上機_第4頁
微機原理及應用課上機_第5頁
已閱讀5頁,還剩18頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、微機原理及應用課上機1.1.用編輯程序(如用編輯程序(如EDITEDIT)建立)建立ASMASM源程序文件;源程序文件;2.2.用匯編程序(用匯編程序(MASMMASM或或ASMASM)把)把ASMASM文件匯編成文件匯編成OBJOBJ文文件;件;3.3.用連接程序(用連接程序(LINKLINK)把)把OBJOBJ文件轉換成文件轉換成EXEEXE文文件件( (可執行文件可執行文件) );4.4.在在DOSDOS命令狀態下直接鍵入文件名就可執行該命令狀態下直接鍵入文件名就可執行該文件。文件。第三節第三節 匯編語言上機操作匯編語言上機操作匯編語言程序上機過程匯編語言程序上機過程編輯程序編輯程序ED

2、IT匯編程序匯編程序MASM連接程序連接程序LINK手寫程序手寫程序 1、在計算機上建立自己的匯編目錄。、在計算機上建立自己的匯編目錄。 2、將、將、MASM.EXE、 拷入自己的目錄下。拷入自己的目錄下。建立上機的匯編環境建立上機的匯編環境一般上機過程一般上機過程1 1、在、在DOSDOS下,執行文件,進入編輯界面。下,執行文件,進入編輯界面。2 2、按提供的源程序輸入源程序。、按提供的源程序輸入源程序。 EDITEDIT的命令激活鍵為的命令激活鍵為ALTALT鍵鍵, ,命令的亮字符為快捷方式。源程命令的亮字符為快捷方式。源程序以自己命名的文件名以序以自己命名的文件名以.ASM.ASM文件存

3、于自己的匯編目錄下。文件存于自己的匯編目錄下。3 3、檢查、檢查MASMMASM、LINKLINK、和、和DEBUGDEBUG程序的好壞。以程序的好壞。以CTRL-CCTRL-C或或Q Q(DEBUGDEBUG)退出。退出。會話方式C MASMCopyright (C) Microsoft Corp 202X-202X, 202X, All rights reservedSourcefilename .ASM: AObjectfilename A.OBJ:Sourcelisting NUL.LET:Cross-reference NUL.CRF:51724 + 452724 Bytes sym

4、bol space free0Warning Errors 0Severe Errors4 4、匯編源程序。、匯編源程序。DOSDOS下鍵入下鍵入MASM XXMASM XX;回車。;回車。注:注:XXXX為自己命名的要匯編的源程序名。為自己命名的要匯編的源程序名。.ASM.ASM后綴可以不加,分號不能后綴可以不加,分號不能少。少。有錯誤有錯誤,看,看MASMMASM提示的錯誤行號和錯誤性質。并用重新修改。提示的錯誤行號和錯誤性質。并用重新修改。正確時正確時,產生同名的,產生同名的.OBJ.OBJ文件(目標文件)文件(目標文件)一般上機過程一般上機過程5連接目標程序。連接目標程序。DOS下鍵入

5、下鍵入LINK XX;回車。;回車。注:注:XX為自己剛才得到的目標文件名。為自己剛才得到的目標文件名。.OBJ后綴可以不加,分號不能后綴可以不加,分號不能少。少。 正確時正確時,產生同名的,產生同名的.EXE文件。文件。6對于無法在顯示器上看到結果的程序,在對于無法在顯示器上看到結果的程序,在DEBUG下執行程序并下執行程序并查看結果。查看結果。 方法方法:DOS下下DEBUG 文件名文件名.EXE 回車,回車, 出現出現- DEBUG命令提示符。命令提示符。一般上機過程一般上機過程DEBUG下-Nname.exe-L 將文件從DOS調入DEBUG-U 得到本程序的機器程序代碼和反匯編指令得

6、到本程序的機器程序代碼和反匯編指令-R 查看執行程序前的寄存器現場和將要執行的指令查看執行程序前的寄存器現場和將要執行的指令-T 單步執行一條指令,查看指令前后的現場變化,了解指令的功能單步執行一條指令,查看指令前后的現場變化,了解指令的功能-D ds:0 可查看執行程序前后的存儲器現場可查看執行程序前后的存儲器現場-Q 退出退出DEBUG 算術運算符包括、算術運算符包括、* *、/ /、MOD(MOD(取模取模) ),它們與整型常量相結,它們與整型常量相結合,構成算術表達式,其結果為整數。合,構成算術表達式,其結果為整數。4.4.1 算術運算符算術運算符EXAMPLE:EXAMPLE:;在偏

7、移地址;在偏移地址=100=100H處放處放X;變量;變量X的偏移地址為的偏移地址為100100H;變量;變量Y的偏移地址為的偏移地址為101101H;MEM1=100H+5=105H;MEM2=102H-5=0FDH;CONST=101H-100H=1 ORG ORG 表達式表達式$ $ 位置計數器的現行值位置計數器的現行值第四節第四節 匯編語句中的運算符匯編語句中的運算符 4.4.1 算術運算符算術運算符運算符運算符運算格式運算格式運算功能運算功能+ + +表達式表達式正數(單項運算符)正數(單項運算符)- - -表達式表達式負數(單項運算符)負數(單項運算符)+ +表達式表達式1 +1

8、+表達式表達式2 2加法加法- -表達式表達式1 -1 -表達式表達式2 2減法減法* *表達式表達式1 1 * *表達式表達式2 2乘法乘法/ /表達式表達式1 /1 /表達式表達式2 2除法(取商)除法(取商)MODMOD表達式表達式1 MOD1 MOD表達式表達式2 2模除(取余數)模除(取余數)SHRSHR表達式表達式1 SHR1 SHR次數次數右移右移SHLSHL表達式表達式1 SHL1 SHL次數次數左移左移 邏輯運算符是對其操作數進行二進制位的邏輯運算,該操作數邏輯運算符是對其操作數進行二進制位的邏輯運算,該操作數必須是整數,不能是存儲器地址。必須是整數,不能是存儲器地址。 邏輯

9、運算符有邏輯運算符有NOT(邏輯非邏輯非)、AND(邏輯與邏輯與)、OR(邏輯或邏輯或)、XOR(邏輯異或邏輯異或)。 這里所述的邏輯運算與邏輯運算指令不同,邏輯運算指令是在執這里所述的邏輯運算與邏輯運算指令不同,邏輯運算指令是在執行程序時完成邏輯運算的,而匯編邏輯運算是在源程序匯編時完成行程序時完成邏輯運算的,而匯編邏輯運算是在源程序匯編時完成的。的。 4.4.2 邏輯運算符邏輯運算符 運算符運算符運算格式運算格式運算功能運算功能NOTNOTNOTNOT表達式表達式邏輯非邏輯非ANDAND表達式表達式1AND1AND表達式表達式2 2邏輯與邏輯與OROR表達式表達式1OR1OR表達式表達式2

10、 2邏輯或邏輯或XORXOR表達式表達式1XOR1XOR表達式表達式2 2邏輯異或邏輯異或4.4.2 邏輯運算符邏輯運算符4.4.2 邏輯運算符邏輯運算符;將;將0FF0FHAX0FF0FHAX;將;將0A5HAL0A5HAL;ALAL的內容的內容(0A5H)(0A5H)與表達式與表達式55H AND 0F0H55H AND 0F0H的結果的結果(50H)(50H)進行進行“與與”運算,其結果運算,其結果(00H)AL(00H)ALEXAMPLE:EXAMPLE: 關系運算符對兩個操作數進行比較操作,若關系成立則返回真值關系運算符對兩個操作數進行比較操作,若關系成立則返回真值“-1”-1”,即

11、即0FFFFH0FFFFH,否則返回假值,否則返回假值“0”0”。 關系運算符有關系運算符有EQ(EQ(相等相等) )、NE(NE(不相等不相等) )、LT(LT(小于小于) )、LE(LE(小于等于小于等于) )、GT(GT(大大于于) )、GE(GE(大于等于大于等于) )。 4.4.3 關系運算符關系運算符EXAMPLE:EXAMPLE:COUNT EQU 32MOV AX,COUNT LT 50 MOV AX,COUNT LT 20 MOV AX,4 EQ 3 ;0 AXMOV AX,4 NE 3 ;-1 AX;變量COUNT=32 被匯編為MOV AX,0,表示第二個操作數值為假 被

12、匯編為MOV AX,0FFFFH ,表示第二個操作數值為真。 4.4.3 關系運算符關系運算符運算符運算符運算格式運算格式運算功能運算功能EQEQ表達式表達式1 EQ 1 EQ 表達式表達式2 2兩個表達式相等為真兩個表達式相等為真NENE表達式表達式1 NE 1 NE 表達式表達式2 2兩個表達式不相等為真兩個表達式不相等為真LTLT表達式表達式1 LT 1 LT 表達式表達式2 2表達式表達式1 1表達式表達式2 2為真為真LELE表達式表達式1 LE 1 LE 表達式表達式2 2表達式表達式1 1表達式表達式2 2為真為真GTGT表達式表達式1 GT 1 GT 表達式表達式2 2表達式表

13、達式1 1表達式表達式2 2為真為真GEGE表達式表達式1 GE 1 GE 表達式表達式2 2表達式表達式1 1表達式表達式2 2為真為真數值返回運算符用于回送其操作數在程序中的信息,如段值、偏移值等。數值返回運算符用于回送其操作數在程序中的信息,如段值、偏移值等。4.4.4 數值返回運算符數值返回運算符運算符運算符運算格式運算格式運算功能運算功能SEGSEG SEG SEG 變量或標號變量或標號 回送變量或標號的段地址回送變量或標號的段地址 OFFSETOFFSET OFFSET OFFSET 變量或標號變量或標號 回送變量或標號的偏移地址回送變量或標號的偏移地址 LENGTH LENGTH

14、 LENGTH LENGTH 變量變量 回送變量中的元素個數(外層回送變量中的元素個數(外層DUPDUP的次數),無的次數),無DUPDUP為為1 1 TYPE TYPE TYPE TYPE 變量或標號變量或標號 回送變量或標號數據類型值對變回送變量或標號數據類型值對變量則回送變量一個元素所占字節量則回送變量一個元素所占字節數數. .若是標號若是標號, ,則對則對NEARNEAR型型回送回送-1(FFFFH),FAR-1(FFFFH),FAR型回送型回送-2-2SIZE SIZE SIZE SIZE 變量變量 回送變量所占的字節總數,即回送變量所占的字節總數,即LENGTHLENGTH與與TY

15、PETYPE的乘積的乘積 4.4.4 數值返回運算符數值返回運算符EXAMPLE:EXAMPLE: X DB ? AGIN:MOV AX,SEG X MOV BX,OFFSET X MOV DX,SEG AGIN MOV SI,OFFSET AGIN MOV CH,LENGTH X ;1 CH CH MOV CL,SIZE X ;1 CLCL ;定義變量;定義變量X X為一個字節為一個字節 ;取變量;取變量X X的段地址的段地址AXAX ;取變量;取變量X X的偏移地址的偏移地址BXBX ;取標號;取標號AGINAGIN的段地址的段地址DXDX;取標號;取標號AGINAGIN的偏移地址的偏移地

16、址SISI屬性運算符用來指定或修改相應操作數的類型。屬性運算符用來指定或修改相應操作數的類型。 4.4.5 屬性運算符屬性運算符運算符運算符運算格式運算格式運算功能運算功能PTRPTR 類型類型 PTR PTR 表達式表達式 重新設置表達式的類型重新設置表達式的類型: 段前綴段前綴: :表達式表達式 強制匯編程序按段前綴指定的段強制匯編程序按段前綴指定的段來計算變量或標號的偏移地址來計算變量或標號的偏移地址 THISTHISTHIS THIS 類型類型指定一個名字的類型指定一個名字的類型, ,和和EQUEQU一一起使用起使用PTR 操作符允許對已定義了的變量或標號以不同類型進行存取。操作符允許

17、對已定義了的變量或標號以不同類型進行存取。DATA1 SEGMENTBUF DW 100 DUP (?)VALUE EQU 0ABCDHX_BYTE EQU THIS BYTEX_WORD DW 3412H.DATA1 ENDSCODE1 SEGMENT CODE.MOV BX, BUF ;從字變量;從字變量BUF中取一個字中取一個字BXMOV AL, BYTE PTR BUF ;從字變量;從字變量BUF中取一個字節中取一個字節ALMOV SI, OFFSET BUF ;BUF的偏移地址的偏移地址SIMOV AH, BYTE PTR SI+2 ;從字存儲器中取一個字節;從字存儲器中取一個字節A

18、HJMP FAR PTR NEXT ;轉到另一代碼段中標號;轉到另一代碼段中標號NEXT處處.CODE1 ENDSCODE2 SEGMENT NEXT: MOV AH, HIGH VALUE MOV AL, LOW VALUE .CODE2 ENDS4.4.5 屬性運算符屬性運算符4.4.6 4.4.6 字分離運算符字分離運算符 運算符運算符HIGHHIGH和和LOWLOW是分離運算對象的高字節和低字節部分。是分離運算對象的高字節和低字節部分。這兩種運算符的使用格式是:這兩種運算符的使用格式是: HIGH HIGH 表達式表達式 LOW LOW 表達式表達式表達式必須表達式必須具有常量值具有常量值HIGHHIGH和和LOWLOW運算符不能對存儲器操作數或寄存器內容進行分離運算符不能對存儲器操作數或寄存器內容進行分離 4.4.6 字分離運算符字分離運算符運算符運算符運算格式運算格式運算功能運算功能HIGHHIGH HIGH HIGH 表達式表達式 取一個取一個1616位常數表達式的高位位常數表達式的高位字節字節/ /低位字節低位字節 LOWLOW LOW LOW 表達式表達式 取一個取一個1616位常數表達式的低位字位常數表達式的低位字節節/ /低位字低位字 對字

溫馨提示

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

評論

0/150

提交評論