




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
7.1匯編語(yǔ)言的基本概念:機(jī)器語(yǔ)言,高級(jí)語(yǔ)言,匯編語(yǔ)言,匯編語(yǔ)言源程序,匯編,匯編程序7.2匯編語(yǔ)言源程序的格式:分段結(jié)構(gòu)(匯編語(yǔ)言源程序由若干段組成,每個(gè)段以SEGMENT語(yǔ)句開始,以ENDS語(yǔ)句結(jié)束。整個(gè)源程序的結(jié)尾是END語(yǔ)句);語(yǔ)句分類:指令/偽指令語(yǔ)句;語(yǔ)句的格式:[名字]助記符[操作數(shù)][;注釋]LOOP1:MOVAL,DATA2[SI]DATA1DB0F8H,60H可以作為操作數(shù)的有常數(shù)、寄存器、標(biāo)號(hào)、變量和表達(dá)式:01011101B,0F2H,‘ABCDEFG’;標(biāo)號(hào)代表一條指令的符號(hào)地址,因此可以作為轉(zhuǎn)移(無(wú)條件轉(zhuǎn)移或條件轉(zhuǎn)移)、過程調(diào)用CALL以及循環(huán)控制LOOP指令的操作數(shù);變量的類型屬性有DB、DW、DD。MOVAX,DATA;表達(dá)式:算術(shù)運(yùn)算符(+,?,*,/、MOD、SHL、SHR):32MOD5,邏輯運(yùn)算符:AND,OR,XOR和NOT,24HAND0FH;關(guān)系運(yùn)算符:EQ,NE,LT,GT,LE,GE等,MOVAX,4EQ3,當(dāng)關(guān)系不成立(假)時(shí),結(jié)果為0(全0);當(dāng)關(guān)系成立(真)時(shí),結(jié)果為0FFFFH(全1);分析運(yùn)算符:SEG、OFFSET、TYPE、LENGTH和SIZE,MOVAX,SEGARRAY,MOVDI,OFFSETDATA1,LENGTH運(yùn)算符可得到這個(gè)變量的個(gè)數(shù)。如果未用DUP說明,則得到的結(jié)果總是1。類型BYTEWORDDWORDQWORDTBYTENEARFARType值124810-1-2SIZE=LENGTH*TYPE7.3偽指令語(yǔ)句1、偽指令與指令語(yǔ)句的區(qū)別:指令是給CPU的命令,偽指令是給匯編程序的命令;匯編以后,每條指令產(chǎn)生一一對(duì)應(yīng)的目標(biāo)代碼;而偽指令則不產(chǎn)生與之相應(yīng)的目標(biāo)代碼。2、數(shù)據(jù)定義偽指令(DB,DW,DD)定義一個(gè)變量的類型,給變量賦初值,或者僅僅給變量分配存儲(chǔ)單元,而不賦予特定的值。
DATADB101,0F0H;存入65H,F(xiàn)0H EXPRDB2*8+7;存入17H STRDB‘Hello!';存入6個(gè)字符的ASCII碼值
ABDB'AB';存入41H,42H BADW'AB';存入42H,41H BUFFERDB 10DUP(?) ZERODW 30DUP(0) MASKDB 5DUP('OK!') ARRAYDB 100DUP(3DUP(8),6)3、符號(hào)定義偽指令*(EQU)給一個(gè)符號(hào)重新命名,或定義新的類型屬性等。
X1EQU0DHCOUNT=COUNT?104、段定義偽指令(SEGMENT/ENDS,ASSUME):ASSUME偽指令定義符應(yīng)該放在可執(zhí)行程序開始位置的前面。將某一個(gè)段寄存器設(shè)置為存放某一個(gè)邏輯段的段地址,并沒有給段寄存器賦予實(shí)際的初值。5、過程定義偽指令(過程名PROC,過程名ENDP)DATASSEGMENT
DATA1DB0F8H,60H,50DATA2DW5678HDA1DB2*8+7VARDW?X1DB'AB'X2DW'AB'X3DD'AB'ARRAYDD10DUP(?)STRDB‘ATEST‘LEQUSTR-DA1DATASENDSSTACKSSEGMENTSTACKSENDSCODESSEGMENT
ASSUMECS:CODES,DS:DATAS,SS:STACKSSTART:MOVAX,DATASMOVDS,AX;此處計(jì)算相關(guān)內(nèi)容
MOVAL,LMOVAX,TYPEVARMOVBX,TYPEARRAYMOVCX,TYPESTRMOVDX,LENGTHARRAYMOVSI,SIZEARRAY
MOVAH,4CHINT21HCODESENDSENDSTART0F8H60H32H=5078H56H17H?41H42H42H41H42H41H00H00H?……?41H空格ASCIIT-ASCII33HDATA1DATA2?VARDA1X1X2X3ARRAY……STR10*4=40BYTE6BYTE字符4將下列詞匯和說明關(guān)聯(lián)起來(lái):(1)CPU;(2)EU;(3)BIU;(4)IP;(5)SP;(6)存儲(chǔ)器;(7)堆棧;(8)指令;(9)狀態(tài)標(biāo)志;(10)控制標(biāo)志;(11)段寄存器;(12)物理地址;(13)匯編語(yǔ)言;(14)機(jī)器語(yǔ)言;(15)匯編程序;(16)連接程序;(17)目標(biāo)碼;(18)偽指令A(yù).保存當(dāng)前棧頂?shù)刂返募拇嫫?;B.指示下一條要執(zhí)行指令的地址;C.總線接口部件,實(shí)現(xiàn)執(zhí)行部件所需要的所有總線操作;D.分析并控制指令執(zhí)行的部件;E.存儲(chǔ)程序、數(shù)據(jù)等信息的記憶裝置,
PC機(jī)有RAM和ROM兩種;F.以后進(jìn)先出方式工作的存儲(chǔ)器空間;G.把匯編語(yǔ)言程序翻譯成機(jī)器語(yǔ)言程序的系統(tǒng)程序;H.惟一代表存儲(chǔ)器空間中的每個(gè)字節(jié)單元的地址;I.能被計(jì)算機(jī)直接識(shí)別的語(yǔ)言;J.用指令的助記符、符號(hào)地址、標(biāo)號(hào)等符號(hào)書寫程序的語(yǔ) 言;K.把若干個(gè)模塊連接起來(lái)成為可執(zhí)行文件的系統(tǒng)程序;L.保存各邏輯段的起始地址的寄存器;M.控制操作的標(biāo)志,PC機(jī)有三位:DF、IF、TF;N.記錄指令操作結(jié)果的標(biāo)志,
PC機(jī)有六位:OF、SF、ZF、AF、PF、CF;O.執(zhí)行部件,由算術(shù)邏輯單元(ALU)和寄存器組等組成;P.由匯編程序在匯編過程中執(zhí)行的指令;Q.告訴CPU要執(zhí)行的操作,在程序運(yùn)行時(shí)執(zhí)行;R.機(jī)器語(yǔ)言代碼。練習(xí)題5(1)CPU;(2)EU;(3)BIU;(4)IP;(5)SP;(6)存儲(chǔ)器;(7)堆棧;(8)指令;(9)狀態(tài)標(biāo)志;(10)控制標(biāo)志;(11)段寄存器;(12)物理地址;(13)匯編語(yǔ)言;(14)機(jī)器語(yǔ)言;(15)匯編程序;(16)連接程序;(17)目標(biāo)碼;(18)偽指令A(yù).保存當(dāng)前棧頂?shù)刂返募拇嫫?;B.指示下一條要執(zhí)行指令的地址;C.總線接口部件,實(shí)現(xiàn)執(zhí)行部件所需要的所有總線操作;D.分析并控制指令執(zhí)行的部件;E.存儲(chǔ)程序、數(shù)據(jù)等信息的記憶裝置,
PC機(jī)有RAM和ROM兩種;F.以后進(jìn)先出方式工作的存儲(chǔ)器空間;G.把匯編語(yǔ)言程序翻譯成機(jī)器語(yǔ)言程序的系統(tǒng)程序;H.惟一代表存儲(chǔ)器空間中的每個(gè)字節(jié)單元的地址;I.能被計(jì)算機(jī)直接識(shí)別的語(yǔ)言;J.用指令的助記符、符號(hào)地址、標(biāo)號(hào)等符號(hào)書寫程序的語(yǔ) 言;K.把若干個(gè)模塊連接起來(lái)成為可執(zhí)行文件的系統(tǒng)程序;L.保存各邏輯段的起始地址的寄存器;M.控制操作的標(biāo)志,PC機(jī)有三位:DF、IF、TF;N.記錄指令操作結(jié)果的標(biāo)志,
PC機(jī)有六位:OF、SF、ZF、AF、PF、CF;O.執(zhí)行部件,由算術(shù)邏輯單元(ALU)和寄存器組等組成;P.由匯編程序在匯編過程中執(zhí)行的指令;Q.告訴CPU要執(zhí)行的操作,在程序運(yùn)行時(shí)執(zhí)行;R.機(jī)器語(yǔ)言代碼。指令系統(tǒng)及匯編語(yǔ)言練習(xí)題1、分別指出下列指令中的源操作數(shù)和目的操作數(shù)的尋址方式1)MOVSI,2002)MOVCX,DATA[SI]3)ADDAX,[BX][DI]4)ANDAX,BX5)MOV[SI],AX6)PUSHF7)XLAT1)源:立即尋址;目:寄存器尋址。2)源:變址尋址/寄存器相對(duì)尋址;目:寄存器尋址。3)源:基址變址尋址;目:寄存器尋址。4)源:目:寄存器尋址。5)源:寄存器尋址;目:寄存器間接尋址。6)源:寄存器尋址;目:直接尋址。7)源:基址變址尋址;目的:寄存器尋址2、試述指令的區(qū)別1)MOVAX,2010H2)MOVAX,DS:[2010H]1)把2010H→AX中2)把數(shù)據(jù)段的2010H及2011H兩個(gè)相鄰單元地址中的一個(gè)字的內(nèi)容→AX中
3、寫出以下指令中內(nèi)存操作數(shù)的所在地址。1)MOVAL,[BX+5]2)MOV[BP+5],AX3)INCBYTEPTR[SI+3]4)MOVDL,ES:[BX+DI]5)MOVBX,[BX+SI+2]4、判斷下列指令書寫是否正確。1)MOVAL,BX2)MOVAL,CL3)INC[BX]4)MOV5,AL5)MOV[BX],[SI]6)MOVBL,F5H7)MOVCS,AX8)MOVIP,[BX+1230H]9)MOVSS,DS10)MOV[DI],[BX]11)SUBARRAY[DI],[BX]12)MOVDS,1230H13)INC36H(1)(DS)*10H+(BX)+5(2)(SS)*10H+(BP)+5(3)(DS)*10H+(SI)+3(4)(ES)*10H+(BX)+(DI)(5)(DS)*10H+(BX)+(SI)+214)PUSHAL15)PUSHCS16)PUSH4567H17)POPCS18)XCHG[2530],[CX]19)XCHGIP,AX20)XCHGDS,AX21)INBL,65H22)OUTBX,AX23)OUT2345H,AX24)LEAAX,BX25)LEADS,[BP][DI]26)ADD[BX+DI],DSXXXXXXXXXXXXXXXXXXXXXXLEA指令中的目的操作數(shù)必須是一個(gè)16位通用寄存器,源操作數(shù)必須是一個(gè)存儲(chǔ)器操作數(shù);段寄存器不能參加、減、乘、除運(yùn)算。5、設(shè)堆棧指針SP的初值為2000H,AX=3000H,BX=5000H,試問:1)執(zhí)行指令PUSHAX后SP=?2)執(zhí)行PUSHBX及POPAX后SP=?AX=?BX=?6、要想完成把[2000H]送[1000H]中,用指令:MOV[1000H],[2000H]是否正確?如果不正確,應(yīng)用什么方法?7、假如想從100中減去AL中的內(nèi)容,用SUB100,AL是否正確?如果不正確,應(yīng)用什么方法?1)SP=1FFEH;2)SP=1FFEH,AX=5000H,BX=5000HMOVAX,[2000H]MOV[1000H],AX
MOVAX,[2000H]MOVBX,[1000H]MOVBX,AXNEGALADDAL,1008、用兩種方法寫出從88H端口讀入信息的指令。再用兩種方法寫出從42H口輸出100H的指令。9、假如AL=20H,BL=10H,當(dāng)執(zhí)行CMPAL,BL后,問:(1)AL,BL中內(nèi)容是兩個(gè)無(wú)符號(hào)數(shù),比較結(jié)果如何?影響哪幾個(gè)標(biāo)志位?(2)AL、BL中內(nèi)容是兩個(gè)有符號(hào)數(shù),結(jié)果又如何,影響哪幾個(gè)標(biāo)志位?1)MOVAL,100HOUT42H,AL2)MOVDX,0042HINAL,100HOUTDX,AL1)INAL,88H2)MOVDX,0088HINAL,DX比較指令的執(zhí)行結(jié)果影響狀態(tài)標(biāo)志位,常常與條件轉(zhuǎn)移指令結(jié)合起來(lái)使用,完成各種條件判斷和相應(yīng)的程序轉(zhuǎn)移。例如:1)若兩個(gè)被比較的內(nèi)容相等,則(ZF)=1;2)當(dāng)無(wú)符號(hào)數(shù)的較小數(shù)減較大數(shù)時(shí),因不夠減而產(chǎn)生借位,此時(shí)進(jìn)位標(biāo)志CF置1;3)當(dāng)帶符號(hào)數(shù)的較小數(shù)減較大數(shù)時(shí),將得到負(fù)的結(jié)果,則符號(hào)標(biāo)志SF置1;4)帶符號(hào)數(shù)相減如果結(jié)果溢出,則OF置1。1)AL>BL,CF=0,ZF=02)AL>BL,SF=0,OF=010、讀下面程序段,請(qǐng)問:在什么情況下,本段程序的執(zhí)行結(jié)果是AH=0?BEGIN:INAL,5FHTESTAL,80HJZBRCH1MOVAH,0JMPSTOPBRCH1:MOVAH,0FFHSTOP:HLTAL中的最高位為1時(shí)AH=0。
(2)測(cè)試指令TEST(TESTornon-destructivelogicalAND)TESTdst,src;(dst)∧(src)TEST指令的操作實(shí)質(zhì)上與AND指令相同,即把目的操作數(shù)和源操作數(shù)進(jìn)行邏輯“與”運(yùn)算。二者的區(qū)別在于TEST指令不把邏輯運(yùn)算的結(jié)果送回目的操作數(shù),只將結(jié)果反映在狀態(tài)標(biāo)志位上。例如,“與”的結(jié)果最高位是“0”還是“1”,結(jié)果是否為全“0”,結(jié)果中“1”的個(gè)數(shù)是奇數(shù)還是偶數(shù)等,分別由SF、ZF和PF狀態(tài)標(biāo)志位體現(xiàn)。和AND指令一樣,TEST指令總是將CF和OF清零,但使AF的值不確定。例如:TESTTESTBH,7SI,BP;寄存器''與''立即數(shù)(結(jié)果不回送,下同);寄存器''與''寄存器TEST[SI],CH;存儲(chǔ)器''與''寄存器TEST[BX][DI],BYTEPTR6AH;存儲(chǔ)器''與''立即數(shù)2.48086/8088指令系統(tǒng)TEST指令常常用于位測(cè)試,它與條件轉(zhuǎn)移指令一起,共同完成對(duì)特定位狀態(tài)的判斷,并實(shí)現(xiàn)相應(yīng)的程序轉(zhuǎn)移。這樣的作用與比較指令CMP有些類似,不過TEST指令只比較某一個(gè)指定的位,而CMP指令比較整個(gè)操作數(shù)(字節(jié)或字)。例如以下幾條指令判斷一個(gè)端口地址為PORT的外設(shè)端口輸入的數(shù)據(jù),若輸入數(shù)據(jù)的第1、3、5位中的任一位不等于零,則轉(zhuǎn)移到NEXT。INAL,PORTTESTAL,00101010BJNZNEXT;從端口PORT輸入數(shù)據(jù);測(cè)試第1、3、5位;任一位不為0,則轉(zhuǎn)移NEXT:…
2.48086/8088指令系統(tǒng)11、讀程序,假設(shè)20H端口內(nèi)容是06H,30H端口內(nèi)容是05HSTART:INAL,20HMOVBL,ALINAL,30HMOVCL,ALMOVAX,0ADLOP:ADDAL,BLADCAH,0DECCLJNZADLOPHLT請(qǐng)問:(1)本程序?qū)崿F(xiàn)什么功能?(2)結(jié)果在哪里?完成06H*05H,結(jié)果在AX中,AX=001EH。12、請(qǐng)編一段程序完成AX*10
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年?duì)I銷策劃師試題及答案
- 2025年高考語(yǔ)文備考之名著閱讀《紅樓夢(mèng)》第十五回章回解讀及相關(guān)練習(xí)(含答案)
- 2025年電信轉(zhuǎn)正面試題及答案
- 2025年化工面試題及答案圖
- 2025年反三違考試試題及答案
- 2025年天津中電工考試題及答案
- 2025年市場(chǎng)管理與營(yíng)銷試題及答案
- 2025年哲學(xué)問答題試題及答案
- 2025年外科學(xué)規(guī)培試題及答案
- 2025年城市規(guī)劃師試題及答案
- 2019版外研社高中英語(yǔ)必選擇性必修一單詞表
- 常用電工儀器儀表使用方法
- 海南大學(xué)本科教育學(xué)分制條例
- 建設(shè)工程綠色施工圍蔽指導(dǎo)圖集
- 2022新教科版六年級(jí)科學(xué)下冊(cè)全一冊(cè)全部教案(共28節(jié))
- 單元綜合訓(xùn)練
- 中級(jí)Java軟件開發(fā)工程師筆試題(附答案)
- 高一物理必修一加速度(課堂PPT)
- 難免壓瘡申報(bào)表
- 端蓋壓鑄模具設(shè)計(jì)畢業(yè)設(shè)計(jì)論文
- 最新部編版一年級(jí)語(yǔ)文下冊(cè)第一單元教材分析
評(píng)論
0/150
提交評(píng)論