_第二章DSP匯編指1xg
《_第二章DSP匯編指1xg》由會(huì)員分享,可在線閱讀,更多相關(guān)《_第二章DSP匯編指1xg(82頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、3.3 匯編語言指令匯編語言指令 DSP指令的匯編句法格式為:操作碼 操作數(shù) ;注釋 其中操作碼為由可描述指令特征的助記符表示,它規(guī)定了指令的操作功能;在操作數(shù)中定義了該句法表達(dá)式中所用的變量以及尋址方式;注釋是為便于閱讀而對(duì)指令作的說明。例如,加法指令的句法有:ADD dma,shift;直接尋址ADD dma,16;左移16位直接尋址ADD ind,shift,ARn;間接尋址ADD ind,16,ARn;左移16位間接尋址ADD#k;短立即尋址ADD#lk,shift;長(zhǎng)立即尋址以上指令中,ADD表示作加法操作。后面的操作數(shù)可以是常數(shù),也可以是引用存儲(chǔ)器、I/O端口、寄存器地址、指針、移
2、位次數(shù)和其他各種常數(shù)的匯編表達(dá)式。2.1 數(shù)據(jù)傳送指令數(shù)據(jù)傳送指令1、數(shù)據(jù)存儲(chǔ)器至數(shù)據(jù)存儲(chǔ)器間的塊傳送:BLDD#lk,dma;源地址為長(zhǎng)立即數(shù),直接尋址BLDD#lk,ind,ARn;源地址為長(zhǎng)立即數(shù),間接尋址BLDD dma,#lk;目標(biāo)地址為長(zhǎng)立即數(shù),直接尋址BLDD ind,#lk,ARn;目標(biāo)地址為長(zhǎng)立即數(shù),間接尋址該指令將數(shù)據(jù)存儲(chǔ)器中的一塊源數(shù)據(jù)字連續(xù)地復(fù)制到指定的目的數(shù)據(jù)存儲(chǔ)單元中。例例2.1 BLDD#300h,20h;(;(DP=6)(地址為)(地址為0300h037Fh)指令執(zhí)行前數(shù)據(jù)存儲(chǔ)器0h300h320h0Fh指令執(zhí)行后數(shù)據(jù)存儲(chǔ)器0h300h320h0h例例2.2 B
3、LDD *+,#321h,AR3;指令執(zhí)行前數(shù)據(jù)存儲(chǔ)器01h301h321h0Fh指令執(zhí)行后數(shù)據(jù)存儲(chǔ)器01h301h321h01h2ARPAR2 301h3ARPAR2302h2、程序存儲(chǔ)器至數(shù)據(jù)存儲(chǔ)器間的塊傳送:、程序存儲(chǔ)器至數(shù)據(jù)存儲(chǔ)器間的塊傳送:BLPD#pma,dma;源地址為長(zhǎng)立即數(shù),直接;源地址為長(zhǎng)立即數(shù),直接尋址尋址BLPD#pma,ind,ARn;源地址為長(zhǎng)立即數(shù),;源地址為長(zhǎng)立即數(shù),間接尋址間接尋址該指令將程序存儲(chǔ)器中的一塊數(shù)據(jù)字連續(xù)地復(fù)制該指令將程序存儲(chǔ)器中的一塊數(shù)據(jù)字連續(xù)地復(fù)制到指定的目的數(shù)據(jù)存儲(chǔ)單元中,指令中的長(zhǎng)立即到指定的目的數(shù)據(jù)存儲(chǔ)單元中,指令中的長(zhǎng)立即數(shù)數(shù)#pma是
4、源首地址(不是數(shù)據(jù)?。?,塊的長(zhǎng)度是源首地址(不是數(shù)據(jù)?。?,塊的長(zhǎng)度在重復(fù)計(jì)數(shù)在重復(fù)計(jì)數(shù)RPTC中。中。該指令不影響任何狀態(tài)位。該指令不影響任何狀態(tài)位。例例2.3 BLPD#800h,00h;(;(DP=6)(地址為)(地址為0300h037Fh)指令執(zhí)行前數(shù)據(jù)存儲(chǔ)器0Fh800h300h0h指令執(zhí)行后數(shù)據(jù)存儲(chǔ)器0Fh800h300h0Fh例例2.4 BLPD#800h,*,AR7;指令執(zhí)行前程序存儲(chǔ)器1111h800h310h0100h指令執(zhí)行后程序存儲(chǔ)器1111h800h310h1111h0ARPAR0 310h7ARPAR0310h數(shù)據(jù)存儲(chǔ)器數(shù)據(jù)存儲(chǔ)器3、片內(nèi)數(shù)據(jù)存儲(chǔ)器中的數(shù)據(jù)傳送、片內(nèi)數(shù)
5、據(jù)存儲(chǔ)器中的數(shù)據(jù)傳送DMOV dma;直接尋址;直接尋址DMOV ind,ARn;間接尋址;間接尋址該指令把指定的數(shù)據(jù)存儲(chǔ)器內(nèi)容復(fù)制到該地址加該指令把指定的數(shù)據(jù)存儲(chǔ)器內(nèi)容復(fù)制到該地址加1的地址中,原單元內(nèi)容保持不變,即數(shù)據(jù)存儲(chǔ)的地址中,原單元內(nèi)容保持不變,即數(shù)據(jù)存儲(chǔ)器地址器地址數(shù)據(jù)存儲(chǔ)器地址數(shù)據(jù)存儲(chǔ)器地址+1。DMOV指令只用于片內(nèi)數(shù)據(jù)指令只用于片內(nèi)數(shù)據(jù)RAM塊。不能用于塊。不能用于外部存儲(chǔ)器。外部存儲(chǔ)器。DMOV功能也可由功能也可由LTD和和MACD來實(shí)現(xiàn)。來實(shí)現(xiàn)。該指令受該指令受CNF狀態(tài)位影響。狀態(tài)位影響。例例2.5 DMOV DAT8;(;(DP=6)指令執(zhí)行前數(shù)據(jù)存儲(chǔ)器43h308h
6、309h2h指令執(zhí)行后數(shù)據(jù)存儲(chǔ)器43h308h309h43h例例2.6 DMOV*,AR1;指令執(zhí)行前數(shù)據(jù)存儲(chǔ)器40h30Ah30Bh41h指令執(zhí)行后數(shù)據(jù)存儲(chǔ)器40h30Ah30Bh40h0ARPAR0 30Ah1ARPAR030Ah4、從端口輸入數(shù)據(jù)、從端口輸入數(shù)據(jù)IN dma,PA;直接尋址;直接尋址IN ind,PA,ARn;間接尋址;間接尋址PA:16位位I/O端口或端口或I/O影射的寄存器地址。影射的寄存器地址。IN指令從指令從I/O單元讀入單元讀入16位值到指定的數(shù)據(jù)存儲(chǔ)單元,位值到指定的數(shù)據(jù)存儲(chǔ)單元,引腳引腳IS非變?yōu)榈碗娖剑硎驹L問非變?yōu)榈碗娖?,表示訪問I/O口,口,STRB、
7、W/R非非和和READY時(shí)許與讀外部數(shù)據(jù)存儲(chǔ)器一樣。時(shí)許與讀外部數(shù)據(jù)存儲(chǔ)器一樣。該指令不受任何狀態(tài)位影響。該指令不受任何狀態(tài)位影響。例例2.7 IN 7,1000h;從口地址為從口地址為1000h的外設(shè)讀數(shù)據(jù),并將數(shù)據(jù)存至數(shù)據(jù)存的外設(shè)讀數(shù)據(jù),并將數(shù)據(jù)存至數(shù)據(jù)存儲(chǔ)器單元儲(chǔ)器單元307h(DP=6)IN*,5h;從口地址為從口地址為5h的外設(shè)讀取數(shù)據(jù),并將數(shù)據(jù)存于當(dāng)前輔助的外設(shè)讀取數(shù)據(jù),并將數(shù)據(jù)存于當(dāng)前輔助寄存器所指定的數(shù)據(jù)存儲(chǔ)器單元。寄存器所指定的數(shù)據(jù)存儲(chǔ)器單元。5、左移后裝入累加器:、左移后裝入累加器:LACC dma,shift;直接尋址;直接尋址LACC dma,16;直接尋址并左移;直接
8、尋址并左移16位位LACC ind,shift,ARn間接尋址間接尋址LACC ind,16,ARn;間接尋址并左移;間接尋址并左移16位位LACC#lk,shift;長(zhǎng)立即尋址;長(zhǎng)立即尋址第一條到第四條指令將指定的數(shù)據(jù)存儲(chǔ)器地址的內(nèi)容左第一條到第四條指令將指定的數(shù)據(jù)存儲(chǔ)器地址的內(nèi)容左移(移(shift位或位或16位)后送入累加器。位)后送入累加器。第五條指令中的第五條指令中的#lk是一個(gè)是一個(gè)16位長(zhǎng)的數(shù)據(jù),不是地址。位長(zhǎng)的數(shù)據(jù),不是地址。該條指令將數(shù)據(jù)左移后送入累加器。該條指令將數(shù)據(jù)左移后送入累加器。在移位時(shí),低位填在移位時(shí),低位填0;高位受狀態(tài)為;高位受狀態(tài)為SXM的影響;若的影響;若S
9、XM=1,則進(jìn)行符號(hào)擴(kuò)展;若,則進(jìn)行符號(hào)擴(kuò)展;若SXM=0,則不進(jìn)行符號(hào),則不進(jìn)行符號(hào)擴(kuò)展,填擴(kuò)展,填0即可。即可。例例2.9 LACC 6,4;(;(DP=8:地址:地址0400h047Fh,SXM=0)指令執(zhí)行前數(shù)據(jù)存儲(chǔ)器01h406hACC012345678h指令執(zhí)行后數(shù)據(jù)存儲(chǔ)器01h406hACC10hCXCX例例2.10 LACC*,4;(;(SXM=0)指令執(zhí)行前數(shù)據(jù)存儲(chǔ)器0FFh300hACC012345678h指令執(zhí)行后數(shù)據(jù)存儲(chǔ)器0FFh300hACC0FF0h2ARPAR2 0300h2ARPAR20300hCXCX6、裝載累加器低位并清累加器高位:、裝載累加器低位并清累加器
10、高位:LACL dma;直接尋址;直接尋址LACL ind,ARn;間接尋址;間接尋址LACL#k;短立即尋址;短立即尋址第一條和第二條指令被尋址數(shù)據(jù)存儲(chǔ)器單元的內(nèi)第一條和第二條指令被尋址數(shù)據(jù)存儲(chǔ)器單元的內(nèi)容裝入累加器的低容裝入累加器的低16位,累加器的高位填位,累加器的高位填0。第。第三條指令將三條指令將8位短立即數(shù)位短立即數(shù)#k擴(kuò)展為擴(kuò)展為16位(高位補(bǔ)位(高位補(bǔ)0)并裝入累加器的低)并裝入累加器的低16位,累加器的高位填位,累加器的高位填0。無論無論SXM為何狀態(tài),該指令都不進(jìn)行符號(hào)擴(kuò)展。為何狀態(tài),該指令都不進(jìn)行符號(hào)擴(kuò)展。例例2.11 LACL 1;(;(DP=6)指令執(zhí)行前數(shù)據(jù)存儲(chǔ)器0
11、h301hACC7FFFFFFFh指令執(zhí)行后數(shù)據(jù)存儲(chǔ)器0h301hACC0hCXCXLACL*,AR4;指令執(zhí)行前數(shù)據(jù)存儲(chǔ)器00FFh401hACC7FFFFFFFh指令執(zhí)行后數(shù)據(jù)存儲(chǔ)器00FFh401hACC000000FFh0ARPAR0 401h4ARPAR2400hCXCX7、按、按TREG規(guī)定的左移后裝入累加器低位:規(guī)定的左移后裝入累加器低位:LACT dma;直接尋址;直接尋址LACT ind,ARn;間接尋址;間接尋址該指令將數(shù)據(jù)存儲(chǔ)單元中的值左移后裝入累加器。該指令將數(shù)據(jù)存儲(chǔ)單元中的值左移后裝入累加器。左移位數(shù)由寄存器左移位數(shù)由寄存器TREG最低最低4位決定,可左移位決定,可左
12、移015位。位。該指令受狀態(tài)位該指令受狀態(tài)位SXM的影響,移位時(shí),若的影響,移位時(shí),若SXM=1,則累加器高位進(jìn)行符號(hào)擴(kuò)展;若,則累加器高位進(jìn)行符號(hào)擴(kuò)展;若SXM=0,則高位填零。,則高位填零。例例2.14 LACT 1;(;(DP=6,SXM=0)指令執(zhí)行前數(shù)據(jù)存儲(chǔ)器1376h301hACC98F7EC83h指令執(zhí)行后數(shù)據(jù)存儲(chǔ)器1376h301hACC13760hCXCX14hTREG14hTREG例例2.15 LACT*,AR3;(;(SXM=1)指令執(zhí)行前數(shù)據(jù)存儲(chǔ)器0FF00h310hACC98F7EC83h指令執(zhí)行后數(shù)據(jù)存儲(chǔ)器0FF00h310hACCFFFFFE00h1ARPAR1
13、310h3ARPAR130FhCXCX11hTREG11hTREG8、裝載輔助寄存器:、裝載輔助寄存器:LAR ARx,dma;直接尋址;直接尋址LAR ARx,ind,ARn;間接尋址;間接尋址LAR ARx,#k;短立即尋址;短立即尋址LAR ARx,#lk;長(zhǎng)立即尋址;長(zhǎng)立即尋址第第1、2條指令將指定的數(shù)據(jù)存儲(chǔ)器地址中的內(nèi)容裝入指條指令將指定的數(shù)據(jù)存儲(chǔ)器地址中的內(nèi)容裝入指定的輔助寄存器地址(定的輔助寄存器地址(ARx)。)。第第3、4條指令將條指令將8/16位的常量裝入指定的輔助寄存器地位的常量裝入指定的輔助寄存器地址(址(ARx)。無論)。無論SXM為何值,指定的常量無符號(hào)處理。為何值
14、,指定的常量無符號(hào)處理。LAR和和SAR(存儲(chǔ)輔助寄存器)指令可在自程序調(diào)用或(存儲(chǔ)輔助寄存器)指令可在自程序調(diào)用或中斷處理時(shí)用來裝載和存儲(chǔ)輔助寄存器。若一個(gè)輔助寄中斷處理時(shí)用來裝載和存儲(chǔ)輔助寄存器。若一個(gè)輔助寄存器沒有用于間接尋址,則存器沒有用于間接尋址,則LAR和和SAR指令可將該輔助指令可將該輔助寄存器用作附加的存儲(chǔ)寄存器,從而可實(shí)現(xiàn)在不影響累寄存器用作附加的存儲(chǔ)寄存器,從而可實(shí)現(xiàn)在不影響累加器的前提下依次交換數(shù)據(jù)存儲(chǔ)器單元中數(shù)。加器的前提下依次交換數(shù)據(jù)存儲(chǔ)器單元中數(shù)。例例2.16 LAR AR0,10;(;(DP=6)指令執(zhí)行前數(shù)據(jù)存儲(chǔ)器18h310hAR063h指令執(zhí)行后數(shù)據(jù)存儲(chǔ)器1
15、8h310hAR018h例例2.17 LAR AR4,*;指令中指定的;指令中指定的AR與與ARP指令的指令的AR相同,相同,則不減則不減 指令執(zhí)行前數(shù)據(jù)存儲(chǔ)器32h300hAR4300h指令執(zhí)行后數(shù)據(jù)存儲(chǔ)器32h300hAR432h4ARP4ARP例例2.18 LAR AR4,#01h;指令執(zhí)行前AR40FF09h指令執(zhí)行后AR401h9、裝載數(shù)據(jù)頁指針:、裝載數(shù)據(jù)頁指針:LDP dma;直接尋址;直接尋址LDP ind,ARn;間接尋址;間接尋址LDP#k;短立即尋址;短立即尋址第第1、2條指令將指定的數(shù)據(jù)存儲(chǔ)器單元的低條指令將指定的數(shù)據(jù)存儲(chǔ)器單元的低9位位(LSB)裝入狀態(tài)寄存器)裝入狀
16、態(tài)寄存器ST0的數(shù)據(jù)存儲(chǔ)頁指針(的數(shù)據(jù)存儲(chǔ)頁指針(DP)。)。第第3條指令將條指令將9位立即數(shù)裝入狀態(tài)寄存器位立即數(shù)裝入狀態(tài)寄存器ST0的數(shù)據(jù)存儲(chǔ)的數(shù)據(jù)存儲(chǔ)頁指針(頁指針(DP)。)。DP也可由也可由LST指令裝入。指令裝入。在直接尋址方式中,在直接尋址方式中,DP提供提供9位頁面地址(位于高端),位頁面地址(位于高端),指令中指定的指令中指定的7位數(shù)為偏移點(diǎn)至(位于低端)。以形成位數(shù)為偏移點(diǎn)至(位于低端)。以形成可被指令尋址的可被指令尋址的16位數(shù)據(jù)存儲(chǔ)器地址。位數(shù)據(jù)存儲(chǔ)器地址。例例2.20 LDP 127;(;(DP=511,地址為,地址為FF80hFFFFh)指令執(zhí)行前數(shù)據(jù)存儲(chǔ)器FEDC
17、hFFFFhDP1FFh指令執(zhí)行后數(shù)據(jù)存儲(chǔ)器FEDChFFFFhDP0DCh例例2.21 LDP#0h;指令執(zhí)行前DP1FFh指令執(zhí)行后DP0h例例2.22LDP *,AR5;指令執(zhí)行前數(shù)據(jù)存儲(chǔ)器06h300hDP1FFh指令執(zhí)行后數(shù)據(jù)存儲(chǔ)器06h300hDP06h4ARPAR4 0300h5ARPAR40300h10、裝載乘積寄存器高位:、裝載乘積寄存器高位:LPH dma;直接尋址;直接尋址LPH ind,ARn;間接尋址;間接尋址這兩條指令將指定的數(shù)據(jù)存儲(chǔ)器地址內(nèi)容裝入寄這兩條指令將指定的數(shù)據(jù)存儲(chǔ)器地址內(nèi)容裝入寄存器的高存器的高16位。位。P寄存器的低位不受影響。寄存器的低位不受影響。L
18、PH指令對(duì)于中斷和子程序調(diào)用后恢復(fù)指令對(duì)于中斷和子程序調(diào)用后恢復(fù)P寄存器寄存器高位的內(nèi)容特別有用。高位的內(nèi)容特別有用。例例2.23 LPH DAT0;(;(DP=4)指令執(zhí)行前數(shù)據(jù)存儲(chǔ)器F79Ch200hPREG30079844h指令執(zhí)行后數(shù)據(jù)存儲(chǔ)器F79Ch200hPREGF79C9844h例例2.23 LPH*,AR6;指令執(zhí)行前數(shù)據(jù)存儲(chǔ)器F79Ch200hPREG30079844h指令執(zhí)行后數(shù)據(jù)存儲(chǔ)器F79Ch200hPREGF79C9844h5ARPAR5200h6ARPAR4200h11、裝載狀態(tài)寄存器:、裝載狀態(tài)寄存器:LST#m,dma;直接尋址;直接尋址LST#m,ind,AR
19、n;間接尋址;間接尋址LST指令時(shí)向狀態(tài)寄存器指令時(shí)向狀態(tài)寄存器ST0或或ST1裝載指定數(shù)據(jù)存儲(chǔ)器的內(nèi)容。裝載指定數(shù)據(jù)存儲(chǔ)器的內(nèi)容。若若m=0,則選擇,則選擇ST0;若;若m=1,則選擇,則選擇ST1。用用LST指令裝載指令裝載ST0時(shí),不影響時(shí),不影響ST0的的INTM位。該位是可屏蔽中位。該位是可屏蔽中斷的總屏蔽位,通過指令斷的總屏蔽位,通過指令SETC INTM和和CLRC INTM對(duì)其操作。對(duì)其操作。雖然雖然LST#0操作向操作向ARP裝入新值,但并不影響裝入新值,但并不影響ST1寄存器中的寄存器中的ARB字段。字段。在在LST#1操作中,送入操作中,送入ARB中的值也被送入中的值也被
20、送入ARP。若在間接尋址方式下用一操作數(shù)來指定下一若在間接尋址方式下用一操作數(shù)來指定下一AR值,則該操作數(shù)值,則該操作數(shù)將被忽略,而將被尋址數(shù)據(jù)存儲(chǔ)器單元所含值的將被忽略,而將被尋址數(shù)據(jù)存儲(chǔ)器單元所含值的3位最高有效位位最高有效位送入送入ARP。狀態(tài)寄存器中的保留位讀出總為狀態(tài)寄存器中的保留位讀出總為1,這些位對(duì)寫入不起作用。,這些位對(duì)寫入不起作用。LST指令用于自程序調(diào)用和中斷恢復(fù)狀態(tài)寄存器。指令用于自程序調(diào)用和中斷恢復(fù)狀態(tài)寄存器。該指令影響該指令影響ARB、ARP、OV、OVM、DP、CNF、TC、SXM、C、XF和和PM狀態(tài)位,但不影響狀態(tài)位,但不影響INTM。例例2.26 LST#0,
21、60h;(;(DP=0)數(shù)據(jù)存儲(chǔ)器2404h60hST06E00h數(shù)據(jù)存儲(chǔ)器2404h60hST02604hST105EChST105ECh例例2.27 LST#0,*-,AR1;指令執(zhí)行前數(shù)據(jù)存儲(chǔ)器EE04h3FFhST0EE00h指令執(zhí)行后數(shù)據(jù)存儲(chǔ)器EE04h3FFhST0EE04h4ARPAR43FFh7ARPAR43FEhST1E7EChST1E7ECh例2.28 LST#1,00h;(DP=6)ARB的值會(huì)被裝入ARP。數(shù)據(jù)存儲(chǔ)器E1BCh300hST00406h數(shù)據(jù)存儲(chǔ)器E1BCh300hST0E406hST109EChST1E1FCh12、裝載、裝載T寄存器:寄存器:LT dma
22、;直接尋址;直接尋址LT ind,ARn;間接尋址;間接尋址這兩條指令將指定的數(shù)據(jù)存儲(chǔ)器的內(nèi)容裝入這兩條指令將指定的數(shù)據(jù)存儲(chǔ)器的內(nèi)容裝入TREG寄存器,為乘法做準(zhǔn)備。寄存器,為乘法做準(zhǔn)備。該指令不影響任何狀態(tài)位。該指令不影響任何狀態(tài)位。與乘法相關(guān)的指令有與乘法相關(guān)的指令有LTA、LTD、LTP、LTS、MPY、MPYA、MPYS、MPYU指令。指令。例2.29 LT 24;(注:24為10進(jìn)制,轉(zhuǎn)為16進(jìn)制是18h)(DP=8)(0400047Fh)指令執(zhí)行前數(shù)據(jù)存儲(chǔ)器62h418hTREG3h指令執(zhí)行后數(shù)據(jù)存儲(chǔ)器62h418hTREG62h例例2.30 LT*,AR3;指令執(zhí)行前數(shù)據(jù)存儲(chǔ)器6
23、2h418hTREG3h指令執(zhí)行后數(shù)據(jù)存儲(chǔ)器62h418hTREG62h2ARPAR2418h3ARPAR4418h13、裝載、裝載T寄存器并累加前次乘積:寄存器并累加前次乘積:LTA dma;直接尋址;直接尋址LTA ind,ARn;間接尋址;間接尋址該指令將指定寄存器地址中的內(nèi)容裝入該指令將指定寄存器地址中的內(nèi)容裝入TREG寄寄存器。同時(shí),乘積寄存器的內(nèi)容按存器。同時(shí),乘積寄存器的內(nèi)容按PM狀態(tài)位所狀態(tài)位所定義的值移位后與累加器的內(nèi)容相加,結(jié)果保留定義的值移位后與累加器的內(nèi)容相加,結(jié)果保留在累加器中。在累加器中。若結(jié)構(gòu)產(chǎn)生進(jìn)位,則進(jìn)位位被置位(若結(jié)構(gòu)產(chǎn)生進(jìn)位,則進(jìn)位位被置位(C=1);否)
24、;否則,進(jìn)位位被清零(則,進(jìn)位位被清零(C=0)。)。LTD指令的功能包含了指令的功能包含了LTA指令的功能。指令的功能。受受PM和和OVM的影響,并影響的影響,并影響C和和OV狀態(tài)位。狀態(tài)位。例2.31 LTA 36;(DP=6;PM=0:乘積不移位)指令執(zhí)行前數(shù)據(jù)存儲(chǔ)器62h324hACC5h指令執(zhí)行后數(shù)據(jù)存儲(chǔ)器62h324hACC14hCXC03hTREG62hTREG0FhPREG0FhPREG例例2.32 LTA*,AR5;(;(PM=0)指令執(zhí)行前數(shù)據(jù)存儲(chǔ)器指令執(zhí)行后數(shù)據(jù)存儲(chǔ)器4ARPAR4 324h5ARPAR1324h62h324hACC5h62h324hACC14hCXC03
25、hTREG62hTREG0FhPREG0FhPREG14、裝載、裝載T寄存器,累加前次乘積并移動(dòng)數(shù)據(jù):寄存器,累加前次乘積并移動(dòng)數(shù)據(jù):LTD dma;直接尋址;直接尋址LTD ind,ARn;間接尋址;間接尋址該指令完成三個(gè)動(dòng)作。首先將指定的存儲(chǔ)器地址中的內(nèi)容裝入該指令完成三個(gè)動(dòng)作。首先將指定的存儲(chǔ)器地址中的內(nèi)容裝入TREG寄存器,然后寄存器,然后PREG寄存器的內(nèi)容按寄存器的內(nèi)容按PM狀態(tài)位所規(guī)定的值狀態(tài)位所規(guī)定的值移位后加到累加器中。同時(shí),制定的數(shù)據(jù)存儲(chǔ)器地址的內(nèi)容被復(fù)移位后加到累加器中。同時(shí),制定的數(shù)據(jù)存儲(chǔ)器地址的內(nèi)容被復(fù)制到地址加制到地址加1的數(shù)據(jù)存儲(chǔ)器中。的數(shù)據(jù)存儲(chǔ)器中。該指令適用于
26、所有被配置為數(shù)據(jù)存儲(chǔ)器的片內(nèi)該指令適用于所有被配置為數(shù)據(jù)存儲(chǔ)器的片內(nèi)RAM塊。數(shù)據(jù)傳送塊。數(shù)據(jù)傳送功能可通過連續(xù)存儲(chǔ)器的邊界,但不能用于外部數(shù)據(jù)存儲(chǔ)器和存功能可通過連續(xù)存儲(chǔ)器的邊界,但不能用于外部數(shù)據(jù)存儲(chǔ)器和存儲(chǔ)器影像寄存器。儲(chǔ)器影像寄存器。若若LTD被用于外部數(shù)據(jù)存儲(chǔ)器,則功能與被用于外部數(shù)據(jù)存儲(chǔ)器,則功能與LTA相同,即前一次結(jié)相同,即前一次結(jié)果被累加,果被累加,TREG寄存器從外部數(shù)據(jù)存儲(chǔ)器裝入數(shù),但不能發(fā)生寄存器從外部數(shù)據(jù)存儲(chǔ)器裝入數(shù),但不能發(fā)生數(shù)據(jù)移動(dòng)。數(shù)據(jù)移動(dòng)。若累加的結(jié)果產(chǎn)生進(jìn)位,則不會(huì)發(fā)生數(shù)據(jù)移動(dòng)。若累加的結(jié)果產(chǎn)生進(jìn)位,則不會(huì)發(fā)生數(shù)據(jù)移動(dòng)。指令受指令受PM和和OVM的影響,并影
27、響的影響,并影響C和和OV狀態(tài)位。狀態(tài)位。例2.33 LTD 126;(DP=7,PM=0:乘積不移位)指令執(zhí)行前數(shù)據(jù)存儲(chǔ)器指令執(zhí)行后數(shù)據(jù)存儲(chǔ)器62h3FEh62h3FEh0h3FFhACC5h62h3FFhACC14hCXC03hTREG62hTREG0FhPREG0FhPREG數(shù)據(jù)存儲(chǔ)器數(shù)據(jù)存儲(chǔ)器例例2.34 LTD*,AR3;(;(PM=0)指令執(zhí)行前指令執(zhí)行后1ARPAR13FEh3 ARPAR13FEh數(shù)據(jù)存儲(chǔ)器數(shù)據(jù)存儲(chǔ)器62h3FEh62h3FEh0h3FFhACC5h62h3FFhACC14hCXC03hTREG62hTREG0FhPREG0FhPREG數(shù)據(jù)存儲(chǔ)器數(shù)據(jù)存儲(chǔ)器15、
28、裝載、裝載T寄存器并將寄存器并將P寄存器存至累加器:寄存器存至累加器:LTP dma;直接尋址;直接尋址LTP ind,ARn;間接尋址;間接尋址該指令先將被尋址數(shù)據(jù)存儲(chǔ)器單元的內(nèi)容裝入該指令先將被尋址數(shù)據(jù)存儲(chǔ)器單元的內(nèi)容裝入TREG寄存器。寄存器。再將移位后的再將移位后的PREG寄存器的值存入累加器。移寄存器的值存入累加器。移位受位受PM狀態(tài)位的控制。狀態(tài)位的控制。例2.35 LTP 36;(DP=6,PM=0:乘積不移位)指令執(zhí)行前數(shù)據(jù)存儲(chǔ)器62h324hACC5h指令執(zhí)行后數(shù)據(jù)存儲(chǔ)器62h324hACC0FhCXCX3hTREG62hTREG0FhPREG0FhPREG例例2.36 LT
29、P*,AR5;(;(PM=0)指令執(zhí)行前數(shù)據(jù)存儲(chǔ)器指令執(zhí)行后數(shù)據(jù)存儲(chǔ)器2ARPAR2 324h5ARPAR1324h62h324hACC5h62h324hACC0FhCXCX3hTREG62hTREG0FhPREG0FhPREG16、裝載、裝載T寄存器并減去前次乘積:寄存器并減去前次乘積:LTS dma;直接尋址;直接尋址LTS ind,ARn;間接尋址;間接尋址該指令將被尋址數(shù)據(jù)存儲(chǔ)器單元的內(nèi)容裝入該指令將被尋址數(shù)據(jù)存儲(chǔ)器單元的內(nèi)容裝入TREG寄存器。同時(shí)乘積寄存器的內(nèi)容按寄存器。同時(shí)乘積寄存器的內(nèi)容按PM狀狀態(tài)位所規(guī)定的值進(jìn)行移位,然后從累加器的內(nèi)容態(tài)位所規(guī)定的值進(jìn)行移位,然后從累加器的內(nèi)
30、容減去減去PREG移位后的值,結(jié)果保存在累加器中。移位后的值,結(jié)果保存在累加器中。若減的結(jié)果產(chǎn)生借位,則進(jìn)位位被清零(若減的結(jié)果產(chǎn)生借位,則進(jìn)位位被清零(C=0););否則進(jìn)位位被置位(否則進(jìn)位位被置位(C=1)。)。例2.37 LTS DAT36;(DP=6;PM=0:乘積不移位)指令執(zhí)行前數(shù)據(jù)存儲(chǔ)器62h324hACC5h指令執(zhí)行后數(shù)據(jù)存儲(chǔ)器62h324hACCFFFFFFF6hCXC03hTREG62hTREG0FhPREG0FhPREG例例2.38 LTS*,AR2;(;(PM=0)指令執(zhí)行前數(shù)據(jù)存儲(chǔ)器指令執(zhí)行后數(shù)據(jù)存儲(chǔ)器1ARPAR1 324h2ARPAR1324h62h324hAC
31、C5h62h324hACCFFFFFFF6hCXC03hTREG62hTREG0FhPREG0FhPREG17、修改輔助寄存器:、修改輔助寄存器:MAR dma;直接尋址;直接尋址MAR ind,ARn;間接尋址;間接尋址在直接尋址方式下,在直接尋址方式下,MAR指令為空操作,不影響任何指令為空操作,不影響任何狀態(tài)位。對(duì)所指向的存儲(chǔ)器不起作用。狀態(tài)位。對(duì)所指向的存儲(chǔ)器不起作用。在間接尋址方式下,執(zhí)行該指令可以修改輔助寄存器和在間接尋址方式下,執(zhí)行該指令可以修改輔助寄存器和ARP的值。當(dāng)?shù)闹怠.?dāng)MAR修改修改ARP的值時(shí),的值時(shí),ARP原有的值被原有的值被復(fù)制到復(fù)制到ST1的的ARB字段。字段。
32、任何任何MAR所能實(shí)現(xiàn)的間接尋址操作,用其他任何支持所能實(shí)現(xiàn)的間接尋址操作,用其他任何支持間接尋址的指令也能實(shí)現(xiàn)。間接尋址的指令也能實(shí)現(xiàn)。ARP也可由也可由LST指令裝入。指令裝入。對(duì)于裝入輔助寄存器,見對(duì)于裝入輔助寄存器,見LAR指令的說明。對(duì)于將輔助指令的說明。對(duì)于將輔助寄存器的值存入數(shù)據(jù)存儲(chǔ)器,見寄存器的值存入數(shù)據(jù)存儲(chǔ)器,見SAR指令。指令。例2.39 MAR*,AR1;ARP裝入1指令執(zhí)行前指令執(zhí)行后0ARPARB 71ARPARB0例例2.40 MAR *+,AR5;將當(dāng)前輔助寄存器;將當(dāng)前輔助寄存器(AR1)增增1,并向,并向ARP裝入裝入5 指令執(zhí)行前指令執(zhí)行后1ARPARB 0
33、5ARPARB134hAR135hAR118、從端口輸出數(shù)據(jù):、從端口輸出數(shù)據(jù):OUT dma,PA;直接尋址;直接尋址OUT ind,PA,ARn;間接尋址;間接尋址OUT指令將數(shù)據(jù)存儲(chǔ)器單元的指令將數(shù)據(jù)存儲(chǔ)器單元的16位值寫到指定的位值寫到指定的I/O單元。不影單元。不影響狀態(tài)位。引腳響狀態(tài)位。引腳IS非變低,用以指示訪問非變低,用以指示訪問I/O口。口。STRB非、非、R/W非、非、ready信號(hào)的時(shí)序與外部數(shù)據(jù)存儲(chǔ)器的時(shí)序信號(hào)的時(shí)序與外部數(shù)據(jù)存儲(chǔ)器的時(shí)序相同。相同。RPT指令可以同指令可以同OUT指令一起使用,用來將連續(xù)多個(gè)字從數(shù)據(jù)存指令一起使用,用來將連續(xù)多個(gè)字從數(shù)據(jù)存儲(chǔ)器寫到儲(chǔ)器寫
34、到I/O空間。空間。例例2.41 OUT DAT0,100h;(;(DP=4)將數(shù)據(jù)存儲(chǔ)器單元將數(shù)據(jù)存儲(chǔ)器單元200h處的數(shù)據(jù)字寫到口地址為處的數(shù)據(jù)字寫到口地址為100h的外設(shè)上;的外設(shè)上;例例2.42 OUT*,100h;將當(dāng)前輔助寄存器所指的數(shù)據(jù)存儲(chǔ)單元中的字寫到口地址為將當(dāng)前輔助寄存器所指的數(shù)據(jù)存儲(chǔ)單元中的字寫到口地址為100h的外設(shè)上。的外設(shè)上。19、將乘積寄存器裝入累加器:、將乘積寄存器裝入累加器:PAC該指令將該指令將P寄存器中的內(nèi)容按寄存器中的內(nèi)容按PM狀態(tài)位所規(guī)定的狀態(tài)位所規(guī)定的值移位后,送入累加器。值移位后,送入累加器。例2.43 PAC;(PM=0:乘積不移位)指令執(zhí)行前A
35、CC23h指令執(zhí)行后ACC144hCXC0144hPREG144hPREG20、棧頂彈出至累加器低位:、棧頂彈出至累加器低位:POP執(zhí)行該指令后,棧頂(執(zhí)行該指令后,棧頂(TOS)內(nèi)容復(fù)制到累加器低位中,)內(nèi)容復(fù)制到累加器低位中,棧中各值均上彈一級(jí),累加器高位填零。棧中各值均上彈一級(jí),累加器高位填零。硬件堆棧有硬件堆棧有8個(gè)后進(jìn)先出的單元。每發(fā)生一次彈出時(shí),個(gè)后進(jìn)先出的單元。每發(fā)生一次彈出時(shí),每個(gè)堆棧中值均被復(fù)制到上一級(jí)棧單元中,棧頂內(nèi)容則每個(gè)堆棧中值均被復(fù)制到上一級(jí)棧單元中,棧頂內(nèi)容則被移出。棧底的最后兩個(gè)字具有相同的值。如果在任何被移出。棧底的最后兩個(gè)字具有相同的值。如果在任何入棧前有入棧
36、前有7次出棧(使用次出棧(使用POP、POPD、RETC或或RET指指令),則棧中各級(jí)含有相同的值。令),則棧中各級(jí)含有相同的值。沒有提供對(duì)堆棧下溢的檢查。該指令不影響狀態(tài)位。沒有提供對(duì)堆棧下溢的檢查。該指令不影響狀態(tài)位。例2.44 POP;指令執(zhí)行前指令執(zhí)行后45h堆棧61h堆棧61h16hACC82hACC45hCXCX7h33h42h56h31h61h16h7h33h42h56h31h21、棧頂彈出至數(shù)據(jù)存儲(chǔ)器:、棧頂彈出至數(shù)據(jù)存儲(chǔ)器:POPD dma;直接尋址;直接尋址POPD ind,ARn;間接尋址;間接尋址該指令將棧頂?shù)臄?shù)值送到指令規(guī)定的數(shù)據(jù)存儲(chǔ)器該指令將棧頂?shù)臄?shù)值送到指令規(guī)定的
37、數(shù)據(jù)存儲(chǔ)器單元。堆棧彈出一級(jí),棧頂以下的七級(jí)堆棧單元單元。堆棧彈出一級(jí),棧頂以下的七級(jí)堆棧單元也依次上彈一級(jí)。也依次上彈一級(jí)。堆棧的其他操作與堆棧的其他操作與POP指令相同。指令相同。例2.45 POPD DAT10;(DP=8)指令執(zhí)行前指令執(zhí)行后92h堆棧0AAh堆棧0AAh72h40Ah55h40Ah92h8h44h81h75h32h0AAh72h8h44h81h75h32h22、數(shù)據(jù)存儲(chǔ)器值進(jìn)棧:、數(shù)據(jù)存儲(chǔ)器值進(jìn)棧:PSHD dma;直接尋址;直接尋址PSHD ind,ARn;間接尋址;間接尋址將指令規(guī)定的數(shù)據(jù)存儲(chǔ)器單元內(nèi)容送入棧頂將指令規(guī)定的數(shù)據(jù)存儲(chǔ)器單元內(nèi)容送入棧頂(TOS)。堆棧
38、中低)。堆棧中低7個(gè)單元的值都下推一級(jí)。個(gè)單元的值都下推一級(jí)。最低一級(jí)單元的內(nèi)容將丟失。最低一級(jí)單元的內(nèi)容將丟失。該指令不影響狀態(tài)位。該指令不影響狀態(tài)位。例2.46 PSHD 127;(DP=3:地址為0180h01FFh)指令執(zhí)行前指令執(zhí)行后2h堆棧0h堆棧33h1FFh65h1FFh65h78h99h42h50h0h65h數(shù)據(jù)存儲(chǔ)器數(shù)據(jù)存儲(chǔ)器2h33h78h99h42h50h0h23、累加器低位值進(jìn)棧:、累加器低位值進(jìn)棧:PUSH執(zhí)行該指令后堆棧內(nèi)容下推一級(jí),累加器低位字執(zhí)行該指令后堆棧內(nèi)容下推一級(jí),累加器低位字復(fù)制到硬件堆棧頂部。復(fù)制到硬件堆棧頂部。硬件堆棧是一個(gè)硬件堆棧是一個(gè)8單元的后
39、進(jìn)先出堆棧。如果在單元的后進(jìn)先出堆棧。如果在一次彈出前,發(fā)生一次彈出前,發(fā)生8級(jí)入棧(由級(jí)入棧(由CALA、CALL、CC、PSHD、PUSH、TRAP、INTR或或NMI指令指令引起),則第一個(gè)寫入棧中的數(shù)值將由于連續(xù)入引起),則第一個(gè)寫入棧中的數(shù)值將由于連續(xù)入棧而丟失。棧而丟失。例2.47 PUSH 指令執(zhí)行前指令執(zhí)行后2h堆棧3Fh堆棧54h5hACC7hACC7hCXCX3h0h12h86h54h86h7h2h5h3h0h12h24、存儲(chǔ)輔助寄存器:、存儲(chǔ)輔助寄存器:SAR ARx,dma;直接尋址;直接尋址SAR ARx,ind,ARn;間接尋址;間接尋址將指定輔助寄存器(將指定輔助
40、寄存器(ARx)內(nèi)容存入被尋址數(shù)據(jù))內(nèi)容存入被尋址數(shù)據(jù)存儲(chǔ)器單元。存儲(chǔ)器單元。在間接尋址方式中,在間接尋址方式中,SAR指令同時(shí)也要對(duì)前輔助指令同時(shí)也要對(duì)前輔助寄存器內(nèi)容進(jìn)行修改,但寄存器內(nèi)容進(jìn)行修改,但SAR將在增、減輔助寄將在增、減輔助寄存器內(nèi)容前將輔助寄存器值存入數(shù)據(jù)存儲(chǔ)器。存器內(nèi)容前將輔助寄存器值存入數(shù)據(jù)存儲(chǔ)器。例2.48 SAR AR0,DAT30;(DP=6)指令執(zhí)行前數(shù)據(jù)存儲(chǔ)器指令執(zhí)行后數(shù)據(jù)存儲(chǔ)器37hAR037hAR018 h31Eh37h31Eh例例2.49 SAR AR0,*+;指令執(zhí)行前數(shù)據(jù)存儲(chǔ)器指令執(zhí)行后數(shù)據(jù)存儲(chǔ)器0ARPAR0 401h0ARPAR1402h0h401
41、h401h401h25、存儲(chǔ)、存儲(chǔ)PREG寄存器高位:寄存器高位:SPH dma;SPH ind,ARn該指令將該指令將PREG寄存器按寄存器按PM位所規(guī)定的方式移位所規(guī)定的方式移位后,數(shù)值的高位后,數(shù)值的高16位存儲(chǔ)到數(shù)據(jù)存儲(chǔ)器中。位存儲(chǔ)到數(shù)據(jù)存儲(chǔ)器中。執(zhí)行時(shí),先將執(zhí)行時(shí),先將32位位PREG寄存器復(fù)制到乘積移位寄存器復(fù)制到乘積移位器中,然后在此按器中,然后在此按PM位所規(guī)定的值進(jìn)行移位。位所規(guī)定的值進(jìn)行移位。若選擇右移若選擇右移6位移位方式,則高位進(jìn)行符號(hào)擴(kuò)展,位移位方式,則高位進(jìn)行符號(hào)擴(kuò)展,低位丟失;若選擇左移方式,則高位丟失,地位低位丟失;若選擇左移方式,則高位丟失,地位填填0;若;若
42、PM=00,則移位后數(shù)值的高,則移位后數(shù)值的高16位存入數(shù)位存入數(shù)據(jù)存儲(chǔ)器。據(jù)存儲(chǔ)器。PREG寄存器值和累加器值都不受本指令影響。寄存器值和累加器值都不受本指令影響。例2.50 SPH DAT3;(DP=4;PM=0:不移位)指令執(zhí)行前數(shù)據(jù)存儲(chǔ)器指令執(zhí)行后數(shù)據(jù)存儲(chǔ)器FE079844hPREGFE079844hPREG4567h203hFE07h401h例例2.51 SPH*,AR7;(;(PM=2;左移;左移4位)位)指令執(zhí)行前指令執(zhí)行后6ARPAR6 203h7ARPAR1203h數(shù)據(jù)存儲(chǔ)器數(shù)據(jù)存儲(chǔ)器FE079844hPREGFE079844hPREG4567h203hE079h401h26
43、、存儲(chǔ)、存儲(chǔ)P寄存器低位:寄存器低位:SPL dma;SPL ind,ARn該指令將該指令將PREG寄存器按寄存器按PM位所規(guī)定的方式移位所規(guī)定的方式移位后,數(shù)值的低位后,數(shù)值的低16位存儲(chǔ)到數(shù)據(jù)存儲(chǔ)器中。位存儲(chǔ)到數(shù)據(jù)存儲(chǔ)器中。執(zhí)行時(shí),先將執(zhí)行時(shí),先將32位位PREG寄存器復(fù)制到乘積移位寄存器復(fù)制到乘積移位器中,然后在此按器中,然后在此按PM位所規(guī)定的值進(jìn)行移位。位所規(guī)定的值進(jìn)行移位。若選擇右移若選擇右移6位方式,則高位進(jìn)行符號(hào)擴(kuò)展,低位方式,則高位進(jìn)行符號(hào)擴(kuò)展,低位丟失;若執(zhí)行左移方式,則高位丟失,低位填位丟失;若執(zhí)行左移方式,則高位丟失,低位填0;若;若PM=00,則移位不發(fā)生。移位后數(shù)值
44、的低,則移位不發(fā)生。移位后數(shù)值的低16位存入數(shù)據(jù)存儲(chǔ)器。位存入數(shù)據(jù)存儲(chǔ)器。PREG寄存器和累加器值都不受本指令影響。寄存器和累加器值都不受本指令影響。例2.52 SPL DAT5;(DP=4;PM=2:左移4位)指令執(zhí)行前數(shù)據(jù)存儲(chǔ)器指令執(zhí)行后數(shù)據(jù)存儲(chǔ)器FE079844hPREGFE079844hPREG4567h203h8440h401h27、存儲(chǔ)長(zhǎng)立即數(shù)值至數(shù)據(jù)存儲(chǔ)器:、存儲(chǔ)長(zhǎng)立即數(shù)值至數(shù)據(jù)存儲(chǔ)器:SPLK#lk dma;直接尋址;直接尋址SPL ind,ARn;間接尋址;間接尋址SPLK指令允許將一個(gè)指令允許將一個(gè)16位的數(shù)值此惡如任何一位的數(shù)值此惡如任何一個(gè)數(shù)據(jù)存儲(chǔ)單元。個(gè)數(shù)據(jù)存儲(chǔ)單元。
45、該指令不影響狀態(tài)位。該指令不影響狀態(tài)位。例2.53 SPLK#7FFFh,DAT3;(DP=6)指令執(zhí)行前數(shù)據(jù)存儲(chǔ)器指令執(zhí)行后數(shù)據(jù)存儲(chǔ)器FE07h303h7FFFh303h28、存儲(chǔ)狀態(tài)寄存器:、存儲(chǔ)狀態(tài)寄存器:SST#m,dma;直接尋址;直接尋址SST#m,ind,ARn;間接尋址;間接尋址該指令將指定的狀態(tài)寄存器該指令將指定的狀態(tài)寄存器ST0或或ST1存入數(shù)據(jù)存儲(chǔ)器。存入數(shù)據(jù)存儲(chǔ)器。若若m=0,則選擇,則選擇ST0;若;若m=1,則選擇,則選擇ST1。在直接尋址方式中,不管在直接尋址方式中,不管ST0中的數(shù)據(jù)頁指針(中的數(shù)據(jù)頁指針(DP)為)為何值,指定的狀態(tài)寄存器總是被存入第何值,指定
46、的狀態(tài)寄存器總是被存入第0頁。雖然處理頁。雖然處理器自動(dòng)訪問第器自動(dòng)訪問第0頁,但頁,但DP不會(huì)被修改。這就允許在不會(huì)被修改。這就允許在DP不被修改的情況下存儲(chǔ)不被修改的情況下存儲(chǔ)ST0。在第。在第0頁內(nèi)的特定存儲(chǔ)單頁內(nèi)的特定存儲(chǔ)單元由指令給出。元由指令給出。在間接尋址方式中,存儲(chǔ)地址從被選的輔助寄存器獲取。在間接尋址方式中,存儲(chǔ)地址從被選的輔助寄存器獲取。從而,指定的狀態(tài)寄存器內(nèi)容可被存儲(chǔ)至數(shù)據(jù)存儲(chǔ)器中從而,指定的狀態(tài)寄存器內(nèi)容可被存儲(chǔ)至數(shù)據(jù)存儲(chǔ)器中的任一頁的地址。的任一頁的地址。例2.54 SST#0,96;直接尋址,自動(dòng)訪問數(shù)據(jù)頁0指令執(zhí)行前數(shù)據(jù)存儲(chǔ)器指令執(zhí)行后數(shù)據(jù)存儲(chǔ)器A408hST0
47、A408hST00Ah60hA408h60h例例2.55 SST#1,*,AR7;指令執(zhí)行前指令執(zhí)行后0ARPAR0 300h7ARPAR1300h數(shù)據(jù)存儲(chǔ)器數(shù)據(jù)存儲(chǔ)器2580hST12580hST10h300h2580h300h29、讀表:、讀表:TBLR dma;直接尋址;直接尋址TBLR ind,ARn;間接尋址;間接尋址TBLR指令把程序存儲(chǔ)器單元中的一個(gè)字,傳送到由指指令把程序存儲(chǔ)器單元中的一個(gè)字,傳送到由指令給定的數(shù)據(jù)存儲(chǔ)器單元。令給定的數(shù)據(jù)存儲(chǔ)器單元。程序存儲(chǔ)器單元地址由累加器的低程序存儲(chǔ)器單元地址由累加器的低16位位ACC(15:0)定義。該操作執(zhí)行完從程序存儲(chǔ)器讀后,緊接著向
48、數(shù)據(jù)定義。該操作執(zhí)行完從程序存儲(chǔ)器讀后,緊接著向數(shù)據(jù)存儲(chǔ)器寫。存儲(chǔ)器寫。當(dāng)與重復(fù)指令當(dāng)與重復(fù)指令RPT一同使用時(shí),一同使用時(shí),TBLR便成為但周期指便成為但周期指令。該指令執(zhí)行前,會(huì)將令。該指令執(zhí)行前,會(huì)將PC加加1并保存到微堆棧;然后并保存到微堆棧;然后將由累加器的低將由累加器的低16位位ACC(15:0)定義的表的首地址)定義的表的首地址裝入到程序計(jì)數(shù)器裝入到程序計(jì)數(shù)器PC;以后每個(gè)周期;以后每個(gè)周期PC自動(dòng)加自動(dòng)加1,RPTC自動(dòng)減自動(dòng)減1,該操作持續(xù)到,該操作持續(xù)到RPTC=0為止;當(dāng)為止;當(dāng)RPTC=0時(shí),保存在微堆棧時(shí),保存在微堆棧PC值會(huì)自動(dòng)彈回到值會(huì)自動(dòng)彈回到PC中,中,使得下
49、一條指令能正常運(yùn)行。使得下一條指令能正常運(yùn)行。該指令不影響狀態(tài)位。該指令不影響狀態(tài)位。例2.56 TBLR DAT6(DP=4)指令執(zhí)行前程序存儲(chǔ)器指令執(zhí)行后程序存儲(chǔ)器23hACC23hACC306h23h306h23h數(shù)據(jù)存儲(chǔ)器數(shù)據(jù)存儲(chǔ)器75h206h306h324h例例2.57 TBLR*,AR7;指令執(zhí)行前指令執(zhí)行后0ARPAR0 300h7ARPAR0300h程序存儲(chǔ)器程序存儲(chǔ)器24hACC24hACC307h23h307h23h數(shù)據(jù)存儲(chǔ)器數(shù)據(jù)存儲(chǔ)器75h300h307h300h30、寫表:、寫表:TBLW dma;TBLW ind,ARn;TBLW指令把數(shù)據(jù)存儲(chǔ)器單元中的一個(gè)字傳送至
50、程序數(shù)指令把數(shù)據(jù)存儲(chǔ)器單元中的一個(gè)字傳送至程序數(shù)據(jù)存儲(chǔ)器。據(jù)存儲(chǔ)器。數(shù)據(jù)存儲(chǔ)器地址由指令給定,程序存儲(chǔ)器地址由累加器數(shù)據(jù)存儲(chǔ)器地址由指令給定,程序存儲(chǔ)器地址由累加器的低的低16位指定。該指令首先完成從數(shù)據(jù)存儲(chǔ)器中讀,緊位指定。該指令首先完成從數(shù)據(jù)存儲(chǔ)器中讀,緊接著向程序存儲(chǔ)器寫。接著向程序存儲(chǔ)器寫。當(dāng)與重復(fù)指令當(dāng)與重復(fù)指令RPT一同使用時(shí),一同使用時(shí),TBLW便成為單周期指便成為單周期指令。該指令執(zhí)行前,會(huì)將令。該指令執(zhí)行前,會(huì)將PC加加1并保存到微堆棧,然后并保存到微堆棧,然后將由累加器的低將由累加器的低16位位ACC(15:0)定義的表的首地址)定義的表的首地址裝入到程序計(jì)數(shù)器裝入到程序計(jì)
51、數(shù)器PC;以后每個(gè)周期;以后每個(gè)周期PC自動(dòng)加自動(dòng)加1,RPTC自動(dòng)減自動(dòng)減1,該操作持續(xù)到,該操作持續(xù)到RPTC=0為止;當(dāng)為止;當(dāng)RPTC=0時(shí),保存在微堆棧時(shí),保存在微堆棧PC值會(huì)自動(dòng)彈回到值會(huì)自動(dòng)彈回到PC中,中,使得下一條指令能正常運(yùn)行。使得下一條指令能正常運(yùn)行。該指令不影響狀態(tài)位。該指令不影響狀態(tài)位。例2.56 TBLW DAT5(DP=32)(地址為1000h107Fh)指令執(zhí)行前程序存儲(chǔ)器指令執(zhí)行后程序存儲(chǔ)器257hACC257hACC4339h1005h4339h1005h數(shù)據(jù)存儲(chǔ)器數(shù)據(jù)存儲(chǔ)器306h257h4339h257h例例2.57 TBLW*;指令執(zhí)行前指令執(zhí)行后6ARPAR6 1006h6ARPAR01006h程序存儲(chǔ)器程序存儲(chǔ)器258hACC258hACC4340h1006h4340h1006h數(shù)據(jù)存儲(chǔ)器數(shù)據(jù)存儲(chǔ)器307h258h4340h258h
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 6.煤礦安全生產(chǎn)科普知識(shí)競(jìng)賽題含答案
- 2.煤礦爆破工技能鑒定試題含答案
- 3.爆破工培訓(xùn)考試試題含答案
- 2.煤礦安全監(jiān)察人員模擬考試題庫試卷含答案
- 3.金屬非金屬礦山安全管理人員(地下礦山)安全生產(chǎn)模擬考試題庫試卷含答案
- 4.煤礦特種作業(yè)人員井下電鉗工模擬考試題庫試卷含答案
- 1 煤礦安全生產(chǎn)及管理知識(shí)測(cè)試題庫及答案
- 2 各種煤礦安全考試試題含答案
- 1 煤礦安全檢查考試題
- 1 井下放炮員練習(xí)題含答案
- 2煤礦安全監(jiān)測(cè)工種技術(shù)比武題庫含解析
- 1 礦山應(yīng)急救援安全知識(shí)競(jìng)賽試題
- 1 礦井泵工考試練習(xí)題含答案
- 2煤礦爆破工考試復(fù)習(xí)題含答案
- 1 各種煤礦安全考試試題含答案