日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

DSP C2000汇编语言,DSPC2000汇编指令

發(fā)布時(shí)間:2024/9/27 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 DSP C2000汇编语言,DSPC2000汇编指令 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

值。XT寄存器的低16位部分是TL寄存器。該寄存器能裝載一個(gè)16位有符號(hào)數(shù),能自動(dòng)對(duì)該數(shù)進(jìn)行符號(hào)擴(kuò)展,然后將其送人32位XT寄存器。XT寄存器的高16位部分是T寄存器。該寄存器主要用來存儲(chǔ)16位乘法操作之前的16位整數(shù)值。T寄存器也可以為一些移位操作設(shè)定移位值,在這種情況下,根據(jù)指令,只可以使用T寄存器的一部分。具體的操作說明看表6-19. 助記符 ADDUL P,loc32 MAXCUL P,loc32 MINCUL P,loc32 MOV PH,loc16 MOV PL,loc16 MOV loc16,P MOV T,loc16 MOV loc16,T MOV TL,#0 MOVA T,loc16 MOVH loc16,P MOVL P,loc16 MOVL loc16,P MOVL loc32,P MOVL P,loc32 MOVL XT,loc32 MOVL loc32,XT MOVP T,loc16 MOVS T,loc16 MOVX TL,loc16 SUBUL P,loc32 說明 無符號(hào)數(shù)[loc32]加到寄存器P 有條件地求無符號(hào)數(shù)[loc32]和P的最大值,存儲(chǔ)到P 有條件地求無符號(hào)數(shù)[loc32]和P的最小值,存儲(chǔ)到P [loc16]加載PH [loc16]加載PL 存儲(chǔ)移位后的P寄存器的低16位 [loc16]加載到T 存儲(chǔ)T寄存器到loc16 清除TL [loc16]加載到T寄存器并與先前的乘積相加 保存PH到loc16 [loc16]加載到P寄存器 寄存器P加載到[loc16] 寄存器P加載到[loc32] [loc32]加載到P寄存器 [loc32]加載到XT寄存器 存儲(chǔ)寄存器XT到loc32 [loc16]加載到T寄存器并將寄存器的內(nèi)容保存到ACC [loc16]加載到T寄存器并從ACC中減去P寄存器的內(nèi)容 [loc16]符號(hào)擴(kuò)展后加載到TL P減去[loc32] MOVDL XT,loc32 存儲(chǔ)XT寄存器并加載新XT寄存器 表6-19 P或XT的操作的說明

6.對(duì)中斷控制寄存器的操作(IFR、IER、DBGIER)

C28x有3個(gè)寄存器用于控制中斷:中斷標(biāo)志寄存器(IFR)、中斷使能寄存器(IER)和調(diào)試中斷使能寄存器(DBGIER)。IFR包含的標(biāo)志位用于可屏蔽中斷(可以用軟件進(jìn)行屏蔽)。當(dāng)通過硬件或軟件設(shè)定了其中某位時(shí),則相應(yīng)的中斷就被使能??梢杂肐ER中的相應(yīng)位屏蔽和使能中斷。當(dāng)DSP工作在實(shí)時(shí)仿真模式并且CPU被掛起時(shí),DBGIER表明可以使用時(shí)間臨近中斷(如果被使能)。具體操作看表6-20。 助記符 AND IER,#16bit AND IFR,#16bit IACK #16bit 說明 按位進(jìn)行“與”操作來禁止指定的CPU中斷 按位進(jìn)行“與”操作來清除掛起的CPU中斷 中斷確認(rèn) INTR INT1/.../INT14、NMI、EMUINT、 仿真硬件中斷 DLOGINT、RTOSINT、 MOV IER,loc16 加載中斷允許寄存器 MOV loc16,IER OR IER,#16bit OR IFR,#16bit TRAT #0...31 存儲(chǔ)中斷允許寄存器 按位相“或” 按位相“或” 軟件陷阱 表6-20中斷寄存器的操作說明

7.對(duì)狀態(tài)寄存器(ST0、ST1)的操作 C28x有兩個(gè)狀態(tài)寄存器ST0和STl,其中包含著不同的標(biāo)志位和控制位。這些寄存器可以和數(shù)據(jù)寄存器交換數(shù)據(jù),也可以保存機(jī)器的狀態(tài)和為子程序恢復(fù)狀態(tài)。狀態(tài)位根據(jù)流水線中位值的改變而改變,ST0的位在流水線的執(zhí)行階段中改變,STl的位在流水線的譯碼2階段中改變。狀態(tài)寄存器ST0的各位,所有這些位都可以在流水線執(zhí)行的過程中進(jìn)行更改。狀態(tài)寄存器ST0的位分布如圖6-4所示,ST1的位分布如圖6-5所示。具體的寄存器操作說明看表6-21

D15~D10OVC/OVCUD9~D7PMD6VD5ND4ZD3CD2TCD1OVMD0SXM

圖6-4狀態(tài)寄存器ST0的位分布

D15~D13ARPD6EALLOW助記符 CLRC mode CLRC XF CLRC AMODE C28ADDR D12XFD5LOOPD11D10D9D8D7M0M1MAP保留OBJMODEAMODEIDLESTATD4SPAD3VMAPD2PAGE0說明 清除各狀態(tài)位 清除狀態(tài)位XF并輸出信號(hào) 清除AMODE位 清除AMODE狀態(tài)位 清除OBJMODE位 清除M0M1MAP位 清除OVC位 清除OVC位 禁止屏蔽中斷(置INTM位) 允許可屏蔽中斷(清除INTM) 令乘積移位方式位PM=AX(2:0) 用指定單元高6位數(shù)加載溢出計(jì)數(shù)器 存儲(chǔ)溢出計(jì)數(shù)器 置各狀態(tài)位 D1BGMD0INTM

圖6-5狀態(tài)寄存器ST1的位分布

CLRC OBJMODE C27MAP CLRC OVC ZAP OVC DINT EINT MOV PM,AX MOV OVC,loc16 MOV loc16,OVC SETC Mode MOVU OVC,loc16 用指定單元低6位數(shù)加載溢出計(jì)數(shù)器 MOVU loc16,OVC 存儲(chǔ)溢出計(jì)數(shù)器到指定單元的低6位并且高10位清0 SETC XF SETC M0M1MAP C28MAP SETC OBJMODE SETC AMODE LPADDR SPM PM 置XF位并輸出信號(hào) 置M0M1MAP位 置M0M1MAP位 置OBJMODE位 置AMODE位 置AMODE位 設(shè)置乘積移位方式 表6-21狀態(tài)寄存器操作說明

8.對(duì)16*16乘法操作的說明(見表6-22 16*16乘法操作說明) 助記符 MAC P,loc16,0:pma MAC P,loc16,*XAR7/++ MAY P,T,loc16 MPY ACC,loc16,#16bit MPYA P,loc16,#16bit MPYA P,T,loc16 MPYB P,T,#8bit MPYS P,T,loc16 MPYB ACC,T,#8bit MPYU ACC,T,loc16 MPYU P,T,loc16 MPYXU P,T,loc16 MPYXU ACC,T,loc16 SQRA loc16 SQRS loc16 XMAC P,loc16,*(pma) XMACD P,loc16,*(pma) 相乘且累加 相乘且累加 16位*16位乘法 16位*16位乘法 16位*16位乘法并加上先前乘積 16位*16位乘法并加上先前乘積 有符號(hào)數(shù)與8位無符號(hào)立即數(shù)相乘 16位*16位乘法并做減法 與8位立即數(shù)相乘 16位*16位無符號(hào)乘法 16位*16位無符號(hào)乘法 有符號(hào)數(shù)與無符號(hào)數(shù)相乘 有符號(hào)數(shù)與無符號(hào)數(shù)相乘 求平方值并講P寄存器的內(nèi)容加到ACC 求平方值并且ACC做減法 與C2xLP兼容性的相乘且累加 帶有數(shù)據(jù)移動(dòng)的、與C2xLP兼容性的相乘且累加 說明 DMAC ACC:P,loc32,*XAR7/++ 雙16*16乘法且累加 表6-22 16*16乘法操作說明

9.對(duì)32*32乘法操作的說明(見表6-23 32*32乘法操作說明) 助記符 IMPYAL P,XT,loc32 IMPYL P,XT,loc32 IMPYL ACC,XT,loc32 IMPYSL P,XT,loc32 IMPXUL P,XT,loc32 QMACL P,XT,loc32 QMPYAL P,XT,loc32 QMPYL P,XT,loc32 QMPYL ACC,XT,loc32 說明 有符號(hào)32位數(shù)乘法(低半段)且加上先前P的內(nèi)容 有符號(hào)32位數(shù)*有符號(hào)32位數(shù)(低半段) 有符號(hào)32位數(shù)*有符號(hào)32位數(shù)(低半段) 有符號(hào)32位數(shù)乘法(低半段)且減去先前P的內(nèi)容 有符號(hào)32位數(shù)*無符號(hào)32位數(shù)(低半段) 有符號(hào)32位數(shù)*有符號(hào)32位數(shù)且累加(高半段) 有符號(hào)32位數(shù)乘法(高半段)且加上先前P的內(nèi)容 有符號(hào)32位數(shù)*有符號(hào)32位數(shù)(高半段) 有符號(hào)32位數(shù)*有符號(hào)32位數(shù)(高半段) IMACL P,loc32,*XAR7/++ 有符號(hào)32位數(shù)*有符號(hào)32位數(shù)且累加(低半段) QMPYSL P,XT,loc32 QMPXUL P,XT,loc32 有符號(hào)32位數(shù)乘法(高半段)且減去先前P的內(nèi)容 有符號(hào)32位數(shù)*無符號(hào)32位數(shù)(高半段) 表6-23 32*32乘法操作說明

10.直接寄存器操作(見表6-24) 助記符 ADD loc16,#16bit AND loc16,#16bit CMP loc16,#16bit DEC loc16 DMOV loc16 INC loc16 MOV loc16,*(0:16bit) MOV loc16,16bit MOV loc16,#0 OR loc16,#16bit TBIT loc16,#bit TBIT loc16,T TCLR loc16,#bit TSET loc16,#bit XOR loc16,#16bit 說明 有符號(hào)16位立即數(shù)與[loc16]相加,結(jié)果保存到loc16 有符號(hào)16位立即數(shù)與[loc16]按位“與”,結(jié)果保存到loc16 有符號(hào)16位立即數(shù)與[loc16]比較 [loc16] 減1 [loc16-1]=[loc16] [loc16]加1 16位地址指向存儲(chǔ)單元的內(nèi)容加載到loc16 存儲(chǔ)16位立即數(shù)到loc16 清除[loc16] [loc16]和16位立即數(shù)按位“或”,結(jié)果保存到loc16 測(cè)試[loc16]中的指定位 測(cè)試[loc16]中由T寄存器指定的內(nèi)容 測(cè)試并清除[loc16]中的指定位 測(cè)試并置[loc16]中的指定位為1 [loc16]和16位立即數(shù)按位“異或” MOVB loc16,#8bit,COND 有條件存儲(chǔ)8位立即數(shù)(零擴(kuò)展)到loc16 表6-24對(duì)直接存儲(chǔ)器操作的說明

11.對(duì)I/O空間操作的說明(看表6-25) 助記符 IN loc16,*(PA) OUT *(PA),loc16 說明 從端口輸入數(shù)據(jù) 從端口輸出數(shù)據(jù) UOUT *(PA),loc16 想I/O端口輸出不受保護(hù)的數(shù)據(jù) 表6-25 I/O空間操作的說明

12.程序空間的操作說明(看表6-26)

助記符 PREAD loc16,*XAR7 PWRITE *XAR7,loc16 XPREAD loc16,*AL XPWRITE *AL,loc16 說明 將XAR7指向的程序空間的16位數(shù)據(jù)放到loc16 將[loc16]放到XAR7指向的程序空間的一個(gè)存儲(chǔ)單元 與C2xLP兼容性的讀程序操作 與C2xLP兼容性的寫程序操作 XPREAD loc16,*(pma) 與C2xLP兼容性的讀程序操作 表6-26程序空間操作的說明

13.跳轉(zhuǎn)/調(diào)用/返回操作(看表6-27) 助記符 B 16bitoff,COND 說明 有條件跳轉(zhuǎn),PC=PC+16位偏移地址(-32768~+32767)

總結(jié)

以上是生活随笔為你收集整理的DSP C2000汇编语言,DSPC2000汇编指令的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。