單片機(jī)匯編語(yǔ)言指令集_第1頁(yè)
單片機(jī)匯編語(yǔ)言指令集_第2頁(yè)
單片機(jī)匯編語(yǔ)言指令集_第3頁(yè)
單片機(jī)匯編語(yǔ)言指令集_第4頁(yè)
單片機(jī)匯編語(yǔ)言指令集_第5頁(yè)
已閱讀5頁(yè),還剩6頁(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、.匯編語(yǔ)言的所有指令數(shù)據(jù)傳送指令集 MOV 功能: 把源操作數(shù)送給目的操作數(shù) 語(yǔ)法: MOV 目的操作數(shù),源操作數(shù) 格式: MOV r1,r2 MOV r,m MOV m,r MOV r,data XCHG 功能: 交換兩個(gè)操作數(shù)的數(shù)據(jù) 語(yǔ)法: XCHG 格式: XCHG r1,r2 XCHG m,r XCHG r,m PUSH,POP 功能: 把操作數(shù)壓入或取出堆棧 語(yǔ)法: PUSH 操作數(shù) POP 操作數(shù) 格式: PUSH r PUSH M PUSH data POP r POP m PUSHF,POPF,PUSHA,POPA 功能: 堆棧指令群 格式: PUSHF POPF PUSHA

2、POPA LEA,LDS,LES 功能: 取地址至寄存器 語(yǔ)法: LEA r,m LDS r,m LES r,m XLAT(XLATB) 功能: 查表指令 語(yǔ)法: XLAT XLAT m 算數(shù)運(yùn)算指令 ADD,ADC 功能: 加法指令 語(yǔ)法: ADD OP1,OP2 ADC OP1,OP2 格式: ADD r1,r2 ADD r,m ADD m,r ADD r,data 影響標(biāo)志: C,P,A,Z,S,O SUB,SBB 功能:減法指令 語(yǔ)法: SUB OP1,OP2 SBB OP1,OP2 格式: SUB r1,r2 SUB r,m SUB m,r SUB r,data SUB m,data

3、 影響標(biāo)志: C,P,A,Z,S,O INC,DEC 功能: 把OP的值加一或減一 語(yǔ)法: INC OP DEC OP 格式: INC r/m DEC r/m 影響標(biāo)志: P,A,Z,S,O NEG 功能: 將OP的符號(hào)反相(取二進(jìn)制補(bǔ)碼) 語(yǔ)法: NEG OP 格式: NEG r/m 影響標(biāo)志: C,P,A,Z,S,O MUL,IMUL 功能: 乘法指令 語(yǔ)法: MUL OP IMUL OP 格式: MUL r/m IMUL r/m 影響標(biāo)志: C,P,A,Z,S,O(僅IMUL會(huì)影響S標(biāo)志) DIV,IDIV 功能:除法指令 語(yǔ)法: DIV OP IDIV OP 格式: DIV r/m I

4、DIV r/m CBW,CWD 功能: 有符號(hào)數(shù)擴(kuò)展指令 語(yǔ)法: CBW CWD AAA,AAS,AAM,AAD 功能: 非壓BCD碼運(yùn)算調(diào)整指令 語(yǔ)法: AAA AAS AAM AAD 影響標(biāo)志: A,C(AAA,AAS) S,Z,P(AAM,AAD) DAA,DAS 功能: 壓縮BCD碼調(diào)整指令 語(yǔ)法: DAA DAS 影響標(biāo)志: C,P,A,Z,S 位運(yùn)算指令集 AND,OR,XOR,NOT,TEST 功能: 執(zhí)行BIT與BIT之間的邏輯運(yùn)算 語(yǔ)法: AND r/m,r/m/data OR r/m,r/m/data XOR r/m,r/m/data TEST r/m,r/m/data N

5、OT r/m 影響標(biāo)志: C,O,P,Z,S(其中C與O兩個(gè)標(biāo)志會(huì)被設(shè)為0) NOT指令不影響任何標(biāo)志位 SHR,SHL,SAR,SAL 功能: 移位指令 語(yǔ)法: SHR r/m,data/CL SHL r/m,data/CL SAR r/m,data/CL SAL r/m,data/CL 影響標(biāo)志: C,P,Z,S,O ROR,ROL,RCR,RCL 功能: 循環(huán)移位指令 語(yǔ)法: ROR r/m,data/CL ROL r/m,data/CL RCR r/m,data/CL RCL r/m,data/CL 影響標(biāo)志: C,P,Z,S,O 程序流程控制指令集 CLC,STC,CMC 功能: 設(shè)

6、定進(jìn)位標(biāo)志 語(yǔ)法: CLC STC CMC 標(biāo)志位: C CLD,STD 功能: 設(shè)定方向標(biāo)志 語(yǔ)法: CLD STD 標(biāo)志位: D CLI,STI 功能: 設(shè)定中斷標(biāo)志 語(yǔ)法: CLI STI 標(biāo)志位: I CMP 功能: 比較OP1與OP2的值 語(yǔ)法: CMP r/m,r/m/data 標(biāo)志位: C,P,A,Z,O JMP 功能: 跳往指定地址執(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寄存器的值為0(ZERO

7、)時(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: PARITY EVEN,P=1時(shí)成立 PO: PARITY ODD,P=0時(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 地址

8、RET RET n 標(biāo)志位: 無(wú) INT,IRET 功能: 中斷調(diào)用及返回指令 語(yǔ)法: INT n IRET 標(biāo)志位: 在執(zhí)行INT時(shí),CPU會(huì)自動(dòng)將標(biāo)志寄存器的值入棧,在執(zhí)行IRET時(shí)則會(huì)將堆棧中的標(biāo)志值彈回寄存器 字符串操作指令集 MOVSB,MOVSW,MOVSD 功能: 字符串傳送指令 語(yǔ)法: MOVSB MOVSW MOVSD 標(biāo)志位: 無(wú) CMPSB,CMPSW,CMPSD 功能: 字符串比較指令 語(yǔ)法: CMPSB CMPSW CMPSD 標(biāo)志位: C,P,Z,S,O SCASB,SCASW 功能: 字符串搜索指令 語(yǔ)法: SCASB SCASW 標(biāo)志位: C,P,Z,S,O L

9、ODSB,LODSW,STOSB,STOSW 功能: 字符串載入或存貯指令 語(yǔ)法: LODSB LODSW STOSB STOSW 標(biāo)志位: 無(wú) REP,REPE,REPNE 功能: 重復(fù)前綴指令集 語(yǔ)法: REP 指令S REPE 指令S REPNE 指令S 標(biāo)志位: 依指令S而定 對(duì)于IBM PC機(jī)它有它的指令系統(tǒng),其中包括:數(shù)據(jù)傳送指令、串處理指令、算術(shù)指令、控制移動(dòng)指令、邏輯指令、處理機(jī)控制指令。 這里將簡(jiǎn)單介紹其指令類(lèi)型及指令說(shuō)明,如有要求給具體的指令格式及應(yīng)用,請(qǐng)與amay聯(lián)系,amay加以更新。 1)數(shù)據(jù)傳送指令:負(fù)責(zé)把數(shù)據(jù)、地址或立即數(shù)傳送到寄存器或存儲(chǔ)單元中。 數(shù)據(jù)傳送指令類(lèi)

10、型 指 令 說(shuō) 明 通用數(shù)據(jù)傳送指令 MOV(傳送)、PUSH(進(jìn)棧)、POP(出棧)、XCHG(交換) 累加器專(zhuān)用傳送指令 IN(輸入指令) 、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ù)指令類(lèi)型 指 令 說(shuō) 明 加法指令 ADD(加法)、ADC(帶進(jìn)位加法)、INC(加1) 減法指令 SUB(減法)、SBB(帶借位減法)、DEC(減1)、NEG(求補(bǔ))、CM

11、P(比較) 乘法指令 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)算。 邏輯指令類(lèi)型 指 令 說(shuō) 明 邏輯運(yùn)算指令 AND(邏輯與)、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ù)串。 串處理指令類(lèi)型 指 令 說(shuō)

12、明 指 令 MOVS(串傳送)、CMPS(串比較)、SCAS(串掃描)、LODS(從串?。TOS(存入串) 5)控制轉(zhuǎn)移指令:用來(lái)控制程序的執(zhí)行流程。 控制轉(zhuǎn)移指令類(lèi)型 指 令 說(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)用指令

13、)、RET(返回指令) 中斷指令 INT(中斷)、INTO(如溢出則中斷)、RIET(從中斷返回) 6)處理機(jī)控制指令: 處理機(jī)控制指令類(lèi)型 指 令 說(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ǔ)句分成兩類(lèi),他們是指令性語(yǔ)句和偽指令語(yǔ)句1指令性語(yǔ)句:指令性語(yǔ)句與機(jī)

14、器指令相對(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)可以省略,他經(jīng)常作為轉(zhuǎn)移指令或CALL指令的一個(gè)操作數(shù),用以表示地址的轉(zhuǎn)移。指令助記符是該語(yǔ)句的指令名稱的代表號(hào)碼,他指出操作的類(lèi)型,匯編程序?qū)⑵浞g成機(jī)器指令。不可省略。操作數(shù)表示參加本指令的運(yùn)算數(shù)據(jù),根據(jù)指令的操作類(lèi)型,操作數(shù)不同,中間必須用“,”隔開(kāi)。注釋指明一條指令的功能,可以省略。2偽指令語(yǔ)句偽指令語(yǔ)句沒(méi)有對(duì)應(yīng)的機(jī)器指令。匯編程序匯編源程序時(shí)對(duì)偽指令進(jìn)行處理,他可以完成數(shù)據(jù)定義,存儲(chǔ)區(qū)分配,段定義,段分配,指示程序結(jié)束功能

15、。偽指令語(yǔ)句的格式為:名字 偽指令指示符 操作數(shù),操作數(shù);注釋名字時(shí)給偽指令取得名稱,他用符號(hào)地址表示。偽指令中的名字通常是變量名,段名,過(guò)程名、符號(hào)名等。偽指令指示符是匯編程序MASM規(guī)定的符號(hào)。操作數(shù)是根據(jù)偽指令的具體要求來(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ù)。類(lèi)型(TYPE):變量的類(lèi)型屬性指變

16、量中每個(gè)單元所包含的字節(jié)數(shù),類(lèi)型有:字節(jié)變量(BYTE)、字變量(WORD)、雙字變量(DOUBLE WORD)標(biāo)號(hào):標(biāo)號(hào)是指可執(zhí)行指令語(yǔ)句的地址的符號(hào)表示,他可作為轉(zhuǎn)移指令和調(diào)用指令的目標(biāo)操作數(shù),以確定程序轉(zhuǎn)換的目標(biāo)地址,他具有三個(gè)屬性。段值(SEGMENT):指明標(biāo)號(hào)所在段的基址。段內(nèi)偏移地址(OFFSET):指標(biāo)號(hào)所在地址與所在段段首地址之間的偏移字節(jié)數(shù)。類(lèi)型(TYPE):標(biāo)號(hào)的類(lèi)型屬性指在轉(zhuǎn)移指令中標(biāo)號(hào)可轉(zhuǎn)移的距離類(lèi)型.NEAR,表示近標(biāo)號(hào)只能實(shí)現(xiàn)在本代碼段內(nèi)轉(zhuǎn)移或調(diào)用;FAR,表示遠(yuǎn)標(biāo)號(hào),可;以作為其他代碼段中的目標(biāo)地址,實(shí)現(xiàn)段間調(diào)用或轉(zhuǎn)移。偽指令匯總1數(shù)據(jù)定義語(yǔ)句格式一:變量名 助

17、記符 操作數(shù),操作數(shù);注釋格式二:變量名 助記符 n DUP(操作數(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é);在格式二中,用n DUP表示時(shí),n必須是整數(shù),表示括號(hào)中的操作數(shù)的重復(fù)次數(shù)。DUP后面必須帶括

18、號(hào)。2表達(dá)式賦值語(yǔ)句賦值語(yǔ)句EQU格式:符號(hào)名 EQU 表達(dá)式功能:用來(lái)給變量、標(biāo)號(hào)、常數(shù)、指令、表達(dá)式等定義一個(gè)符號(hào)名,程序中用到EQU左邊得變量、標(biāo)號(hào)時(shí)可以用右邊的常數(shù)值或表達(dá)式來(lái)代替,但是一經(jīng)定義在同一個(gè)程序模塊中不能再重新定義。符號(hào)語(yǔ)句符號(hào)語(yǔ)句“”與EQU語(yǔ)句具有相同功能,區(qū)別僅在于EQU中左邊的標(biāo)號(hào)不允許重新定義,而用“”定義的語(yǔ)句可以重新定義。3段定義語(yǔ)句存儲(chǔ)器的物理地址由段基址和偏移地址組合而成,任何一個(gè)邏輯段,無(wú)論是數(shù)碼段,數(shù)據(jù)段,堆棧段,附加段都必須定義。以便連接程序把不同段和模塊連成一個(gè)可執(zhí)行的程序。段定義語(yǔ)句SEGMENTENDS格式:段名 SEGMENT 定位類(lèi)型 組合

19、類(lèi)型 分類(lèi)名邏輯段內(nèi)容段名 ENDS 功能:將一個(gè)邏輯段定義成一個(gè)整體段名,是邏輯段的標(biāo)識(shí)符,不能省略。他確定了邏輯段在存儲(chǔ)器中的地址。必須以SEGMENT開(kāi)始,以ENDS結(jié)束,前后段名必須一致。定位類(lèi)型,定位類(lèi)型參數(shù)是對(duì)該段起始地址的定位。定位類(lèi)型參數(shù)主要有下面4種:PARA:指定定位段的起始地址必須在節(jié)的整數(shù)邊界,當(dāng)定位類(lèi)型缺省時(shí),就當(dāng)成PARABYTE:指定定位段的起始地址定位在存儲(chǔ)單元的任何字節(jié)地址。WORD:指定定位段的起始地址定位在字的邊界,即段的首地址必須是偶數(shù)。PAGE:指定定位段的起始地址定位在頁(yè)的邊界,即段的首地址必須是256的整數(shù)倍。組合類(lèi)型:組合類(lèi)型參數(shù)主要提供了各個(gè)邏

20、輯段之間的組合方式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方式處理?!胺诸?lèi)名”(CLASS NAME)其主要作用是匯編程序連接時(shí)

溫馨提示

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