微機(jī)原理及應(yīng)用課上機(jī)_第1頁(yè)
微機(jī)原理及應(yīng)用課上機(jī)_第2頁(yè)
微機(jī)原理及應(yīng)用課上機(jī)_第3頁(yè)
微機(jī)原理及應(yīng)用課上機(jī)_第4頁(yè)
微機(jī)原理及應(yīng)用課上機(jī)_第5頁(yè)
已閱讀5頁(yè),還剩18頁(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)介

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

2、IT匯編程序匯編程序MASM連接程序連接程序LINK手寫(xiě)程序手寫(xiě)程序 1、在計(jì)算機(jī)上建立自己的匯編目錄。、在計(jì)算機(jī)上建立自己的匯編目錄。 2、將、將、MASM.EXE、 拷入自己的目錄下??饺胱约旱哪夸浵隆=⑸蠙C(jī)的匯編環(huán)境建立上機(jī)的匯編環(huán)境一般上機(jī)過(guò)程一般上機(jī)過(guò)程1 1、在、在DOSDOS下,執(zhí)行文件,進(jìn)入編輯界面。下,執(zhí)行文件,進(jìn)入編輯界面。2 2、按提供的源程序輸入源程序。、按提供的源程序輸入源程序。 EDITEDIT的命令激活鍵為的命令激活鍵為ALTALT鍵鍵, ,命令的亮字符為快捷方式。源程命令的亮字符為快捷方式。源程序以自己命名的文件名以序以自己命名的文件名以.ASM.ASM文件存

3、于自己的匯編目錄下。文件存于自己的匯編目錄下。3 3、檢查、檢查MASMMASM、LINKLINK、和、和DEBUGDEBUG程序的好壞。以程序的好壞。以CTRL-CCTRL-C或或Q Q(DEBUGDEBUG)退出。退出。會(huì)話方式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;回車(chē)。;回車(chē)。注:注:XXXX為自己命名的要匯編的源程序名。為自己命名的要匯編的源程序名。.ASM.ASM后綴可以不加,分號(hào)不能后綴可以不加,分號(hào)不能少。少。有錯(cuò)誤有錯(cuò)誤,看,看MASMMASM提示的錯(cuò)誤行號(hào)和錯(cuò)誤性質(zhì)。并用重新修改。提示的錯(cuò)誤行號(hào)和錯(cuò)誤性質(zhì)。并用重新修改。正確時(shí)正確時(shí),產(chǎn)生同名的,產(chǎn)生同名的.OBJ.OBJ文件(目標(biāo)文件)文件(目標(biāo)文件)一般上機(jī)過(guò)程一般上機(jī)過(guò)程5連接目標(biāo)程序。連接目標(biāo)程序。DOS下鍵入

5、下鍵入LINK XX;回車(chē)。;回車(chē)。注:注:XX為自己剛才得到的目標(biāo)文件名。為自己剛才得到的目標(biāo)文件名。.OBJ后綴可以不加,分號(hào)不能后綴可以不加,分號(hào)不能少。少。 正確時(shí)正確時(shí),產(chǎn)生同名的,產(chǎn)生同名的.EXE文件。文件。6對(duì)于無(wú)法在顯示器上看到結(jié)果的程序,在對(duì)于無(wú)法在顯示器上看到結(jié)果的程序,在DEBUG下執(zhí)行程序并下執(zhí)行程序并查看結(jié)果。查看結(jié)果。 方法方法:DOS下下DEBUG 文件名文件名.EXE 回車(chē),回車(chē), 出現(xiàn)出現(xiàn)- DEBUG命令提示符。命令提示符。一般上機(jī)過(guò)程一般上機(jī)過(guò)程DEBUG下-Nname.exe-L 將文件從DOS調(diào)入DEBUG-U 得到本程序的機(jī)器程序代碼和反匯編指令得

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

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

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

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

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

11、即0FFFFH0FFFFH,否則返回假值,否則返回假值“0”0”。 關(guān)系運(yùn)算符有關(guān)系運(yùn)算符有EQ(EQ(相等相等) )、NE(NE(不相等不相等) )、LT(LT(小于小于) )、LE(LE(小于等于小于等于) )、GT(GT(大大于于) )、GE(GE(大于等于大于等于) )。 4.4.3 關(guān)系運(yùn)算符關(guān)系運(yùn)算符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,表示第二個(gè)操作數(shù)值為假 被

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

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

14、 LENGTH LENGTH 變量變量 回送變量中的元素個(gè)數(shù)(外層回送變量中的元素個(gè)數(shù)(外層DUPDUP的次數(shù)),無(wú)的次數(shù)),無(wú)DUPDUP為為1 1 TYPE TYPE TYPE TYPE 變量或標(biāo)號(hào)變量或標(biāo)號(hào) 回送變量或標(biāo)號(hào)數(shù)據(jù)類(lèi)型值對(duì)變回送變量或標(biāo)號(hào)數(shù)據(jù)類(lèi)型值對(duì)變量則回送變量一個(gè)元素所占字節(jié)量則回送變量一個(gè)元素所占字節(jié)數(shù)數(shù). .若是標(biāo)號(hào)若是標(biāo)號(hào), ,則對(duì)則對(duì)NEARNEAR型型回送回送-1(FFFFH),FAR-1(FFFFH),FAR型回送型回送-2-2SIZE SIZE SIZE SIZE 變量變量 回送變量所占的字節(jié)總數(shù),即回送變量所占的字節(jié)總數(shù),即LENGTHLENGTH與與TY

15、PETYPE的乘積的乘積 4.4.4 數(shù)值返回運(yùn)算符數(shù)值返回運(yùn)算符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為一個(gè)字節(jié)為一個(gè)字節(jié) ;取變量;取變量X X的段地址的段地址AXAX ;取變量;取變量X X的偏移地址的偏移地址BXBX ;取標(biāo)號(hào);取標(biāo)號(hào)AGINAGIN的段地址的段地址DXDX;取標(biāo)號(hào);取標(biāo)號(hào)AGINAGIN的偏移地址的偏移地

16、址SISI屬性運(yùn)算符用來(lái)指定或修改相應(yīng)操作數(shù)的類(lèi)型。屬性運(yùn)算符用來(lái)指定或修改相應(yīng)操作數(shù)的類(lèi)型。 4.4.5 屬性運(yùn)算符屬性運(yùn)算符運(yùn)算符運(yùn)算符運(yùn)算格式運(yùn)算格式運(yùn)算功能運(yùn)算功能PTRPTR 類(lèi)型類(lèi)型 PTR PTR 表達(dá)式表達(dá)式 重新設(shè)置表達(dá)式的類(lèi)型重新設(shè)置表達(dá)式的類(lèi)型: 段前綴段前綴: :表達(dá)式表達(dá)式 強(qiáng)制匯編程序按段前綴指定的段強(qiáng)制匯編程序按段前綴指定的段來(lái)計(jì)算變量或標(biāo)號(hào)的偏移地址來(lái)計(jì)算變量或標(biāo)號(hào)的偏移地址 THISTHISTHIS THIS 類(lèi)型類(lèi)型指定一個(gè)名字的類(lèi)型指定一個(gè)名字的類(lèi)型, ,和和EQUEQU一一起使用起使用PTR 操作符允許對(duì)已定義了的變量或標(biāo)號(hào)以不同類(lèi)型進(jìn)行存取。操作符允許

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

18、HJMP FAR PTR NEXT ;轉(zhuǎn)到另一代碼段中標(biāo)號(hào);轉(zhuǎn)到另一代碼段中標(biāo)號(hào)NEXT處處.CODE1 ENDSCODE2 SEGMENT NEXT: MOV AH, HIGH VALUE MOV AL, LOW VALUE .CODE2 ENDS4.4.5 屬性運(yùn)算符屬性運(yùn)算符4.4.6 4.4.6 字分離運(yùn)算符字分離運(yùn)算符 運(yùn)算符運(yùn)算符HIGHHIGH和和LOWLOW是分離運(yùn)算對(duì)象的高字節(jié)和低字節(jié)部分。是分離運(yùn)算對(duì)象的高字節(jié)和低字節(jié)部分。這兩種運(yùn)算符的使用格式是:這兩種運(yùn)算符的使用格式是: HIGH HIGH 表達(dá)式表達(dá)式 LOW LOW 表達(dá)式表達(dá)式表達(dá)式必須表達(dá)式必須具有常量值具有常量值HIGHHIGH和和LOWLOW運(yùn)算符不能對(duì)存儲(chǔ)器操作數(shù)或寄存器內(nèi)容進(jìn)行分離運(yùn)算符不能對(duì)存儲(chǔ)器操作數(shù)或寄存器內(nèi)容進(jìn)行分離 4.4.6 字分離運(yùn)算符字分離運(yùn)算符運(yùn)算符運(yùn)算符運(yùn)算格式運(yùn)算格式運(yùn)算功能運(yùn)算功能HIGHHIGH HIGH HIGH 表達(dá)式表達(dá)式 取一個(gè)取一個(gè)1616位常數(shù)表達(dá)式的高位位常數(shù)表達(dá)式的高位字節(jié)字節(jié)/ /低位字節(jié)低位字節(jié) LOWLOW LOW LOW 表達(dá)式表達(dá)式 取一個(gè)取一個(gè)1616位常數(shù)表達(dá)式的低位字位常數(shù)表達(dá)式的低位字節(jié)節(jié)/ /低位字低位字 對(duì)字

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論