DSP指令大全(最全)參考模板_第1頁
DSP指令大全(最全)參考模板_第2頁
DSP指令大全(最全)參考模板_第3頁
DSP指令大全(最全)參考模板_第4頁
DSP指令大全(最全)參考模板_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2/20附錄6TMS320C54x指令系統(tǒng)一覽表(按指令功能排列)一、算術運算指令1.加法指令句法表達式說明字數(shù)周期ADDSmem,srcsrc=src+Smem操作數(shù)加至累加器11ADDSmem,TS,srcsrc=src+Smem<<TS操作數(shù)移位后加至累加器11ADDSmem,16,src[,dst]dst=src+Smem<<16操作數(shù)左移16位加至累加器11ADDSmem[,SHIFT],src[,dst]dst=src+Smem<<SHIFT操作數(shù)移位后加到累加器22ADDXmem,SHFT,srcsrc=src+Xmem<<SHFT操作數(shù)移位后加到累加器11ADDXmem,Ymem,dstdst=Xmem<<16+Ymem<<16兩個操作數(shù)分別左移16位后加到累加器11ADD#lk[,SHFT],src[,dst]dst=src+#lk<<SHFT長立即數(shù)移位后加到累加器22ADD#lk,16,src[,dst]dst=src+#lk<<16長立即數(shù)左移16位后加到累加器22ADDsrc,[,SHIFT][,dst]dst=dst+src<<SHIFT累加器移位后相加11ADDsrc,ASM[,dst]dst=dst+src<<ASM累加器按ASM移位后相加11ADDCSmem,srcsrc=src+Smem+C操作數(shù)帶進位加至累加器11ADDM#lk,SmemSmem=Smem+#lk長立即數(shù)加至存儲器22ADDSSmem,srcsrc=src+uns(Smem)符號位不擴展的加法112.減法指令句法表達式說明字數(shù)周期SUBSmem,srcsrc=src—Smem從累加器中減去操作數(shù)11SUBSmem,TS,srcsrc=src—Smem<<TS從累加器中減去移位后的操作數(shù)11SUBSmem,16,src[,dst]dst=src—Smem<<16從累加器中減去左移16位后的操作數(shù)11SUBSmem[,SHIFT],src[,dst]dst=src—Smem<<SHIFT操作數(shù)移位后與累加器相減22SUBXmem,SHFT,srcsrc=src—Xmem<<SHFT操作數(shù)移位后與累加器相減11SUBXmem,Ymem,dstdst=Xmem<<16—Ymem<<16兩個操作數(shù)分別左移16位后相減11SUB#lk[,SHFT],src[,dst]dst=src—#1k<<SHFT長立即數(shù)移位后與累加器相減22SUB#lk,16,src[,dst]dst=src—#1k<<16長立即數(shù)左移16位后與累加器相減22SUBsrc[,SHIFT][,dst]dst=dst—src<<SHIFT源累加器移位后與目的累加器相減11SUBsrc,ASM[,dst]dst=dst—src<<ASM源累加器按ASM移位后與目的累加器相減llSUBBSmem,srcsrc=src—Smem—從累加器中帶借位減操作數(shù)11SUBCSmem,srcIf(src—Smem<<15)≥0src=(src—Smem<<15)<<1+1Elsesrc=src<<l有條件減法11SUBSSmem,srcsrc=src—uns(Smem)符號位不擴展的減法113.乘法指令句法表達式說明字數(shù)周期MPYSmem,dstdst=T*SmemT寄存器值與操作數(shù)相乘11MPYRSmem,dstdst=rnd(T*Smem)T寄存器值與操作數(shù)相乘(帶舍入)11MPYXmem,Ymem,dstdst=Xmem*Ymem,T=Xmem兩個操作數(shù)相乘11MPYSmem,#lk,dstdst=Smem*#lk,T=Smem長立即數(shù)與操作數(shù)相乘22MPY#lk,dstdst=T*#lk長立即數(shù)與T寄存器值相乘22MPYAdstdst=T*A(32-16)T寄存值與累加器A高位相乘11MPYASmemB=Smem*A(32-16),T=Smem操作數(shù)與累加器A高位相乘11MPYUSmem,dstdst=uns(T)*uns(Smem)無符號數(shù)乘法11SQURSmem,dstdst=Smem*Smem,T=Smem操作數(shù)的平方11SQURA,dstdst=A(32—16)*A(32—16)累加器A的高位平方114.乘法累加/減指令句法表達式說明字數(shù)周期MACSmem,srcsrc=src+T*Smem操作數(shù)與T寄存器值相乘后加到累加器11MACXmem,Ymem,src[,dst]dst=src+Xmern*Ymem,T=Xmem兩個操作數(shù)相乘后加到累加器11MAC#lk,src[,dst]dst=src+T*#lk長立即數(shù)與T寄存器值相乘后加到累加器22MACSmem,#lk,src[,dst]dst=src+Smem*#lk,T=Smem長立即數(shù)與操作數(shù)相乘后加到累加器22MACRSmem,srcdst=rnd(src+T*Smem)操作數(shù)與T寄存器值相乘后加到累加器(帶舍入)11MACRXmem,Ymem,src[,dst]dst=rnd(src+Xmem*Ymem),T=Xmem兩個操作數(shù)相乘后加到累加器(帶舍入)11MACASmem[,B]B=B+Smem*A(32—16),T=Smem操作數(shù)與累加器A高位相乘后加到累加器B11MACAT,src[,dst]dst=src+T*A(32—16)T寄存器值與累加器A高位相乘11MACARSmem[,B]B=rnd(B+Smem*A(32—16)),T=SmemT寄存器值與累加器A高位相乘后加到累加B(帶舍入)11MACART,src[,dst]dst=rnd(src+T*A(32—16))累加器A高位與T寄存器值相乘后與源、累加器相加(帶舍入)11MACDSmem,pmad,srcsrc=src+Smem*pmad,T=Smem,(Smem+1)=Smem操作數(shù)與程序存儲器值相乘后累加并延遲23MACPSmem,pmad,srcsrc=src+Smem*pmad,T=Smem操作數(shù)與程序存儲器值相乘后加到累加器23MACSUXmem,Ymem,srcsrc=src+uns(Xmem)*Ymem,T=Xmem元符號數(shù)與有符號數(shù)相乘后加到累加器11MASSmem,srcsrc=src—T*Smem從累加器中減去T寄存器值與操作數(shù)的乘積11MASRXmem,Ymem,src[,dst]dst=rnd(src—Xmem*Ymem),T=Xmem從累加器中減去兩操作數(shù)的乘積(帶舍入)11MASXmem,Ymem,src[,dst]dst=src—Xmem*Ymem,T=Xmem從源累加器中減去兩操作數(shù)的乘積11MASRSmem,srcsrc=rnd(src—T*Smem)從累加器中減去T寄存器值與操作數(shù)的乘積(帶舍入)11MASASmem[,B]B=B—Smem*A(32—16),T=Smem從累加器B中減去操作數(shù)與累加器A高位的乘積11MASAT,src[,dst]dst=src—T*A(32—16)從源累加器中減去T寄存器值與累加器A高位的乘積11MASART,src[,dst]dst=rnd(src—T*A(32—16))從源累加器中減去T寄存器值與累加器A高位的乘積(帶舍入)11SQURASmem,srcsrc=src+Smem*Smem,T=Smem操作數(shù)平方并累加11SQURSSmem,srcsrc=src—Smem*Smem,T=Smem從累加器中減去操作數(shù)的平方115.雙精度(32位操作數(shù))指令句法表達式說明字數(shù)周期DADDLmem,src[,dst]IfC16=0dst=Lmem+srcIfC16=1dst(39—16)=Lmem(31—16)+src(31—16)dst(15—0)=Lmem(15—0)+src(15—0)雙精度/雙16位數(shù)加到累加器11DADSTLmem,dstIfC16=0雙精度/雙16位數(shù)與T寄存器值相加/減11dst=Lmem+(T<<16+T)IfC16=1dst(39—16)=Lmem(31—16)+Tdst(15—0)=Lmem(15—0)—TDRSUBLmem,srcIfC16=0src=Lmem—srcIfC16=1src(39—16)=Lmem(31—16)—src(31—16)src(15—0)=Lmem(15—0)—src(15—0)雙精度/雙16位數(shù)中減去累加器值11DSADTLmem,dstIfC16=0dst=Lmem—(T<<16+T)IfC16=1dst(39—16)=Lmem(31—16)—Tdst(15—0)=Lmem(15—0)+T長操作數(shù)與T寄存器值相加/減11DSUBLmem,srcIfC16=0src=src—LmemIfC16=1src(39—16)=src(31—16)—Lmem(31—16)src(15—0)=src(15—0)—Lmem(15—0)從累加器中減去雙精度/雙16位數(shù)11DSUBTLmem,dstIfC16=0dst=Lmem—(T<<16+T)IfC16=1dst(39—16)=Lmem(31—16)—Tdst(15—0)=Lmem(15—0)—T從長操作數(shù)中減去T寄存器值116.專用指令句法表達式說明字數(shù)周期ABDSTXmem,YmemB=B+|A(32—16)|,A=(Xmem—Ymem)<<16絕對距離11ABSsrc[,dst]dst=|src|累加器取絕對值11CMPLsrc[,dst]dst=累加器取反11DELAYSmem(Smem+1)=Smem存儲器單元延遲11EXPsrcT=numberofsignbits(src)—8求累加器的指數(shù)11FIRSXmem,Ymem,pmadB=B+A*pmad,A=(Xmem+Ymem)<<16對稱FIR濾波23LMSXmem,YmemB=B+Xmem*Ymem,A=(A+Xmem<<16)+215求最小均方值11MAXdstdst=max(A,B)求累加器(A,B)最大值11MINdstdst=min(A,B)求累加器(A,B)最小值11NEGsrc[,dst]dst=-src累加器變負11NORMsrc[,dst]dst=src<<TS,dst=norm(src,TS)歸一化11POLYSmemB=Smem<<16,A=rnd(A*T+B)求多項式的值11RNDsrc[,dst]dst=src+215累加器舍入運算11SATsrcsaturate(src)累加器飽和運算11SQDSTXmem,YmemB=B+A(32—16)*A(32—16),A=(Xmem—Ymem)<<16求距離的平方11二、邏輯運算指令1.與邏輯運算指令句法表達式說明字數(shù)周期ANDSmem,srcsrc=src&Smem操作數(shù)和累加器相與11AND#lk[,SHFT],src[,dst]dst=src&#lk<<SHFT長立即數(shù)移位后和累加器相與22AND#lk,16,src[,dst]dst=src&#lk<<16長立即數(shù)左移16位后和累加器相與22ANDsrc[,SHIFT][,dst]dst=dst&src<<SHIFT源累加器移位后和目的累加器相與11ANDM#lk,SmemSmem=Smem&#lk操作數(shù)和長立即數(shù)相與222.或邏輯運算指令句法表達式說明字數(shù)周期ORSmemsrc=src|Smem操作數(shù)和累加器相或l1OR#lk[,SHFT],src[,dst]dst=src|#lk<<SHFT長立即數(shù)移位后和累加器相或22OR#lk,16,src[,dst]dst=src|#lk<<16長立即數(shù)左移16位后和累加器相或22ORsrc[,SHIFT][,dst]dst=dst|src<<SHIFT源累加器移位后和目的累加器相或11ORM#lk,SmemSmem=Smem|#lk操作數(shù)和長立即數(shù)相或223.異或邏輯運算指令句法表達式說明字數(shù)周期XORSmem,srcsrc=src∧Smem操作數(shù)和累加器相異或11XOR#lk,[,SHFT],src[,dst]dst=src∧#lk<<SHFT長立即數(shù)移位后和累加器相異或22XOR#lk,16,src[,dst]dst=src∧#lk<<16長立即數(shù)左移16位后和累加器相異或22XORsrc[,SHIFT][,dst]dst=dst∧src<<SHIFT源累加器移位后和目的累加器相異或11XORM#lk,SmemSmem=Smem∧#lk操作數(shù)和長立即數(shù)相異或224.移位指令句法表達式說明字數(shù)周期ROLsrcRotateleftwithcarryin累加器經(jīng)進位位循環(huán)左移11ROLTCsrcRotateleftwithTCin累加器經(jīng)TC位循環(huán)左移11RORsrcRotaterightwithcarryin累加器經(jīng)進位位循環(huán)右移11SFTAsrc,SHIFT[,dst]dst=src<<SHIFT{arithmeticshift}累加器算術移位11SFTCsrcifsrc(31)=src(30)thensrc=src<<1累加器條件移位11SFTLsrc,SHIFT[,dst]dst=src<<SHIFT{logicalshift}累加器邏輯移位115.測試指令句法表達式說明字數(shù)周期BITXmem,BITCTC=Xmem(15—BITC)測試指定位1lBITFSmem,#lkTC=(Smem&#lk)測試由立即數(shù)規(guī)定的位域22BITTSmemTC=Smem(15—T(3—O))測試由T寄存器指定的位11CMPMSmem,#lkTC=(Smem==#lk)存儲單元與長立即數(shù)比較22CMPRCC,ARxCompareARxwithAR0輔助寄存器ARx與ARO比較11三、程序控制指令1.分支轉換指令句法表達式說明字數(shù)周期B[D]pmadPC=pmad(15—0)無條件分支轉移24/[2※]BACC[D]srcPC=src(15—0)按累加器規(guī)定的地址轉移16/[4※]BANZ[D]pmad,Sindif(Sind≠0)thenPC=pmad(15—0)輔助寄存器不為O就轉移24?/2§/[2※]BC[D]pmad,cond[,cond[,cond]]if(cond(s))thenPC=pmad(15—0)條件分支轉移25?/3§/[3※]FB[D]extpmadPC=pmad(15—0),XPC=pmad(22—16)無條件遠程分支轉移24/[2※]FBACC[D]srcPC=src(15—0),XPC=src(22—16)按累加器規(guī)定的地址遠程分支轉移16/[4※]2.調(diào)用指令句法表達式說明字數(shù)周期CALA[D]src——SP=PC,PC=src(15—0)按累加器規(guī)定的地址調(diào)用子程序16/[4※]CALL[D]pmad——SP=PC,PC=pmad(15—0)無條件調(diào)用子程序24/[2§]CC[D]pmad,cond[,cond[,cond]]if(cond(s))then——SP=PC,PC=pmad(15—0)有條件調(diào)用子程序25?/3§/[3※]FCALA[D]src——SP=PC,——SP=XPC,PC=src(15—0),XPC=src(22—16)按累加器規(guī)定的地址遠程調(diào)用子程序16/[4※]FCALL[D]extpmad——SP=PC,——SP=XPC,PC=pmad(15—0),XPC=pmad(22—16)無條件遠程調(diào)用子程序24[2※]3.中斷指令句法表達式說明字數(shù)周期INTRK——SP=PC,PC=IPTR(15—7)+K<<2,INTM=1不可屏蔽的軟件中斷,關閉其他可屏蔽中斷13TRAPK——SP=PC,PC=IPTR(15—7)+K<<2不可屏蔽的軟件中斷,不影響INTM位134.返回指令句法表達式說明字數(shù)周期FRET[D]XPC=SP++,PC=SP++遠程返回16/[4※]FRETE[D]XPC=SP++,PC=SP++,INTM=O開中斷,從遠程中斷返回16/[4※]RC[D]cond[,cond[,cond]]if(cond(s))thenPC=SP++條件返回15?3§/[3※]RET[D]PC=SP++返回15/[3※]RETE[D]PC=SP++,INTM=O開中斷,從中斷返回15/[3※]RETF[D]PC=RTN,SP++,INTM=O開中斷,從中斷快速返回13/[1※]5.重復指令句法表達式說明字數(shù)周期RPTSmemRepeatsingle,RC=Smem重復執(zhí)行下條指令(Smem)+1次11RPT#KRepeatsingle,RC=#K重復執(zhí)行下條指令k十1次11RPT#lkRepeatsingle,RC=#lk重復執(zhí)行下條指令#lk+1次22RPTB[D]pmadRepeatblock,RSA=PC+2[4#],REA=pmad—1塊重復指令24/[2※]RPTZdst,#lkRepeatsingle,RC=#lk,dst=O重復執(zhí)行下條指令,累加器清O226.堆棧管理指令句法表達式說明字數(shù)周期FRAMEKSP=SP+K,-128≤k≤127堆棧指針偏移一個立即數(shù)值11POPDSmemSmem=SP++將數(shù)據(jù)從棧頂彈出至數(shù)據(jù)存儲器11POPMMMRMMR=SP++將數(shù)據(jù)從棧頂彈出至MMR11PSHDSmem——SP=Smem將數(shù)據(jù)壓人堆棧11PSHMMMR——SP=MMR將MMR壓人堆棧l17.其他程序控制指令句法表達式說明字數(shù)周期IDLEKidle(K),1≤k≤3保持空轉狀態(tài),直到中斷發(fā)生14MARSmemIfCMPT=0,thenmodifyARx,ARPisunchangedIfCMPT=1andARx≠AR0,thenmodifyARx,ARP=xIfCMPT=1andARx=AR0,thenmodifyAR(ARP),ARPisunchanged修改輔助寄存器11NOPnooperation空操作11RESETsoftwarereset軟件復位13RSBXN,SBITSTN(SBIT)=0狀態(tài)寄存器位復位11SSBXN,SBITSTN(SBIT)=1狀態(tài)寄存器位置位11XCn,cond[,cond[,cond]]If(cond(s))thenexecutethenextninstructions;n=1or2有條件執(zhí)行11注:?條件“真”,§條件“假”,※延遲指令。四、加載和存儲指令1.加載指令句法表達式說明字數(shù)周期DLDLmem,dstdst=Lmem雙精度/雙16位長字加載累加器11LDSmem,dstdst=Smem將操作數(shù)加載到累加器11LDSmem,TS,dstdst=Smem<<TS操作數(shù)按TREG(5~0)移位后加載到累加器11LDSmem,16,dstdst=Smem<<16操作數(shù)左移16位后加載累加器11LDSmem[,SHIFT],dstdst=Smem<<SHIFT操作數(shù)移位后加載累加器22LDXmem,SHFT,dstdst=Xmem<<SHFT操作數(shù)移位后加載累加器11LD#K,dstdst=#K短立即數(shù)加載累加器11LD#lk[,SHFT],dstdst=#lk<<SHFT長立即數(shù)移位后加載累加器22LD#lk,16,dstdst=#lk<<16長立即數(shù)左移16位后加載累加器22LDsrc,ASM[,dst]dst=src<<ASM源累加器按ASM移位后加載目的累加器11LDsrc[,SHIFT][,dst]dst=src<<SHIFT源累加器移位后加載目的累加器11LDSmem,TT=Smem操作數(shù)加載T寄存器11LDSmem,DPDP=Smem(8—0)9位操作數(shù)加載DP13LD#k9,DPDP=#k99位立即數(shù)加載ARP11LD#k5,ASMASM=#k55位立即數(shù)加載ASM11LD#k3,ARPARP=#k33位立即數(shù)加載ARP11LDSmem,ASMASM=Smem(4—O)5位操作數(shù)加載ASM11LDMMMR,dstdst=MMR將MMR加載到累加器11LDRSmem,dstdst(31—16)=rnd(Smem)操作數(shù)舍入加載累加器高位11LDUSmem,dstdst=uns(Smem)無符號操作數(shù)加載累加器11LTDSmemT=Smem,(Smem+1)=Smem操作數(shù)加載T寄存器并延遲112.存儲指令句法表達式說明字數(shù)周期DSTsrc,LmemLmem=src累加器值存到長字單元中12STT,SmemSmem=T存儲T寄存器值11STTRN,SmemSmem=TRN存儲TRN寄存器值11ST#lk,SmemSmem=#lk存儲長立即數(shù)22STHsrc,SmemSmem=src(31—16)存儲累加器高位11STHsrc,ASM,SmemSmem=src(31—16)<<(ASM)累加器高位按ASM移位后存儲11STHsrc,SHFT,XmemXmem=src(31—16)<<(SHFT)累加器高位移位后存儲11STHsrc[,SHIFT],SmemSmem=src(31—16)<<(SHIFT)累加器高位移位后存儲22STLsrc,SmemSmem=src(15—0)存儲累加器低位11STLsrc,ASM,SmemSmem=src(15—0)<<ASM累加器低位按ASM移位后存儲11STLsrc,SHFT,XmemXmem=src(15—0)<<SHFT累加器低位移位后存儲11STLsrc[,SHIFT],SmemSmem=src(15—0)<<SHIFT累加器低位移位后存儲22STLMsrc,MMRMMR=src(15—0)累加器低位存到MMR11STM#lk,MMRMMR=#lk長立即數(shù)存到MMR223.條件存儲指令句法表達式說明字數(shù)周期CMPSsrc,SmemIfsrc(31—16)>src(15—0)thenSmem=src(31—16)Ifsrc(31—16)≤src(15—0)thenSmem=src(15—0)比較選擇并存儲最大值11SACCDsrc,Xmem,condIf(cond)Xmem=src<<(ASM—16)有條件存儲累加器值11SRCCDXmem,condIf(cond)Xmem=BRC有條件存儲塊重復計數(shù)器11STRCDXmem,condIf(cond)Xmem=T有條件存儲T寄存器值114.并行加載和存儲指令句法表達式說明字數(shù)周期STsrc,YmemYmem=src<<(ASM—16)存儲累加器并行加載累加器11||LDXmem,dst||dst=Xmem<<16STsrc,YmemYmem=src<<(ASM—16)存儲累加器并行加載T寄存器11||LDXmem,T||T=Xmem5.并行加載和乘法指令句法表達式說明字數(shù)周期LDXmem,dstdst=Xmem<<16加載累加器并行乘法累加運算11||MACYmem,dst_||dst_=dst_+T*YmemLDXmem,dstdst=Xmem<<16加載累加器并行乘法累加運算(帶舍入)11||MACRYmem,dst_||dst_=rnd(dst_+T*Ymem)LDXmem,dstdst=Xmem<<16加載累加器并行乘法減法運算11||MASYmem,dst_||dst_=dst_—T*YmemLDXmem,dstdst=Xmem<<16加載累加器并行乘法減法運算(帶舍入)11||MASRYmem,dst_||dst_=rnd(dst_—T*Ymem)6.并行存儲和加/減法指令句法表達式說明字數(shù)周期STsrc,Ymem||ADDXmem,dstYmem=src<<(ASM—16)||dst=dst_+Xmem<<16存儲累加器值并行加法運算11STsrc,Ymem||SUBXmem,dstYmem=src<<(ASM—16)||dst=(Xmem<<16)—dst_存儲累加器值并行減法運算117.并行存儲和乘法指令句法表達式說明字數(shù)周期STsrc,YmemYmem=src<<(ASM—16)存儲累加器并行乘法累加運算11||MACXmem,dst||dst=dst+T*XmemSTsrc,Ymem||MACRXmem,dstYmem=src<<(ASM—16)||dst=rnd(dst+T*Xmem)存儲累加器并行乘法累加運算(帶舍入)11STsrc,YmemYmem=src<<(ASM—16)存儲累加器并行乘法減法運算11||MASXmem,dst||dst=dst—T*XmemSTsrc,YmemYmem=src<<(ASM—16)存儲累加器并行乘法減法運算(帶舍入)11||MASRXmem,dst||dst=rnd(dst—T*Xmem)STsrc,YmemYmem=src<<(ASM—16)存儲累加器并行乘法運算11||MPYXmem,dst||dst=T*Xmem8.其他加載和存儲指令句法表達式說明字數(shù)周期MVDDXmem,YmemYmem=Xmem數(shù)據(jù)存儲器內(nèi)部傳送數(shù)據(jù)11MVDKSmem,dmaddmad=Smem數(shù)據(jù)存儲器內(nèi)部指定地址傳送數(shù)據(jù)22MVDMdmad,MMRMMR=dmad數(shù)據(jù)存儲器向MMR傳送數(shù)據(jù)22MVDPSmem,pmadpmad=Smem數(shù)據(jù)存儲器向程序存儲器傳送數(shù)據(jù)24MVKDdmad,SmemSmem=dmad數(shù)據(jù)存儲器內(nèi)部指定地址傳送數(shù)據(jù)22MVMDMMR,dmaddmad=MMRMMR向指定地址傳送數(shù)據(jù)22MVMMMMRx,MMRyMMRy=MMRxMMRx向MMRy傳送數(shù)據(jù)11MVPDpmad,SmemSmem=pmad程序存儲器向數(shù)據(jù)存儲器傳送數(shù)據(jù)23PORTRPA,SmemSmem=PA從PA口讀入數(shù)據(jù)22PORTWSmem,PAPA=Smem向PA口輸出數(shù)據(jù)22READASmemSmem=Pmem(A)按累加器A尋址讀程序存儲器并存入數(shù)據(jù)存儲器15WRITASmemPmem(A)=Smem將數(shù)據(jù)按累加器A尋址寫入程序存儲器15五.偽指令1.定義段的偽指令助記符和語法說明.asect"sectionname",address匯編至絕對命名(初始化)段(此段已過時).bsssymbol,sizeinwords[,blockingflag]在.bss段(未被初始化數(shù)據(jù)段)保留size個字.data匯編至數(shù)據(jù)(初始化數(shù)據(jù))段.sect”sectionname”匯編至一個命名(已初始化)段.text匯編至.text可執(zhí)行代碼)段symbol.usect“sectionname”,sizeinwords,[blockingflag]在1個命名段(未被初始化)保留.size個字2.初始化常數(shù)(數(shù)據(jù)和存儲器)的偽指令助記符號和語法說明.bessizeinbits在當前段保留size位;標號指向保留間的末尾.bfloatvalue初始化一個32位,IEEE單精度浮點常數(shù);不允許目標跨越業(yè)界..blongvalue1[,...,valuen]初始化一個或多個32位的整數(shù);不允許目標跨越頁邊界.bytevalue1[,...,valuen]在當前段初始化一個或多個連續(xù)字節(jié).fieldvalue[,sizeinbits]初始化可變長度域.floatvalue初始化一個32位,IEEE單精度浮點數(shù).intvalue1[,...,valuen]初始化1個或多個16位整數(shù).longvalue1[,...,valuen]初始化個或多個32位整數(shù).spacesizeinbits在半前段保留.size位;標號指向保留空間的末尾.string”string1”[,...,”stringn”]初始化—個或多個.text串.wordvalue1[,...,valuen]初始化一個或多個16位整數(shù)3.調(diào)整段程序計數(shù)器偽指令(SPC).align把SPC調(diào)整到頁邊界.even把SPC調(diào)整到偶數(shù)字邊界4.控制輸出列表格式化偽指令.drlist允許所有偽指令行的列出(默認).drnolist禁止特定的偽指令行的列出.fclist允許列出度假條件代碼塊(默認).fcnolist禁止列出虛假條件代碼塊.lengthpagelength設置源列表的頁長度.list重啟源列表.mlist允許列出宏列表和循環(huán)塊(默認).mnolist禁止列出宏列表和循環(huán)塊.nolist停止源列表.option{B|D|F|L|M|T|X}選擇輸出列表選項.page在源列表中彈出頁.sslist允許擴展替代符號列表.ssnolist禁止擴展替代符號列表(默認).tabsize設置列表符大小.title”string”在列表頁頭部打印標題.widthpagewidth設置源列表的頁寬度.copy[”]filename[”]從其他文件包含源語句.defsymbol1[,...,symboln]確認在當前模塊定義并在其他模塊中使用的一個或多個符號.globalsymbol1[,...,symboln]標識一個或多個全局(外部)符號.include[”]filename[”]從其他文件包括源語句.mlib[”]filename[”]定義宏庫.refsymbol1[,...,symboln]確認一個或多個在當前模塊中使用但在其他模塊中定義的符號5.條件匯編偽指令.break[well-definedexpression]如果條件真結束.loop匯編,.break結構是可選項.else如果.if條件為假,匯編代碼塊.else結構是可選項.elseifwell-definedexpression——如果if條件為假且.elseif條件為真,匯編代碼塊.else結構是可選項.endif結束.if代碼塊.endloop結束.1oop代碼塊.ifwell-definedexpression如果條件為真則匯編代碼塊.loop[well-definedexpression]開始代碼塊的重復匯編6.匯編符號.asg[”]characterstring[”],substitutionsymbol——把字符串賦予替代的符號..endstruct結束結構定義.equ使值和符號相等.evalwell-definedexpression,substitutionsymbol根據(jù)數(shù)字替代符號完成運算.newblock取消局部標號.set使數(shù)值和符號相等

.struct開始結構定義.tag把結構屬性賦予標號7.宏指令宏定義:Macname.macro[參數(shù)1],[…],[參數(shù)n]宏調(diào)用:[標號][:]macname[參數(shù)1],[…],[參數(shù)n]8.編譯軟件指令①匯編器:asm500.exeasm500[inputfile[objectfile[listingfile][-options]]-c—使匯編語言文件中大小沒有區(qū)別。缺損為區(qū)分大小寫。-i—為匯編源文件中引用的其他文件(例.copy,.include等引入的文件)指明路徑。格式-ipathname。-q—抑制匯編的標題及所有的進程信息。-s—把所有定義的符號放進目標文件的符號表中,一般匯編器只將全局符號

溫馨提示

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

評論

0/150

提交評論