匯編語言的所有指令_第1頁
匯編語言的所有指令_第2頁
匯編語言的所有指令_第3頁
匯編語言的所有指令_第4頁
匯編語言的所有指令_第5頁
已閱讀5頁,還剩11頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

匯編語言的所有指令數(shù)據(jù)傳送指令集MOV功能:把源操作數(shù)送給目的操作數(shù)語法:MOV目的操作數(shù),源操作數(shù)格式:MOVr1,r2MOVr,mMOVm,rMOVr,dataXCHG功能:交換兩個操作數(shù)的數(shù)據(jù)語法:XCHG格式:XCHGr1,r2XCHGm,rXCHGr,mPUSH,POP功能:把操作數(shù)壓入或取出堆棧語法:PUSH操作數(shù)POP操作數(shù)格式:PUSHrPUSHMPUSHdataPOPrPOPmPUSHF,POPF,PUSHA,POPA功能:堆棧指令群格式:PUSHFPOPFPUSHAPOPALEA,LDS,LES功能:取地址至寄存器語法:LEAr,mLDSr,mLESr,mXLAT(XLATB)功能:查表指令語法:XLATXLATm算數(shù)運算指令A(yù)DD,ADC功能:加法指令語法:ADDOP1,OP2ADCOP1,OP2格式:ADDr1,r2ADDr,mADDm,rADDr,data影響標(biāo)志:C,P,A,Z,S,OSUB,SBB功能:減法指令語法:SUBOP1,OP2SBBOP1,OP2格式:SUBr1,r2SUBr,mSUBm,rSUBr,dataSUBm,data影響標(biāo)志:C,P,A,Z,S,OINC,DEC功能:把OP的值加一或減一語法:INCOPDECOP格式:INCr/mDECr/m影響標(biāo)志:P,A,Z,S,ONEG功能:將OP的符號反相(取二進(jìn)制補碼)語法:NEGOP格式:NEGr/m影響標(biāo)志:C,P,A,Z,S,OMUL,IMUL功能:乘法指令語法:MULOPIMULOP格式:MULr/mIMULr/m影響標(biāo)志:C,P,A,Z,S,O(僅IMUL會影響S標(biāo)志)DIV,IDIV功能:除法指令語法:DIVOPIDIVOP格式:DIVr/mIDIVr/mCBW,CWD功能:有符號數(shù)擴展指令語法:CBWCWDAAA,AAS,AAM,AAD功能:非壓BCD碼運算調(diào)整指令語法:AAAAASAAMAAD影響標(biāo)志:A,C(AAA,AAS)S,Z,P(AAM,AAD)DAA,DAS功能:壓縮BCD碼調(diào)整指令語法:DAADAS影響標(biāo)志:C,P,A,Z,S位運算指令集AND,OR,XOR,NOT,TEST功能:執(zhí)行BIT與BIT之間的邏輯運算語法:ANDr/m,r/m/dataORr/m,r/m/dataXORr/m,r/m/dataTESTr/m,r/m/dataNOTr/m影響標(biāo)志:C,O,P,Z,S(其中C與O兩個標(biāo)志會被設(shè)為0)NOT指令不影響任何標(biāo)志位SHR,SHL,SAR,SAL功能:移位指令語法:SHRr/m,data/CLSHLr/m,data/CLSARr/m,data/CLSALr/m,data/CL影響標(biāo)志:C,P,Z,S,OROR,ROL,RCR,RCL功能:循環(huán)移位指令語法:RORr/m,data/CLROLr/m,data/CLRCRr/m,data/CLRCLr/m,data/CL影響標(biāo)志:C,P,Z,S,O程序流程控制指令集CLC,STC,CMC功能:設(shè)定進(jìn)位標(biāo)志語法:CLCSTCCMC標(biāo)志位:CCLD,STD功能:設(shè)定方向標(biāo)志語法:CLDSTD標(biāo)志位:DCLI,STI功能:設(shè)定中斷標(biāo)志語法:CLISTI標(biāo)志位:ICMP功能:比較OP1與OP2的值語法:CMPr/m,r/m/data標(biāo)志位:C,P,A,Z,OJMP功能:跳往指定地址執(zhí)行語法:JMP地址JXX功能:當(dāng)特定條件成立則跳往指定地址執(zhí)行語法:JXX地址注:A:ABOVE,當(dāng)C=0,Z=0時成立B:BELOW,當(dāng)C=1時成立C:CARRY,當(dāng)弁時成立CXZ:CX寄存器的值為O(ZERO)時成立E:EQUAL,當(dāng)Z=1時成立G:GREATER(大于),當(dāng)Z=0且S=0時成立L:LESS(小于),當(dāng)S不為零時成立N:NOT(相反條件),需和其它符號配合使用O:OVERFLOW,O=1時成立P:PARITY,P=1時成立PE:PARITYEVEN,P=1時成立PO:PARITYODD,P=O時成立S:SIGN,S=1時成立Z:ZERO,Z=1時成立LOOP功能:循環(huán)指令集語法:LOOP地址LOOPE(Z)地址LOOPNE(Z)地址標(biāo)志位:無CALL,RET功能:子程序調(diào)用,返回指令語法:CALL地址RETRETn標(biāo)志位:無INT,IRET功能:中斷調(diào)用及返回指令語法:INTnIRET標(biāo)志位:在執(zhí)行INT時,CPU會自動將標(biāo)志寄存器的值入棧,在執(zhí)行IRET時則會將堆棧中的標(biāo)志值彈回寄存器字符串操作指令集MOVSB,MOVSW,MOVSD功能:字符串傳送指令語法:MOVSBMOVSWMOVSD標(biāo)志位:無CMPSB,CMPSW,CMPSD功能:字符串比較指令語法:CMPSBCMPSWCMPSD標(biāo)志位:C,P,Z,S,OSCASB,SCASW功能:字符串搜索指令語法:SCASBSCASW標(biāo)志位:C,P,Z,S,OLODSB,LODSW,STOSB,STOSW功能:字符串載入或存貯指令語法:LODSBLODSWSTOSBSTOSW標(biāo)志位:無REP,REPE,REPNE功能:重復(fù)前綴指令集語法:REP指令SREPE指令SREPNE指令S標(biāo)志位:依指令S而定對于IBMPC機它有它的指令系統(tǒng),其中包括:數(shù)據(jù)傳送指令、串處理指令、算術(shù)指令、控制移動指令、邏輯指令、處理機控制指令。這里將簡單介紹其指令類型及指令說明,如有要求給具體的指令格式及應(yīng)用,請與amay聯(lián)系,amay加以更新。1) 數(shù)據(jù)傳送指令:負(fù)責(zé)把數(shù)據(jù)、地址或立即數(shù)傳送到寄存器或存儲單元中。數(shù)據(jù)傳送指令類型指令說明通用數(shù)據(jù)傳送指令MOV(傳送)、PUSH(進(jìn)棧)、POP(出棧)、XCHG(交換)累加器專用傳送指令I(lǐng)N(輸入指令)、OUT(輸入指令)地址傳送指令LEA(有效地址送寄存器)、LDS(指針?biāo)图拇嫫骱虳S)、LES(指針?biāo)图拇嫫骱虴S)標(biāo)志寄存器傳送指令LAHF(標(biāo)志送AH)、SAHF(AH送標(biāo)志寄存器)、PUSHF(標(biāo)志進(jìn)棧)、POPF(標(biāo)志出棧)2) 算術(shù)指令:用來執(zhí)行算術(shù)運算。算術(shù)指令類型指令說明加法指令A(yù)DD(加法)、ADC(帶進(jìn)位加法)、INC(加1)減法指令SUB(減法)、SBB(帶借位減法)、DEC(減1)、NEG(求補)、CMP(比較)乘法指令MUL(無符號數(shù)乘法)、IMUL(帶符號數(shù)乘法)除法指令DIV(無符號數(shù)除法)、IDIV(帶符號數(shù)除法)、CBW(字節(jié)轉(zhuǎn)換為字)、CWD(字轉(zhuǎn)換為雙字)3) 邏輯指令:對字或字節(jié)執(zhí)行邏輯運算。邏輯指令類型指令說明邏輯運算指令A(yù)ND(邏輯與)、OR(邏輯或)、NOT(邏輯非)、XOR(異或)、TEST(測試)移動指令SHL(邏輯左移)、SAL(算術(shù)左移)、SHR(邏輯右移)、SAR(算術(shù)右移)、ROL(循環(huán)左移)、ROR(循環(huán)右移)、RCL(帶進(jìn)位循環(huán)左移)、RCR(帶進(jìn)位右移)4)串處理指令:處理存放存儲器里的數(shù)據(jù)串。串處理指令類型指令說明指令MOVS(串傳送)、CMPS(串比較)、SCAS(串掃描)、LODS(從串?。?、STOS(存入串)5) 控制轉(zhuǎn)移指令:用來控制程序的執(zhí)行流程。控制轉(zhuǎn)移指令類型指令說明無條件轉(zhuǎn)移指令JMP(段間和段內(nèi)轉(zhuǎn)移)條件轉(zhuǎn)移指令JZ(結(jié)果為0(或相等)則轉(zhuǎn)移)、JS(結(jié)果為負(fù)則轉(zhuǎn)移)、JNS(結(jié)果為正則轉(zhuǎn)移)、JO(溢出則轉(zhuǎn)移)、JNO(不溢出則轉(zhuǎn)移)、JP(奇偶位為1則轉(zhuǎn)移)、JNP(奇偶位為0則轉(zhuǎn)移)循環(huán)指令LOOP(循環(huán)指令)、LOOPPZ/LOOPE(當(dāng)為0或相等時循環(huán)指令)、LOOPNZ/LOOPNE(當(dāng)不為0或不相等時循環(huán)指令)子程序指令CALL(調(diào)用指令)、RET(返回指令)中斷指令I(lǐng)NT(中斷)、INTO(如溢出則中斷)、RIET(從中斷返回)6) 處理機控制指令:處理機控制指令類型指令說明標(biāo)志處理指令CLC(進(jìn)位位置0指令)、CMC(進(jìn)位位求反指令)、STC(進(jìn)位位置為1指令)、CLD(方向標(biāo)志置1指令)、STD(方向標(biāo)志位置1指令)、CLI(中斷標(biāo)志置0指令)、STI(中斷標(biāo)志置1指令)其他處理機控制指令NOP(無操作)、HLT(停機)、WAIT(等待)、ESC(換碼)、LOCK(封鎖)匯編語言程序格式匯編語言源程序用語句書寫,MASM中可利用的語句分成兩類,他們是指令性語句和偽指令語句1?指令性語句:指令性語句與機械指令相對應(yīng),匯編程序?qū)⑺g成目標(biāo)代碼(機械指令代碼)。語句格為:標(biāo)號:指令助記符操作數(shù),操作數(shù);注釋標(biāo)號表示指令語句的符號地址,標(biāo)號后面必需緊跟“:”。標(biāo)號能夠省略,他常常作為轉(zhuǎn)移指令或CALL指令的一個操作數(shù),用以表示地址的轉(zhuǎn)移。指令助記符是該語句的指令名稱的代表號碼,他指出操作的類型,匯編程序?qū)⑵浞g成機械指令。不可省略。操作數(shù)表示參加本指令的運算數(shù)據(jù),依照指令的操作類型,操作數(shù)不同,中間必需用“,”隔開。注釋指明一條指令的功能,能夠省略。2?偽指令語句偽指令語句沒有對應(yīng)的機械指令。匯編程序匯編源程序時對偽指令進(jìn)行處置,他能夠完成數(shù)據(jù)概念,存儲區(qū)分派,段概念,段分派,指示程序終止功能。偽指令語句的格式為:名字偽指令指示符操作數(shù),操作數(shù);注釋名字時給偽指令取得名稱,他用符號地址表示。偽指令中的名字一般是變量名,段名,進(jìn)程名、符號名等。偽指令指示符是匯編程序MASM規(guī)定的符號。操作數(shù)是依照偽指令的具體要求來得。3?數(shù)據(jù)項匯編語言中利用的操作數(shù),能夠是常數(shù)、寄放器、存儲器、變量、標(biāo)號活表達(dá)式,其中藏書、變量和標(biāo)號是三種大體數(shù)據(jù)項。⑴常數(shù)必需是固定的值,沒有屬性,是確信的數(shù)據(jù)。⑵變量在程序運行中是能夠修改的。所有的變量具有三種屬性①段值(SEGMENT):指明變量所在段的基址段內(nèi)偏移地址(OFFSET):指變量所在地址與段首地址之間的偏移字節(jié)數(shù)。類型(TYPE):變量的類型屬性指變量中每一個單元所包括的字節(jié)數(shù),類型有:字節(jié)變量(BYTE)、字變量(WORD)、雙字變量(DOUBLEWORD)⑶標(biāo)號:標(biāo)號是指可執(zhí)行指令語句的地址的符號表示,他可作為轉(zhuǎn)移指令和挪用指令的目標(biāo)操作數(shù),以確信程序轉(zhuǎn)換的目標(biāo)地址,他具有三個屬性。段值(SEGMENT):指明標(biāo)號所在段的基址。段內(nèi)偏移地址(OFFSET):指標(biāo)號所在地址與所在段段首地址之間的偏移字節(jié)數(shù)。類型(TYPE):標(biāo)號的類型屬性指在轉(zhuǎn)移指令中標(biāo)號可轉(zhuǎn)移的距離類型NEAR,表示近標(biāo)號只能實此刻本代碼段內(nèi)轉(zhuǎn)移或挪用;FAR,表示遠(yuǎn)標(biāo)號,可;以作為其他代碼段中的目標(biāo)地址,實現(xiàn)段間挪用或轉(zhuǎn)移。偽指令匯總1?數(shù)據(jù)概念語句格式一:變量名助記符操作數(shù),操作數(shù)…;注釋格式二:變量名助記符 nDUP(操作數(shù),操作數(shù)…);注釋功能:將操作數(shù)存入變量名指定的存儲單元中,或只分派存儲空間不存入數(shù)據(jù)。變量名,用符號表示,能夠省略。匯編程序時將此變量的助記符后的第一個字節(jié)的偏移地址作為他的符號地址。助記符要緊有:DB:用來概念字節(jié),表示每一個操作數(shù)占用一個字節(jié);DW:用來概念字,表示每一個操作數(shù)占用一個字;DD:用來概念雙字,表示每一個操作數(shù)占用兩個字;DQ:用來概念四個字,表示每一個操作數(shù)占用四個字;DT:用來概念十個字節(jié),表示每一個操作數(shù)占用十個字節(jié);在格式二中,用nDUP表示時,n必需是整數(shù),表示括號中的操作數(shù)的重復(fù)次數(shù)。DUP后面必需帶括號。2?表達(dá)式賦值語句⑴賦值語句EQU格式:符號名EQU表達(dá)式功能:用來給變量、標(biāo)號、常數(shù)、指令、表達(dá)式等概念一個符號名,程序頂用到EQU左側(cè)得變量、標(biāo)號時能夠用右邊的常數(shù)值或表達(dá)式來代替,可是一經(jīng)概念在同一個程序模塊中不能再從頭概念。⑵符號語句二符號語句與EQU語句具有相同功能,區(qū)別僅在于EQU中左側(cè)的標(biāo)號不許諾從頭概念,而用“二”概念的語句能夠從頭概念。3段概念語句存儲器的物理地址由段基址和偏移地址組合而成,任何一個邏輯段,不管是數(shù)碼段,數(shù)據(jù)段,堆棧段,附加段都必需概念。以便連接程序把不同段和模塊連成一個可執(zhí)行的程序。⑴段概念語句SEGMENT-ENDS格式:段名SEGMENT定位類型組合類型’分類名’邏輯段內(nèi)容段名ENDS功能:將一個邏輯段概念成一個整體段名,是邏輯段的標(biāo)識符,不能省略。他確信了邏輯段在存儲器中的地址。必需以SEGMENT開始,以ENDS終止,前后段名必需一致。定位類型,定位類型參數(shù)是對該段起始地址的定位。定位類型參數(shù)要緊有下面4種:PARA:指定定位段的起始地址必需在節(jié)的整數(shù)邊界,當(dāng)定位類型缺省時,就當(dāng)做PARABYTE:指定定位段的起始地址定位在存儲單元的任何字節(jié)地址。WORD:指定定位段的起始地址定位在字的邊界,即段的首地址必需是偶數(shù)。PAGE:指定定位段的起始地址定位在頁的邊界,即段的首地址必需是256的整數(shù)倍。組合類型:組合類型參數(shù)要緊提供了各個邏輯段之間的組合方式NONE:該段與其他同名段不進(jìn)行連接,各段獨立于存儲器中,NONE可作為缺省參數(shù)。PUBLIC:該段與其他模塊中的同名段連接時,由低地址到高地址連接起來,組成一個邏輯段,連接順序由連接命令指定。COMMON:該段在連接時與其他模塊中的同名段有相同的起始地址,采納覆蓋的方式在存儲器中寄存,連接長度為各分段中最大長度。AT表達(dá)式:定位該段的起始地址在表達(dá)式所指定的節(jié)(16的整數(shù)倍)邊界上。當(dāng)用戶要求某個邏輯段在指定節(jié)的邊界上時,就要用AT參數(shù)來實現(xiàn)。STACK:指定該段為堆棧段,此參數(shù)在堆棧段中不可省略MEMORY:定位該段與其他模塊中的同名段有相同的首地址,采納覆蓋的方式在存儲器中組合連接。其功能與COMMON相似,區(qū)別是第一個帶MEMORY參數(shù)的邏輯段覆蓋在其他同名段的最上層,其他帶此參數(shù)的同名段依照COMMON方式處置。⑶“分類名”(CLASSNAME)其要緊作用是匯編程序連接時將所有的分類名相同的邏輯段組成一個段組。2?

溫馨提示

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

最新文檔

評論

0/150

提交評論