匯編語(yǔ)言的所有指令_第1頁(yè)
匯編語(yǔ)言的所有指令_第2頁(yè)
匯編語(yǔ)言的所有指令_第3頁(yè)
匯編語(yǔ)言的所有指令_第4頁(yè)
匯編語(yǔ)言的所有指令_第5頁(yè)
已閱讀5頁(yè),還剩11頁(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)介

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

溫馨提示

  • 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)論