當(dāng)前位置:首頁 > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]當(dāng)你編寫完一個程序后,通過軟件調(diào)試,你可以看到程序的指令集,從指令集你就能知道單片機(jī)內(nèi)部是如何工作的,比如數(shù)據(jù)存取的寄存器與地址,下面是網(wǎng)上找的一篇指令集,講的蠻好的。一、數(shù)據(jù)傳送類指令(7種助記符)M

當(dāng)你編寫完一個程序后,通過軟件調(diào)試,你可以看到程序的指令集,從指令集你就能知道單片機(jī)內(nèi)部是如何工作的,比如數(shù)據(jù)存取的寄存器與地址,下面是網(wǎng)上找的一篇指令集,講的蠻好的。

一、數(shù)據(jù)傳送類指令(7種助記符)
MOV(英文為Move):對內(nèi)部數(shù)據(jù)寄存器RAM和特殊功能寄存器SFR的數(shù)據(jù)進(jìn)行傳送;
MOVC(MoveCode)讀取程序存儲器數(shù)據(jù)表格的數(shù)據(jù)傳送;
MOVX (MoveExternalRAM) 對外部RAM的數(shù)據(jù)傳送;
XCH (Exchange) 字節(jié)交換;
XCHD (Exchangelow-orderDigit) 低半字節(jié)交換;
PUSH (PushontoStack) 入棧;
POP (PopfromStack) 出棧;

二、算術(shù)運(yùn)算類指令(8種助記符)
ADD(Addition)加法;
ADDC(AddwithCarry)帶進(jìn)位加法;
SUBB(SubtractwithBorrow)帶借位減法;
DA(DecimalAdjust)十進(jìn)制調(diào)整;
INC(Increment)加1;
DEC(Decrement)減1;
MUL(Multiplication、Multiply)乘法;
DIV(Division、Divide)除法;

三、邏輯運(yùn)算類指令(10種助記符)
ANL(ANDLogic)邏輯與;
ORL(ORLogic)邏輯或;
XRL(Exclusive-ORLogic)邏輯異或;
CLR(Clear)清零;
CPL(Complement)取反;
RL(Rotateleft)循環(huán)左移;
RLC(RotateLeftthroughttheCarryflag)帶進(jìn)位循環(huán)左移;
RR(RotateRight)循環(huán)右移;
RRC (RotateRightthroughttheCarryflag)帶進(jìn)位循環(huán)右移;
SWAP(Swap) 低4位與高4位交換;

四、控制轉(zhuǎn)移類指令(17種助記符)
ACALL(AbsolutesubroutineCall)子程序絕對調(diào)用;
LCALL(LongsubroutineCall)子程序長調(diào)用;
RET(Returnfromsubroutine)子程序返回;
RETI(ReturnfromInterruption)中斷返回;
SJMP(ShortJump)短轉(zhuǎn)移;
AJMP(AbsoluteJump)絕對轉(zhuǎn)移;
LJMP(LongJump)長轉(zhuǎn)移;
CJNE(CompareJumpifNotEqual)比較不相等則轉(zhuǎn)移;
DJNZ(DecrementJumpifNotZero)減1后不為0則轉(zhuǎn)移;
JZ(JumpifZero)結(jié)果為0則轉(zhuǎn)移;
JNZ(JumpifNotZero)結(jié)果不為0則轉(zhuǎn)移;
JC(JumpiftheCarryflagisset)有進(jìn)位則轉(zhuǎn)移;
JNC(JumpifNotCarry)無進(jìn)位則轉(zhuǎn)移;
JB(JumpiftheBitisset)位為1則轉(zhuǎn)移;
JNB(JumpiftheBitisNotset)位為0則轉(zhuǎn)移;
JBC(JumpiftheBitissetandClearthebit)位為1則轉(zhuǎn)移,并清除該位;
NOP(NoOperation) 空操作;

五、位操作指令(1種助記符)
CLR位清零;
SETB(SetBit) 位置1。


8種常用偽指令
1.ORG16位地址;
此指令用在原程序或數(shù)據(jù)塊的開始,指明此語句后面目標(biāo)程序或數(shù)據(jù)塊存放的起始地址。
2.[標(biāo)號:]DB字節(jié)數(shù)據(jù)項表;
將項表中的字節(jié)數(shù)據(jù)存放到從標(biāo)號開始的連續(xù)字節(jié)單元中。例如:SEG:DB88H,100,“7”,“C”
3.[標(biāo)號:]DW雙字節(jié)數(shù)據(jù)項表;
定義16位地址表,16地址按低位地址存低位字節(jié),高位地址存高位字節(jié)。
例如:TAB:DW1234H,7BH
4.名字EQU表達(dá)式或名字=表達(dá)式;
用與給一個表達(dá)式賦值或給字符串起名字。之后名字可用做程序地址,數(shù)據(jù)地址或立即數(shù)地址使用。名字必須是一字母開頭的字母數(shù)字串。
例如:COUNT=10或SPACEEQU10H
5.名字DATA直接字節(jié)地址;
給8位內(nèi)部RAM單元起個名字,名字必須是一字母開頭的字母數(shù)字串。同一單元可起多個名字。
例如:ERRORDATA80H
6.名字XDATA直接字節(jié)地址;
給8位外部RAM起個名字,名字規(guī)定同DATA偽指令。
例如:IO_PORTXDATA0CF04H
7.名字BIT位指令;
給一可位尋址的位單元起個名字,規(guī)定同DATA偽指令。
例如:SWTBIT30H
8.[標(biāo)號:] END;
指出源程序到此結(jié)束,匯編對其后的程序語句不予理睬。源程序只在主程序最后使用一個END。


1.數(shù)據(jù)傳送指令(30條)
MOVA,Rn寄存器送A11E8--EF
MOVA,data直接字節(jié)送A21E5
MOVA,@Ri間接RAM送A11E6--E7
MOVA,#data立接數(shù)送A2174
MOVRn,AA送寄存器11F8--FF
MOVRn,data直接數(shù)送寄存器22A8--AF
MOVRn,#data立即數(shù)送寄存器2178--7F
MOVdata,AA送直接字節(jié)21F5
MOVdata,Rn寄存器送直接字節(jié)2188—8F
MOVdata,data直接字節(jié)送直接字節(jié)3285
MOVdata,@Ri間接Rn送直接字節(jié)2286;87
MOVdata,#data立即數(shù)送直接字節(jié)3275
MOV@Ri,AA送間接Rn12F6;F7
MOV@Ri,data直接字節(jié)送間接Rn11A6;A7
MOV@Ri,#data立即數(shù)送間接Rn2276;77
MOVDPTR,#data1616位常數(shù)送數(shù)據(jù)指針3190
MOVC,bit直接位送進(jìn)位位21A2
MOVbit,C進(jìn)位位送直接位2292
MOVCA,@A+DPTRA+DPTR尋址程序存貯字節(jié)送A3293
MOVCA,@A+PCA+PC尋址程序存貯字節(jié)送A1283
MOVXA,@Ri外部數(shù)據(jù)送A(8位地址)12E2;E3
MOVXA,@DPTR外部數(shù)據(jù)送A(16位地址)12E0
MOVX@Ri,AA送外部數(shù)據(jù)(8位地址)12F2;F3
MOVX@DPTR,AA送外部數(shù)據(jù)(16位地址)12F0
PUSHdata直接字節(jié)進(jìn)棧道,SP加122C0
POPdata直接字節(jié)出棧,SP減122D0
XCHA,Rn寄存器與A交換11C8—CF
XCHA,data直接字節(jié)與A交換21C5
XCHA,@Ri間接Rn與A交換11C6;C7
XCHDA,@Ri間接Rn與A低半字節(jié)交換11D6;D7
2.邏輯運(yùn)算指令(35條)
ANLA,Rn寄存器與到A1158—5F
ANLA,data直接字節(jié)與到A2155
ANLA,@Ri間接RAM與到A1156;57
ANLA,#data立即數(shù)與到A2154
ANLdata,AA與到直接字節(jié)2152
ANLdata,#data立即數(shù)與到直接字節(jié)3253
ANLC,bit直接位與到進(jìn)位位2282
ANLC,/bit直接位的反碼與到進(jìn)位位22B0
ORLA,Rn寄存器或到A1148—4F
ORLA,data直接字節(jié)或到A2145
ORLA,@Ri間接RAM或到A1146;47
ORLA,#data立即數(shù)或到A2144
ORLdata,AA或到直接字節(jié)2142
ORLdata,#data立即數(shù)或到直接字節(jié)3243
ORLC,bit直接位或到進(jìn)位位2272
ORLC,/bit直接位的反碼或到進(jìn)位位22A0
XRLA,Rn寄存器異或到A1168—6F
XRLA,data直接字節(jié)異或到A2165
XRLA,@Ri間接RAM異或到A1166;67
XRLA,#data立即數(shù)異或到A2164
XRLdata,AA異或到直接字節(jié)2162
XRLdata,#data立即數(shù)異或到直接字節(jié)3263
SETBC進(jìn)位位置111D3
SETBbit直接位置121D2
CLRAA清011E4
CLRC進(jìn)位位清011C3
CLRbit直接位清021C2
CPLAA求反碼11F4
CPLC進(jìn)位位取反11B3
CPLbit直接位取反21B2
RLAA循環(huán)左移一位1123
RLCAA帶進(jìn)位左移一位1133
RRAA右移一位1103
RRCAA帶進(jìn)位右移一位1113
SWAPAA半字節(jié)交換11C4
3.算術(shù)運(yùn)算指令(24條)
ADDA,Rn寄存器加到A1128—2F
ADDA,data直接字節(jié)加到A2125
ADDA,@Ri間接RAM加到A1126;27
ADDA,#data立即數(shù)加到A2124
ADDCA,Rn寄存器帶進(jìn)位加到A1138—3F
ADDCA,data直接字節(jié)帶進(jìn)位加到A2135
ADDCA,@Ri間接RAM帶進(jìn)位加到A1136;37
ADDCA,#data立即數(shù)帶進(jìn)位加到A2134
SUBBA,Rn從A中減去寄存器和進(jìn)位1198—9F
SUBBA,data從A中減去直接字節(jié)和進(jìn)位2195
SUBBA,@Ri從A中減去間接RAM和進(jìn)位1196;97
SUBBA,#data從A中減去立即數(shù)和進(jìn)位2194
INCAA加11104
INCRn寄存器加11108—0F
INCdata直接字節(jié)加12105
INC@Ri間接RAM加11106;07
INCDPTR數(shù)據(jù)指針加112A3
DECAA減11114
DECRn寄存器減11118—1F
DECdata直接字節(jié)減12115
DEC@Ri間接RAM減11116;17
MULABA乘B14A4
DIVABA被B除1484
DAAA十進(jìn)制調(diào)整11D4
4.轉(zhuǎn)移指令(22條)
AJMPaddr11絕對轉(zhuǎn)移22*1
LJMPaddr16長轉(zhuǎn)移3202
SJMPrel短轉(zhuǎn)移2280
JMP@A+DPTR相對于DPTR間接轉(zhuǎn)移1273
JZrel若A=0則轉(zhuǎn)移2260
JNZrel若A≠0則轉(zhuǎn)移2270
JCrel若C=1則轉(zhuǎn)移2240
JNCrel若C≠1則轉(zhuǎn)移2250
JBbit,rel若直接位=1則轉(zhuǎn)移3220
JNBbit,rel若直接位=0則轉(zhuǎn)移3230
JBCbit,rel若直接位=1則轉(zhuǎn)移且清除3210
CJNEA,data,rel直接數(shù)與A比較,不等轉(zhuǎn)移32B5
CJNEA,#data,rel立即數(shù)與A比較,不等轉(zhuǎn)移32B4
CJNE@Ri,#data,rel立即數(shù)與間接RAM比較,不等轉(zhuǎn)移32B6;B7
CJNERn,#data,rel立即數(shù)與寄存器比較不等轉(zhuǎn)移32B8—BF
DJNZRn,rel寄存器減1不為0轉(zhuǎn)移22D8—DF
DJNZdata,rel直接字節(jié)減1不為0轉(zhuǎn)移32D5
ACALLaddr11絕對子程序調(diào)用22*1
LCALLaddr16子程序調(diào)用3212
RET子程序調(diào)用返回1222
RETI中斷程序調(diào)用返回1232
NOP空操作1100

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉