版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第3章
TMS320C24X尋址方式和指令系統(tǒng)第3章
TMS320C24X尋址方式和指令系統(tǒng)1
F240X系列DSP芯片采用與TMS320C240相同的核,所以兩者的指令系統(tǒng)是相同的。F240X系列DSP芯片采用與TMS320C240相同的核23.1尋址方式F240X指令集采用3種基本的存儲(chǔ)器尋址方式:立即尋址方式;直接尋址方式;間接尋址方式。3.1尋址方式F240X指令集采用3種基本的存儲(chǔ)器尋址方式33.1.1立即尋址方式指令中所需的常數(shù)作為指令的操作數(shù)直接給出。立即尋址包括:短立即尋址和長立即尋址。短立即尋址指令:有一個(gè)8、9、13位的常數(shù)作操作數(shù)。短立即尋址指令為一個(gè)單指令字,并將常數(shù)嵌在該指令中。長立即尋址指令:有一個(gè)16位的常數(shù)作操作數(shù),所以要求兩個(gè)指令字。16位常數(shù)作為第二條指令發(fā)送,常數(shù)可以是一個(gè)絕對常數(shù)也可以是一個(gè)二進(jìn)制補(bǔ)碼。3.1.1立即尋址方式指令中所需的常數(shù)作為指令的操作數(shù)直接4
采用短立即尋址的RPT指令RPT#49;將緊跟RPT指令后的那條指令執(zhí)行50次。指令寄存器中的內(nèi)容:10111011001100011514131211109876543210采用立即尋址的RPT代碼8位常數(shù)=49
立即操作數(shù)作為RPT指令字的一部分。立即操作數(shù)以符號(hào)#為前綴。采用短立即尋址的RPT指令RPT#49;將緊跟R5長立即尋址的ADD指令A(yù)DD#65534,2;將數(shù)據(jù)65534左移兩位后,再將結(jié)果加至累加器。第一條指令字:10111111100100101514131211109876543210采用長立即尋址的ADD代碼Shift=2
第二條指令字:1111111111111110151413121110987654321016位常數(shù)=65534=FFFEh立即操作數(shù)包含在第二條指令字中,指令寄存器順次接收兩個(gè)指令字的16位值。長立即尋址的ADD指令A(yù)DD#65534,63.1.2直接尋址方式
在直接尋址方式中,指令寄存器的內(nèi)容為:位15-8: 用于指示指令類型(例如,ADD)和指令所訪問的數(shù)據(jù)值的移位信息。位7: 直接/間接指示符。 0表示為直接尋址; 1表示為間接尋址。位6-0: 指示該指令所訪問的數(shù)據(jù)存儲(chǔ)器地址的偏移量。3.1.2直接尋址方式在直接尋址方式中,指令寄存器的內(nèi)容71.用直接尋址方式產(chǎn)生數(shù)據(jù)地址處理器將頁指針DP值:提供地址的9位高有效位,即頁碼數(shù)。指令寄存器中的7位最低有效位:提供地址的7位最低有效值,即偏移量。16位地址1.用直接尋址方式產(chǎn)生數(shù)據(jù)地址處理器將頁指針DP值:提供地8
TI公司的TMS320系列芯片將64K的數(shù)據(jù)存儲(chǔ)器分為512頁,每頁128字稱為數(shù)據(jù)頁。當(dāng)前數(shù)據(jù)頁由狀態(tài)寄存器ST0中的9位數(shù)據(jù)頁指針(DP)值決定。DP值偏移量數(shù)據(jù)存儲(chǔ)器0000000000000000..1111111第0頁:0000h-007Fh0000000010000000..1111111第1頁:0080h-00FFh0000000100000000..1111111第2頁:0100h-017Fh........1111111110000000..1111111第511頁:FF80h-FFFFhTI公司的TMS320系列芯片將64K的數(shù)據(jù)存儲(chǔ)器分為5192.使用直接尋址方式
處理器用頁指針DP來尋找數(shù)據(jù)頁,用指令寄存器的低7位有效位來尋址該頁上的特定地址。(1)設(shè)置數(shù)據(jù)頁:將數(shù)據(jù)頁(0-511)裝入DP。DP可由LDP指令裝載,也可由向ST0裝載的任何指令來裝載DP。LDP指令直接裝載DP,并且不影響ST0的其它位。例:LDP #32;設(shè)置當(dāng)前數(shù)據(jù)頁為32(1000h-107Fh)注意:在任何程序中都要初始化DP。因?yàn)樯想姾蟛欢xDP;復(fù)位不初始化DP。2.使用直接尋址方式處理器用頁指針DP來尋找數(shù)據(jù)頁,用指10(2)指明偏移量:7位偏移量由指令的操作數(shù)提供。例:如果希望ADD指令取當(dāng)前數(shù)據(jù)頁的第5個(gè)地址處的數(shù)據(jù):ADD 5H;將當(dāng)前數(shù)據(jù)頁中偏移量為5h處的數(shù)據(jù)加至累加器說明采用直接尋址時(shí),不必每條指令前都要設(shè)置數(shù)據(jù)頁??傊?,必須保證要訪問新的數(shù)據(jù)頁之前改變DP。(2)指明偏移量:7位偏移量由指令的操作數(shù)提供。例:說明113.直接尋址示例
采用直接尋址的ADD指令(移位0至15位)LDP #4 ;數(shù)據(jù)頁設(shè)為4(0200h-027Fh)ADD 9H,5 ;將數(shù)據(jù)地址0209h處的內(nèi)容左移5位后加至累加器采用直接尋址的ADDC指令LDP #500 ;數(shù)據(jù)頁設(shè)為500(FA00h-FA7Fh)ADDC8H ;數(shù)據(jù)地址FA08h處內(nèi)容和進(jìn)位值(C)被加至累加器3.直接尋址示例采用直接尋址的ADD指令(移位0至15位123.1.3間接尋址方式
8個(gè)輔助寄存器(AR0-AR7)為處理器提供間接尋址的16位地址,可以訪問64K數(shù)據(jù)存儲(chǔ)器空間的任意單元。3.1.3間接尋址方式8個(gè)輔助寄存器(AR0-AR7)13間接尋址操作碼格式:指令寄存器的內(nèi)容位15-8: 指示指令類型(例如,ADD)和指令所訪問的數(shù)據(jù)值的移位信息位7: 直接/間接指示符。 0表示為直接尋址; 1表示為間接尋址。位6-4: 輔助寄存器更新代碼ARU,決定當(dāng)前輔助寄存器是否以及如何進(jìn)行增或減。位3: 下一個(gè)輔助寄存器指示符N,說明指令是否改變ARP值。 N=0,ARP內(nèi)容保持不變; N=1,下一個(gè)輔助寄存器NAR的內(nèi)容裝入ARP。位2-0: 下一個(gè)輔助寄存器的值,包括下一個(gè)輔助寄存器的值。若N=1,則NAR被裝入ARP。
間接尋址操作碼格式:指令寄存器的內(nèi)容位15-8: 指示指令142.當(dāng)前輔助寄存器
通過狀態(tài)寄存器ST0中的3位輔助寄存器指針(ARP)來指定8個(gè)輔助寄存器(AR0~AR7)的某一個(gè)作為當(dāng)前輔助寄存器(AR)。在執(zhí)行指令的過程中,當(dāng)前AR的內(nèi)容作為被訪問數(shù)據(jù)存儲(chǔ)器的地址。ARP可由MAR指令、LST指令或任何支持間接尋址的指令來裝載。2.當(dāng)前輔助寄存器通過狀態(tài)寄存器ST0中的3位輔助寄存器153.間接尋址選項(xiàng)
TMS320C24X提供4種間接尋址選項(xiàng):不增不減;增1或減1;增加或減去索引量;增加或減去索引量且反向進(jìn)位。3.間接尋址選項(xiàng)TMS320C24X提供4種間接尋址選項(xiàng)16選項(xiàng)操作數(shù)例子不增不減*LACC*用當(dāng)前AR所指的數(shù)據(jù)存儲(chǔ)器地址中內(nèi)容裝載累加器增1*+LACC*+用當(dāng)前AR所指的數(shù)據(jù)存儲(chǔ)器地址中內(nèi)容裝載累加器,然后向當(dāng)前AR內(nèi)容加1減1*-LACC*-用當(dāng)前AR所指的數(shù)據(jù)存儲(chǔ)器地址中內(nèi)容裝載累加器,然后從當(dāng)前AR內(nèi)容減1加上索引量*0+LACC*0+用當(dāng)前AR所指的數(shù)據(jù)存儲(chǔ)器地址中內(nèi)容裝載累加器,然后向當(dāng)前AR內(nèi)容加上AR0的內(nèi)容減去索引量*0-LACC*0-用當(dāng)前AR所指的數(shù)據(jù)存儲(chǔ)器地址中內(nèi)容裝載累加器,然后從當(dāng)前AR的內(nèi)容減去AR0的內(nèi)容加上索引量,反向進(jìn)位*BRO+LACC*BRO+用當(dāng)前AR所指的數(shù)據(jù)存儲(chǔ)器地址中內(nèi)容裝載累加器,然后向當(dāng)前AR內(nèi)容加上AR0的內(nèi),該加法采用反向進(jìn)位傳送減去索引量,反向進(jìn)位*BRO-LACC*BRO+用當(dāng)前AR所指的數(shù)據(jù)存儲(chǔ)器地址中內(nèi)容裝載累加器,然后從當(dāng)前AR內(nèi)容減去AR0的內(nèi)容,該減法采用反向進(jìn)位傳送選項(xiàng)操作數(shù)例子不增不減*LACC*用當(dāng)前174.修改輔助寄存器內(nèi)容
用于修改輔助寄存器(AR)內(nèi)容的特定指令有:LAR、ADRK、SBRK和MAR。LAR指令裝載AR;ADRK和SUBRK分別用來從AR中加上或減去一個(gè)立即數(shù);MAR指令可使AR值增加/減少1或增加/減少一個(gè)索引量。另外任何支持間接尋址操作數(shù)的指令都可修改輔助寄存器。4.修改輔助寄存器內(nèi)容用于修改輔助寄存器(AR)內(nèi)容的特185.輔助寄存器
除了更新當(dāng)前輔助寄存器的內(nèi)容以外,某些指令還可以指明下一個(gè)輔助寄存器AR。當(dāng)本條指令執(zhí)行完之后,下一個(gè)輔助寄存器AR便成為當(dāng)前輔助寄存器AR。例:選擇新的當(dāng)前輔助寄存器ARMAR *,AR1 ;將當(dāng)前輔助寄存器AR設(shè)為AR1LACL*+,AR2 ;用輔助寄存器AR1所指向的地址中內(nèi)容裝載累加器的低16位,AR1內(nèi)容加1,使AR2為當(dāng)前輔助寄存器ARSACL *+ ;將累加器的低16位存于AR2所指向的地址單元,AR2內(nèi)容加1。5.輔助寄存器除了更新當(dāng)前輔助寄存器的內(nèi)容以外,某些指193.2指令集
根據(jù)指令的功能劃分為:累加器、算數(shù)和邏輯指令表;輔助寄存器和數(shù)據(jù)頁指針指令表;TREG、PREG和乘法指令表;轉(zhuǎn)移指令表;控制指令表;I/O和存儲(chǔ)器指令表。3.2指令集根據(jù)指令的功能劃分為:累加器、算數(shù)和邏輯20指令表符號(hào)的意義
ACC 累加器。AR 當(dāng)前輔助寄存器。ARX 用于LAR和SAR指令的3位數(shù)據(jù)值,指定操作的輔助寄存器。BITX 4位數(shù)值,用于指定數(shù)據(jù)存儲(chǔ)器中的哪一位將被BIT指令所測試。指令表符號(hào)的意義ACC 累加器。21CM 2位數(shù)值,CMPR指令執(zhí)行CM值所聲明的比較: 若CM=00,測試:(當(dāng)前AR)=(AR0)?; 若CM=01,測試:(當(dāng)前AR)<(AR0)?; 若CM=10,測試:(當(dāng)前AR)>(AR0)?; 若CM=11,測試:(當(dāng)前AR)≠(AR0)?。Shift 4位移位值。TP 用于條件執(zhí)行指令的2位數(shù)值,代表如下4種條件: 若BIO引腳為低,則TP=00; 若TC位=1, 則TP=01; 若TC位=0, 則TP=10; 若無條件, 則TP=11。CM 2位數(shù)值,CMPR指令執(zhí)行CM值所聲明的比較:22說明表中指令按字母順序排列;表中給出了執(zhí)行每條指令所需要的周期數(shù);所有指令都假設(shè)從內(nèi)部程序存儲(chǔ)器和內(nèi)部數(shù)據(jù)存儲(chǔ)器中執(zhí)行;指令的周期數(shù)適用于單指令執(zhí)行,不適用于重復(fù)方式。說明表中指令按字母順序排列;233.3典型指令說明申明直接尋址時(shí)一律認(rèn)為DP指針已經(jīng)指向要尋址的數(shù)據(jù)區(qū),就不用再重新裝載DP;而間接尋址時(shí)則認(rèn)為ARP已經(jīng)指到當(dāng)前輔助寄存器AR,而也不用再單獨(dú)聲明當(dāng)前AR的值。3.3典型指令說明申明24ADD指令
對累加器的加操作指令A(yù)DD:將數(shù)據(jù)存儲(chǔ)器單元的數(shù)或立即數(shù)左移后加至累加器。結(jié)果存在累加器中。移位時(shí),低位填0,高位在SXM=1時(shí)為符號(hào)擴(kuò)展,在SXM=0時(shí)填0。尋址短立即數(shù)時(shí),加操作不受SXM的影響,且不能重復(fù)執(zhí)行。ADD指令對累加器的加操作指令A(yù)DD:將數(shù)據(jù)存儲(chǔ)器單元的數(shù)25ADD 5,2 ;(DP=4:200-27Fh)將數(shù)據(jù)存儲(chǔ)器單元0205h的內(nèi)容左移2位之后與ACC相加,結(jié)果存在ACCADD *+,2,AR0 ;(ARP=4,AR4=282)將數(shù)據(jù)存儲(chǔ)器單元282的內(nèi)容左移2位之后加至ACC,結(jié)果存在ACC,指令執(zhí)行后AR4=283,ARP=0ADD #2 ;短立即數(shù)2與ACC相加,結(jié)果存在ACCADD #1111h,2 ;長立即數(shù)1111h左移2位后與ACC相加,結(jié)果存在ACCADD 5,2 ;(DP=4:200-27Fh)將數(shù)據(jù)262.AND指令和累加器邏輯“與”操作指令A(yù)ND:實(shí)現(xiàn)被尋址單元的內(nèi)容和累加器的邏輯“與”操作,以及長立即數(shù)經(jīng)過移位之后和連接器進(jìn)行邏輯“與”操作。邏輯“與”操作之后的結(jié)果保存在累加器中。2.AND指令和累加器邏輯“與”操作指令A(yù)ND:實(shí)現(xiàn)被尋27AND 16 ;(DP=4:200-27Fh)將數(shù)據(jù)存儲(chǔ)器單元0210h的內(nèi)容與ACC的內(nèi)容進(jìn)行邏輯“與”操作,結(jié)果保留在ACC中。AND * ;(ARP=0,AR0=301h)將數(shù)據(jù)存儲(chǔ)器單元0301h的內(nèi)容與ACC的內(nèi)容進(jìn)行邏輯“與”操作,結(jié)果保留在ACC中。AND #00FFh,4 ;將立即數(shù)#0FFh左移4位之后和ACC邏輯“與”,結(jié)果保留在ACC中。AND 16 ;(DP=4:200-27Fh)將數(shù)283.BANZ指令輔助寄存器不等于零轉(zhuǎn)移指令BANZ:若當(dāng)前輔助寄存器內(nèi)容不為零,則控制轉(zhuǎn)移至指定的程序存儲(chǔ)器地址,否則控制轉(zhuǎn)移到下一條指令。當(dāng)前AR的缺省修改為減1。該指令可用來實(shí)現(xiàn)程序的循環(huán)執(zhí)行。3.BANZ指令輔助寄存器不等于零轉(zhuǎn)移指令BANZ:若當(dāng)前29
MAR *,AR0 ;ARP指向AR0。
LAR AR1,#3 ;AR1中裝入3。
LAR AR0,#60h ;AR0中裝入60h。P1ADD *+,AR1 ;將AR0所指的數(shù)加到ACC,并將AR0的值增1,ARP指向AR1。
BANZ P1,AR0 ;若AR1≠0則循環(huán)。 MAR *,AR0 ;ARP指向AR0。30BCND指令條件轉(zhuǎn)移指令BCND:當(dāng)所規(guī)定的條件符合時(shí),控制轉(zhuǎn)移到指定的程序存儲(chǔ)器地址。BCND P1,LEQ ;若ACC的內(nèi)容小于等于零時(shí),程序轉(zhuǎn)到P1處開始執(zhí)行。BCND指令條件轉(zhuǎn)移指令BCND:當(dāng)所規(guī)定的條件符合時(shí),控制315.BIT指令位測試指令BIT:將數(shù)據(jù)存儲(chǔ)器中的指定位的值復(fù)制到狀態(tài)寄存器ST1的TC位。將該指令和BCND指令結(jié)合可判斷指定位的狀態(tài),并根據(jù)該位的狀態(tài)來控制程序的轉(zhuǎn)移。BIT 0h,15 ;(DP=6)測試300h處的最低有效位。BCND P1,TC ;若該位為1,則程序轉(zhuǎn)到P1處執(zhí)行。5.BIT指令位測試指令BIT:將數(shù)據(jù)存儲(chǔ)器中的指定位的32BLDD指令數(shù)據(jù)存儲(chǔ)器至數(shù)據(jù)存儲(chǔ)器間的塊傳送BLDD:把指定的數(shù)據(jù)存儲(chǔ)器源地址中的字拷貝到指定的數(shù)據(jù)存儲(chǔ)單元目的地址中。源地址和目的地址可由長立即數(shù)地址或數(shù)據(jù)存儲(chǔ)器地址指定。注意:如果源地址為長立即數(shù),則目的地址只能為直接或間接;如果源地址為直接或間接,則目的地址只能為長立即數(shù)。BLDD指令數(shù)據(jù)存儲(chǔ)器至數(shù)據(jù)存儲(chǔ)器間的塊傳送BLDD:把指33說明該指令不能用于存儲(chǔ)器映射的寄存器。使用RPT指令重復(fù)BLDD操作期間中斷被禁止。當(dāng)BLDD指令重復(fù)使用時(shí),由長立即數(shù)指定的源(目的)地址保存在PC中,每次重復(fù)過程中PC增1,從而可以訪問一串源(目的)地址。若使用間接尋址方式來指定目的(源)地址,則在每次重復(fù)過程中,可以訪問一個(gè)新目的(源)地址。若使用直接尋址方式,所指定的源(目的)地址是個(gè)常數(shù),在重復(fù)過程中不會(huì)被修改。說明該指令不能用于存儲(chǔ)器映射的寄存器。34BLDD#300h,20h ;(DP=6:300h-37Fh)將數(shù)據(jù)存儲(chǔ)器單元300h的內(nèi)容復(fù)制到數(shù)據(jù)存儲(chǔ)器320h。BLDD*+,#321h,AR3 ;執(zhí)行前:ARP=2,(AR2)=301h,(301h)=01h,(321h)=0Fh執(zhí)行后:ARP=3,(AR2)=302h,(301h)=01h,(321h)=01hBLDD#300h,20h ;(DP=6:300h-3735CLRC指令清除控制位指令CLRC:指定的控制位清除為0。指定的控制位為:C 狀態(tài)寄存器ST1的進(jìn)位位CNF 狀態(tài)寄存器ST1的RAM配置控制位INTM 狀態(tài)寄存器ST0的中斷方式位OVM 狀態(tài)寄存器ST0的溢出方式位SXM 狀態(tài)寄存器ST1的符號(hào)擴(kuò)展方式位TC 狀態(tài)寄存器ST1的測試/控制標(biāo)志位XF 狀態(tài)寄存器ST1的XF引腳狀態(tài)位CLRC指令清除控制位指令CLRC:指定的控制位清除為0。36CLRC TC ;將ST1的TC位清零。注:用LST指令也可裝入ST0和ST1寄存器。CLRC TC ;將ST1的TC位清零。注:用LST指令也37IN指令從端口輸入數(shù)據(jù)指令I(lǐng)N:從一個(gè)I/O單元讀一個(gè)16位值到指定的數(shù)據(jù)存儲(chǔ)器單元。IN #7,1000h ;(DP=6)從端口地址為1000h的外設(shè)讀數(shù)據(jù),并將數(shù)據(jù)存于數(shù)據(jù)存儲(chǔ)器單元307h。IN *,5h ;從端口地址為0005h的外設(shè)讀數(shù)據(jù),并將數(shù)據(jù)存至當(dāng)前輔助寄存器所指定的數(shù)據(jù)存儲(chǔ)器單元中。IN指令從端口輸入數(shù)據(jù)指令I(lǐng)N:從一個(gè)I/O單元讀一個(gè)16位38LACC指令裝載累加器指令LACC:將指定的數(shù)據(jù)存儲(chǔ)器單元的內(nèi)容或一個(gè)16位常量左移后送入累加器。移位時(shí),低位填0,高位在SXM=1時(shí)為符號(hào)擴(kuò)展,在SXM=0時(shí)填0。LACC 5,4 ;(DP=8:400-47fh)將數(shù)據(jù)存儲(chǔ)器單元0405h的內(nèi)容左移4位之后送到ACC。LACC *,4 ;(ARP=2,AR2=305h)將數(shù)據(jù)存儲(chǔ)器單元0305h的內(nèi)容左移4位之后送到ACC。LACC #1234h,2 ;將長立即數(shù)1234h左移2位之后送到ACC。LACC指令裝載累加器指令LACC:將指定的數(shù)據(jù)存儲(chǔ)器單元的39LACL指令裝載累加器低位并清零累加器高位指令LACL:將被尋址數(shù)據(jù)存儲(chǔ)器單元的內(nèi)容或者被零擴(kuò)展的8位常量裝入累加器的低16位,累加器的高半部分填零。注意數(shù)據(jù)被作為無符號(hào)的16位數(shù)來處理,而非二進(jìn)制補(bǔ)碼。無論SXM為何狀態(tài),該指令的操作數(shù)抑制符號(hào)擴(kuò)展。LACL指令裝載累加器低位并清零累加器高位指令LACL:將被40LACL #10h ;將10h裝載入ACC。LACL 1 ;(DP=6:300h-37Fh)將數(shù)據(jù)存儲(chǔ)器單元301h的內(nèi)容裝載入ACCLACL *-,AR4 ;(ARP=0,AR0=301h,(301h)=2)將數(shù)據(jù)存儲(chǔ)器單元301h的內(nèi)容裝載入ACC,指令執(zhí)行完后AR0=0300h,ARP=4。LACL #10h ;將10h裝載入ACC。41MAR指令和LAR指令修改輔助寄存器指令MAR:修改輔助寄存器ARP的值,該指令在直接尋址方式下相當(dāng)于NOP指令。裝載輔助寄存器指令LAR:將數(shù)據(jù)存儲(chǔ)器的值裝載入輔助寄存器。LAR和SAR指令可在子程序調(diào)用或中斷處理時(shí)裝載和存儲(chǔ)輔助寄存器,從而實(shí)現(xiàn)在中斷或子程序調(diào)用時(shí)上下文的保存。MAR指令和LAR指令修改輔助寄存器指令MAR:修改輔助寄存42MAR *,AR1 ;指定當(dāng)前輔助寄存器為AR1。MAR *+,AR5 ;將當(dāng)前輔助寄存器(AR1)增1,并向ARP裝入5。LAR AR1,5H ;(DP=4:0200h-027fh)將數(shù)據(jù)存儲(chǔ)器地址0205h的內(nèi)容裝入AR1寄存器。LAR AR1,#50H ;將短立即數(shù)0050h裝入AR1寄存器。LAR AR1,#1234H ;將長立即數(shù)1234h裝入AR1寄存器。MAR *,AR1 ;指定當(dāng)前輔助寄存器為AR1。43LDP指令裝載數(shù)據(jù)頁指針指令LDP:將被尋址數(shù)據(jù)存儲(chǔ)器單元的9位最低有效位或9位立即數(shù)轉(zhuǎn)入狀態(tài)寄存器ST0的數(shù)據(jù)頁指針DP。LDP 5 ;(DP=5:地址0280h-02FFh)。DP也可由LST指令裝入。LDP指令裝載數(shù)據(jù)頁指針指令LDP:將被尋址數(shù)據(jù)存儲(chǔ)器單元的44LST指令裝載狀態(tài)寄存器指令LST:將被尋址數(shù)據(jù)存儲(chǔ)器單元中的值裝入指定的狀態(tài)寄存器(ST0或ST1)。MAR *,AR0LST #0,*,AR1 ;將輔助寄存器AR0所尋址的數(shù)據(jù)存儲(chǔ)器單元內(nèi)容送入狀態(tài)寄存器ST0,但不包括INTM位。盡管指定了下一個(gè)ARP值,但該值被忽略,ARP不送入ARB。LST #1,0h ;(DP=6:300h-37Fh)將數(shù)據(jù)存儲(chǔ)器單元300h的內(nèi)容裝入ST1。LST指令用于子程序調(diào)用和中斷后恢復(fù)狀態(tài)寄存器。LST指令裝載狀態(tài)寄存器指令LST:將被尋址數(shù)據(jù)存儲(chǔ)器單元45注意(1)LST#0操作向ARP裝入新值,但并不影響ST1寄存器中的ARB字段。(2)LST#1操作中,送入ARB的值也被送入ARP。(3)若在間接尋址方式下用一個(gè)操作數(shù)來指定下一個(gè)AR值,則該操作數(shù)將被忽略,與之替代的是將被尋址數(shù)據(jù)存儲(chǔ)器單元所含的3位最高有效位送入ARP。(4)狀態(tài)寄存器中的保留位讀出總為1。寫這些位不起作用。注意(1)LST#0操作向ARP裝入新值,但并不影響ST46LTD指令裝載TREG寄存器指令LTD:將數(shù)據(jù)寄存單元的內(nèi)容加載到TREG。按PM狀態(tài)位指定的方式對乘積寄存器的內(nèi)容進(jìn)行移位,并把移位后的值與ACC相加,結(jié)果放在ACC中。指定的數(shù)據(jù)存儲(chǔ)單元的內(nèi)容拷貝到地址加1的數(shù)據(jù)存儲(chǔ)單元。LTD指令裝載TREG寄存器指令LTD:將數(shù)據(jù)寄存單元的內(nèi)容47LTD 123 ;(DP=5:0280-02FFh,PM=0:乘積不移位)執(zhí)行前:(2FBh)=0022h,(2FCh)=0000h,(TREG)=0003h,(PREG)=000Fh,(ACC)=0005h。執(zhí)行后:(2FBh)=0022h,(2FCh)=0022h,(TREG)=0022h,(PREG)=000Fh,(ACC)=14h。LTD *,AR3 ;(PM=0)執(zhí)行前:ARP=1,(AR1)=02FBh,(2FBh)=0022h,(2FCh)=0000h,(TREG)=0003h,(PREG)=000Fh,(ACC)=0005h。執(zhí)行后:ARP=3,(AR1)=02FBh,(2FBh)=0022h,(2FCh)=0022h,(TREG)=0022h,(PREG)=000Fh,(ACC)=0014h。LTD 123 ;(DP=5:0280-02FFh,PM=48注意數(shù)據(jù)傳送功能可通過連續(xù)存儲(chǔ)塊的邊界;該指令移動(dòng)數(shù)據(jù)的功能不能用于外部數(shù)據(jù)寄存器或存儲(chǔ)器映射的寄存器;若LTD被用于外部數(shù)據(jù)存儲(chǔ)器,則功能與LTA相同。注意數(shù)據(jù)傳送功能可通過連續(xù)存儲(chǔ)塊的邊界;4915.MACD指令乘且累加并帶數(shù)據(jù)移動(dòng)指令MACD:可以完成以下功能:(1)按PM狀態(tài)位指定的方式把先前的乘積移位,再與ACC的內(nèi)容相加;(2)把指定的數(shù)據(jù)存儲(chǔ)單元的內(nèi)容加載到TREG;(3)將存放在TREG寄存器中的數(shù)據(jù)存儲(chǔ)單元值乘以指定的程序存儲(chǔ)器地址中的內(nèi)容;(4)將指定的數(shù)據(jù)存儲(chǔ)器地址中的內(nèi)容復(fù)制到下一個(gè)數(shù)據(jù)存儲(chǔ)器。15.MACD指令乘且累加并帶數(shù)據(jù)移動(dòng)指令MACD:可以完50MACD 0FF00h,08h ;(DP=6:0300h-037Fh;PM=0;CNF=1:B0配置為程序存儲(chǔ)器)執(zhí)行前:數(shù)據(jù)存儲(chǔ)器(308h)=23h,(309h)=18h,程序存儲(chǔ)器(FF00h)=4h,(TREG)=45H,(PREG)=458972h,(ACC)=723EC41h。執(zhí)行后:數(shù)據(jù)存儲(chǔ)器(308h)=23h,(309h)=23h,程序存儲(chǔ)器(FF00h)=4h,(TREG)=23H,(PREG)=8Ch,(ACC)=76975B3h。MACD 0FF00h,08h ;(DP=6:0300h-051說明當(dāng)重復(fù)MAC指令時(shí),每重復(fù)一次包含在PC中的程序存儲(chǔ)器地址加1。若使用間接尋址指定數(shù)據(jù)存儲(chǔ)器地址則每次重復(fù)時(shí)就可以訪問新的數(shù)據(jù)存儲(chǔ)器地址;若使用直接尋址方式指定的數(shù)據(jù)存儲(chǔ)器地址是常數(shù),重復(fù)時(shí)不會(huì)對其進(jìn)行修改。若MACD尋址存儲(chǔ)器映象寄存器或外部存儲(chǔ)器作為數(shù)據(jù)存儲(chǔ)器單元,則MACD功能與MAC相同,數(shù)據(jù)移動(dòng)不會(huì)發(fā)生。說明當(dāng)重復(fù)MAC指令時(shí),每重復(fù)一次包含在PC中的程序存儲(chǔ)器地52MPY指令乘指令MPY:T寄存器內(nèi)容和被尋址數(shù)據(jù)存儲(chǔ)器單元的內(nèi)容相乘,其結(jié)果轉(zhuǎn)入P寄存器中。若使用短立即數(shù)尋址,則T寄存器和帶符號(hào)的13位常數(shù)相乘;無論SXM為何值,短立即數(shù)總是靠右對齊并在相乘之前進(jìn)行符號(hào)擴(kuò)展。MPY指令乘指令MPY:T寄存器內(nèi)容和被尋址數(shù)據(jù)存儲(chǔ)器單元53MPY 5 ;(DP=4:0200h-027Fh)將數(shù)據(jù)存儲(chǔ)器單元205h的內(nèi)容和TREG寄存器中的內(nèi)容相乘,結(jié)果保存在PREG中。MPY *,AR2 ;(ARP=1,AR1=40Dh)將數(shù)據(jù)存儲(chǔ)器單元40Dh的內(nèi)容和TREG寄存器中的內(nèi)容相乘,結(jié)果保留在PREG中,指令執(zhí)行完后ARP=2MPY #031h ;立即數(shù)0031h和TREG寄存器中的內(nèi)容相乘,結(jié)果保存在PREG中。MPY 5 ;(DP=4:0200h-027Fh)將數(shù)54RPT指令重復(fù)執(zhí)行下一條指令RPT:緊接RPT后的那條指令被執(zhí)行n次,n為RPTC初值加1。若使用直接或間接尋址,則被尋址的數(shù)據(jù)存儲(chǔ)器單元中的值送入重復(fù)計(jì)數(shù)器(RPTC);若使用短立即數(shù)尋址,則8位立即數(shù)送入RPTC。RPT #20 ;執(zhí)行NOP指令21次。NOPRPT指令重復(fù)執(zhí)行下一條指令RPT:緊接RPT后的那條指令被55說明在上下文切換時(shí)不能保存RPTC的值,所以重復(fù)循環(huán)被認(rèn)為是多周期指令,它不能被中斷。器件復(fù)位時(shí),RPTC被清零。說明在上下文切換時(shí)不能保存RPTC的值,所以重復(fù)循環(huán)被認(rèn)為是56SACH指令移位并存儲(chǔ)累加器高位指令SACH:將整個(gè)累加器復(fù)制到輸出移位寄存器中,然后全部32位數(shù)左移0~7位,再將移位后數(shù)值的高16位復(fù)制到數(shù)據(jù)存儲(chǔ)器。在移位時(shí),低位填零,高位丟失,累加器內(nèi)容不變。SACH指令移位并存儲(chǔ)累加器高位指令SACH:將整個(gè)累加器復(fù)57SACH 10,1 ;(DP=4:0200h-027Fh)將ACC的左移1位,高16位存至數(shù)據(jù)存儲(chǔ)器單元020Ah中。SACH *+,AR2 ;(ARP=1)將ACC的高16位存至AR1指向的數(shù)據(jù)存儲(chǔ)器單元,操作完成之后ARP=2。SACH 10,1 ;(DP=4:0200h-027Fh)58SACL指令移位并存儲(chǔ)累加器低位指令SACL:將整個(gè)累加器復(fù)制到輸出移位寄存器中,然后全部32位數(shù)左移0~7位,再將移位后數(shù)值的低16位復(fù)制到數(shù)據(jù)存儲(chǔ)器。在移位時(shí),低位填零,高位丟失,累加器內(nèi)容不變。SACL指令移位并存儲(chǔ)累加器低位指令SACL:將整個(gè)累加器復(fù)59SACL 10,1 ;(DP=4:0200h-027Fh)將ACC的左移1位,低16位存至數(shù)據(jù)存儲(chǔ)器單元020Ah中。SACH *+,AR2 ;(ARP=1)將ACC的高16位存至AR1指向的數(shù)據(jù)存儲(chǔ)器單元,操作完成之后ARP=2。SACL 10,1 ;(DP=4:0200h-027Fh)60SAR指令存儲(chǔ)輔助寄存器指令SAR:將指定的輔助寄存器(ARx)內(nèi)容存入被尋址數(shù)據(jù)存儲(chǔ)器單元。注意在間接尋址方式中,SAR指令同時(shí)也要對當(dāng)前輔助寄存器內(nèi)容進(jìn)行修改時(shí),SAR將在增、減輔助寄存器內(nèi)容前將輔助寄存器值存至數(shù)據(jù)存儲(chǔ)器。SAR指令存儲(chǔ)輔助寄存器指令SAR:將指定的輔助寄存器(AR61SAR AR0,30h ;(DP=6:0300h-037Fh)將AR0的值存至數(shù)據(jù)存儲(chǔ)器單元0330h中。SAR AR0,*+;將AR0的值存入其指向的數(shù)據(jù)存儲(chǔ)器單元,同時(shí)AR0的值增1。執(zhí)行前:ARP=0,AR0=0400h,(0400h)=0000h執(zhí)行后:ARP=0,AR0=0401h,(0400h)=0400hSAR AR0,30h ;(DP=6:030062SBRK指令從當(dāng)前輔助寄存器中減去立即數(shù)指令SBRK:從指定的輔助寄存器中減去8位立即數(shù)值,其結(jié)果替換原有的輔助寄存器中的內(nèi)容。減法在輔助寄存器算術(shù)單元(ARAU)中進(jìn)行,立即數(shù)值作為8位正數(shù)處理。所有輔助寄存器的算術(shù)運(yùn)算都是無符號(hào)的。SBRK #20h
;指令執(zhí)行前:ARP=5,AR5=0050h, ;
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度工業(yè)廠房交易全程服務(wù)合同4篇
- 2024音樂制作方與影視制作公司版權(quán)許可合同
- 二零二五年度交通樞紐害蟲防治與消毒作業(yè)合同3篇
- 專業(yè)水電安裝及消防系統(tǒng)承包合同2024年版版B版
- 2025年度12年首次智慧旅游項(xiàng)目合作協(xié)議3篇
- 2025年度叉車租賃合同范本(叉車租賃與維護(hù))4篇
- 2025年度智慧城市基礎(chǔ)設(shè)施場地平整與物聯(lián)網(wǎng)協(xié)議4篇
- 2025年度奶牛養(yǎng)殖牛場租賃合同范本3篇
- 2025年廠房租賃合同風(fēng)險(xiǎn)評(píng)估與管理規(guī)范4篇
- 2024年04月廣西桂林銀行南寧分行社會(huì)招考筆試歷年參考題庫附帶答案詳解
- DB32T-經(jīng)成人中心靜脈通路裝置采血技術(shù)規(guī)范
- 【高空拋物侵權(quán)責(zé)任規(guī)定存在的問題及優(yōu)化建議7100字(論文)】
- TDALN 033-2024 學(xué)生飲用奶安全規(guī)范入校管理標(biāo)準(zhǔn)
- 物流無人機(jī)垂直起降場選址與建設(shè)規(guī)范
- 冷庫存儲(chǔ)合同協(xié)議書范本
- AQ/T 4131-2023 煙花爆竹重大危險(xiǎn)源辨識(shí)(正式版)
- 武術(shù)體育運(yùn)動(dòng)文案范文
- 設(shè)計(jì)服務(wù)合同范本百度網(wǎng)盤
- 2024年市級(jí)專科護(hù)士理論考核試題及答案
- 肺炎臨床路徑
- 供應(yīng)商供貨服務(wù)方案(2篇)
評(píng)論
0/150
提交評(píng)論