TMSLF的尋址方式.ppt
《TMSLF的尋址方式.ppt》由會(huì)員分享,可在線閱讀,更多相關(guān)《TMSLF的尋址方式.ppt(75頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
第三章尋址方式和指令系統(tǒng) 本章基本要求1 熟悉DSP匯編語言指令2 能編寫簡單應(yīng)用程序3 了解完整應(yīng)用程序的結(jié)構(gòu) 3 1尋址方式 3種基本尋址方式 立即尋址方式 直接尋址方式 間接尋址方式 3 1 1立即尋址方式 指令中包含該指令要操作的常數(shù) 1 短立即尋址指定8 9 13位的常數(shù)作為操作數(shù) 2 長立即尋址指定16位的常數(shù)作為操作數(shù) 例1 短立即尋址RPT 7 將RPT后面的那條指令執(zhí)行8次 指令機(jī)器代碼為 操作碼操作數(shù) 例2 長立即尋址LACC 0FFF 3 將0FFFH左移3位后與累加器內(nèi)容相加 指令機(jī)器代碼為 指令操作碼左移位數(shù) 0000111111111111 3 1 2直接尋址方式狀態(tài)寄存器ST0 80 數(shù)據(jù)頁指針 直接尋址模式下的數(shù)據(jù)存儲(chǔ)器地址由數(shù)據(jù)頁指針DP與偏移地址構(gòu)成 1513 3 1 2直接尋址方式 數(shù)據(jù)存儲(chǔ)器 在使用直接尋址時(shí) 必須確保正確的數(shù)據(jù)頁 DP值保存在ST0中 可以通過LDP XXHXX 0 511或LST指令對(duì)DP賦值 數(shù)據(jù)頁面指針 DP 指令寄存器 IR 9位 8MSB 頁面 9MSB 偏移量 7LSB 0 7LSB 16位地址的形成 使用直接尋址的方法 1 設(shè)置數(shù)據(jù)頁 LDP XX 2 指明偏移量 采用直接尋址時(shí) 不必每條指令前面都要設(shè)置數(shù)據(jù)頁 如果一段代碼的所有直接尋址指令都訪問同一個(gè)數(shù)據(jù)頁 則只需在該段代碼的最前面裝載一次DP值即可 8MSB 0 7LSB 操作碼 直接尋址 偏移地址 數(shù)據(jù)頁面指針DP 4 000000100 0010 0010 0 0001001 000000100 0001001 指令寄存器 IR ADD的操作碼 移5位直接尋址 LDP 4ADD9H 5 0209 數(shù)據(jù)頁面指針DP 500 111110100 01100000 0 0001001 111110100 0001001 指令寄存器 IR ADD的操作碼 移5位直接尋址 LDP 500ADDC9H FB09 LDP 0HLACC64HADD50HLDP 6HSUB2H 數(shù)據(jù)存儲(chǔ)器空間64H內(nèi)的值與數(shù)據(jù)存儲(chǔ)器空間50H內(nèi)的值相加再減去數(shù)據(jù)存儲(chǔ)器空間302內(nèi)的值 3 1 3間接尋址方式使用AR0 AR7作為輔助寄存器 系統(tǒng)用當(dāng)前輔助寄存器 當(dāng)前AR 的內(nèi)容作為操作數(shù)的地址 狀態(tài)寄存器ST0 3 1 3間接尋址方式使用AR0 AR7 1 當(dāng)前輔助寄存器2 間接尋址選項(xiàng) 1 不增不減 2 增1 減1 3 增加 減少一個(gè)變址量 AR0 4 按逆向進(jìn)位方式增加 減少一個(gè)編址量 間接尋址操作數(shù) 158764320 七種選項(xiàng) 重定位指示 下一輔助寄存器指針 操作碼及左移位數(shù) AR0賦值為FFT長度的一半N 2 4 AR1中存放位反轉(zhuǎn)的基地址 例如AR1 0200H 重復(fù)執(zhí)行輸入指令N 8次 使數(shù)據(jù)以N為8的倒序方式排列 即RPT7IN BR0 PA0 將PA0口順序輸入的數(shù)據(jù)以位反轉(zhuǎn)的地址存儲(chǔ) 則依次由AR1產(chǎn)生的地址分別為0200H0204H0202H0206H0201H0205H0203H0207H 例6ADD 8 0002h 0002h 指令執(zhí)行前 指令執(zhí)行后 數(shù)據(jù)存儲(chǔ)器 數(shù)據(jù)存儲(chǔ)器 302h ACC C ACC 0 C 2h 0202h 302h 302 3 3 302 ARP AR3 例7ADD 8 AR4 0002h 0002h 指令執(zhí)行前 指令執(zhí)行后 數(shù)據(jù)存儲(chǔ)器 數(shù)據(jù)存儲(chǔ)器 302h ACC C ACC 0 C 2h 0202h 302h 302 3 4 303 ARP AR3 例8ADD 8 0002h 0002h 指令執(zhí)行前 指令執(zhí)行后 數(shù)據(jù)存儲(chǔ)器 數(shù)據(jù)存儲(chǔ)器 302h ACC C ACC 0 C 2h 0202h 302h 302h 3 3 301h ARP AR3 例9ADD 0 8 0002h 0002h 指令執(zhí)行前 指令執(zhí)行后 數(shù)據(jù)存儲(chǔ)器 數(shù)據(jù)存儲(chǔ)器 0302h ACC C ACC 0 C 2h 0202h 0302h 0302h 3 3 0306h ARP AR3 0004h 0004h AR0 3 2指令集 3 2 1累加器 算術(shù)和邏輯指令1 ABS累加器內(nèi)容取絕對(duì)值2 ADD1 1 DP 6 1h 1h 指令執(zhí)行前 指令執(zhí)行后 數(shù)據(jù)存儲(chǔ)器 數(shù)據(jù)存儲(chǔ)器 301h ACC C ACC 0 C 2h 4h 301h 相加有進(jìn)位則1 C 否則C清零 2h 2h 指令執(zhí)行前 指令執(zhí)行后 數(shù)據(jù)存儲(chǔ)器 數(shù)據(jù)存儲(chǔ)器 302h ACC C ACC 0 C 2h 04h 302h 302 4 0 303 ARP AR4 ADD 0 AR0 將當(dāng)前輔助寄存器所指向的單元的內(nèi)容與累加器內(nèi)容相加 并指定下一輔助寄存器為AR0 ffffh ffffh 指令執(zhí)行前 指令執(zhí)行后 數(shù)據(jù)存儲(chǔ)器 數(shù)據(jù)存儲(chǔ)器 302h ACC C ACC 0 C 7fff0000h 7fffffffh 302h 302h 0 0 302h ARP AR0 3 ADDC帶進(jìn)位位加至累加器 ACC 數(shù)據(jù)存儲(chǔ)器地址 C ACC 4 ADDS抑制符號(hào)擴(kuò)展加至累加器ADDS 0FF94H 0FF94h 指令執(zhí)行前 指令執(zhí)行后 數(shù)據(jù)存儲(chǔ)器 數(shù)據(jù)存儲(chǔ)器 TREG ACC C ACC 0 C 0F715h F7A5h 09h 09h 027FH 5 ADDT按TREG寄存器內(nèi)容移位后加至累加器ADDT127 DP 4 SXM 0 027FH TREG 0FF94H 0FF94h 指令執(zhí)行前 指令執(zhí)行后 數(shù)據(jù)存儲(chǔ)器 數(shù)據(jù)存儲(chǔ)器 TREG ACC C ACC 0 C 0F715h 0F7A5h 90h 90h 027FH 練習(xí) ADDS AR4 027FH TREG 027FH 027Eh AR0 0 4 ARP ARP AR0 6 AND和累加器邏輯 與 1 AND 2 LDP 1AND163 AND 00FFH 47 CMPL累加器求反 補(bǔ) 01h 01h 指令執(zhí)行前 指令執(zhí)行后 數(shù)據(jù)存儲(chǔ)器 數(shù)據(jù)存儲(chǔ)器 406h ACC C ACC 0 C 12345678h 10h 406h 8 LACC數(shù)據(jù)左移后裝入累加器LACC6 4 DP 8 SXM 0 LACC 4LACC 1234H 2 00ffh 00FFh 指令執(zhí)行前 指令執(zhí)行后 數(shù)據(jù)存儲(chǔ)器 數(shù)據(jù)存儲(chǔ)器 401h ACC C ACC 0 C 7FFFFFFFh 0FFh 401h 401h 0 4 400h ARP AR0 9 LACL裝載累加器低位并清累加器高位LACL AR4 10 NEG累加器求負(fù)11 NORM規(guī)格化累加器 14h 14h 指令執(zhí)行前 指令執(zhí)行后 數(shù)據(jù)存儲(chǔ)器 數(shù)據(jù)存儲(chǔ)器 TREG ACC C ACC 0 C 98F7EC83h 13760h 301h 1376h 1376h 301h 12 LACT按TREG規(guī)定的移位后裝入累加器LACT1 DP 6 TREG 6 ARP 6 ARP 1111h 1111h 指令執(zhí)行前 指令執(zhí)行后 數(shù)據(jù)存儲(chǔ)器 數(shù)據(jù)存儲(chǔ)器 ACC C 0 C 222h 1333h AR1 301h 301h AR1 13 OR與累加器邏輯 或 OR AR0 301h ARP 1 301h 0 ARP 14 ROL累加器邏輯循環(huán)左移 指令執(zhí)行前 指令執(zhí)行后 B0001234H 60002468H ACC 0 ACC 1 15 ROR累加器邏輯循環(huán)右移 C 16 SACH移位并存儲(chǔ)累加器高位SACH 0 AR2 0h 0420h 指令執(zhí)行前 指令執(zhí)行后 數(shù)據(jù)存儲(chǔ)器 數(shù)據(jù)存儲(chǔ)器 ACC C ACC 0 C 4208001h 4208001h AR1 301h 302h AR1 301h ARP 1 301h 2 ARP 17 SACL移位并存儲(chǔ)累加器低位 18 SFL累加器算術(shù)左移 19 SFR累加器算術(shù)右移 B0001234H ACC 0 C 0 LSB MSB B0001234H ACC 0 C 5800091AH ACC 0 C B0001234H ACC 0 D800091AH ACC 0 SXM 1 SXM 0 20SUB從累加器減21SUBB帶借位從累加器減22SUBS抑制符號(hào)擴(kuò)展從累加器減23SUBT按TREG指定的值進(jìn)行移位后從累加器減 0E0E0h 0E0E0h 指令執(zhí)行前 指令執(zhí)行后 數(shù)據(jù)存儲(chǔ)器 數(shù)據(jù)存儲(chǔ)器 ACC C ACC C 107777h 0E0E08000h AR7 0FF00h FEFFh AR7 24 XOR與累加器邏輯 異或 25 ZALR累加器低位清零并四舍五入裝載累加器高位ZALR AR4 0FF00h ARP 7 0FF00h 4 ARP 26 ADRK短立即數(shù)加至當(dāng)前輔助寄存器ADRK 80H 假設(shè)ARP 5 27 BANZ輔助寄存器不等于零轉(zhuǎn)移MAR AR0 ARP指向AR0LARAR1 3 AR1中裝入3LARAR0 60h AR0中裝入60LOOP ADD AR1BANZLOOP AR0 4321H AR5 43A1H 指令執(zhí)行后 C 28 CMPR比較當(dāng)前輔助寄存器和AR0 并把比較結(jié)果放在ST1的TC位CMPRCMCM 00測試當(dāng)前AR是否等于AR0CM 01測試當(dāng)前AR是否小于AR0CM 10測試當(dāng)前AR是否大于AR0CM 11測試當(dāng)前AR是否不等于AR0如果條件滿足 TC置1 7FFFh 7FFFh 指令執(zhí)行前 指令執(zhí)行后 TC 1h 0h 0FFFFh 0FFFFh AR0 CMPR2 ARP 4 AR4 4 32h 32h AR0 300h 32h 數(shù)據(jù)存儲(chǔ)器 29LAR裝載輔助寄存器LDP 6LARAR0 16 310H 30MAR修改輔助寄存器31SAR存儲(chǔ)輔助寄存器 ARx 數(shù)據(jù)存儲(chǔ)器 SARAR0 指令執(zhí)行前 ARP 0 AR0 401H 401H 0H 指令執(zhí)行后 ARP 0 AR0 402H 401H 401H LDP 6HLARAR0 0SARAR0 10H MAR AR1LARAR0 37FHLARAR1 300HLACL 0HLOOP1 SACL CPR00BCNDLOOP1 NTC 32SBRK從當(dāng)前輔助寄存器減去短立即數(shù)33APACP寄存器加至累加器 F79Ch F79Ch 指令執(zhí)行前 指令執(zhí)行后 PREG 30079844h F79C9844h 200h 200h AR0 ARP 0 200h 6 數(shù)據(jù)存儲(chǔ)器 34LPH裝載乘積寄存器高位LPH AR6 35LT裝載TREG寄存器36LTA裝載TREG寄存器并累加前次乘積LAT AR5 62h 62h 指令執(zhí)行前 指令執(zhí)行后 TREG 3h 62h 324h 324h AR4 ARP 4 324h 5 0Fh 0Fh PREG ACC C ACC 0 5h 14h 37LTD裝載TREG寄存器 累加前次乘積并移動(dòng)數(shù)據(jù)LTD AR5 62h 62h 指令執(zhí)行前 指令執(zhí)行后 TREG 3h 62h 324h 324h AR4 ARP 4 324h 5 0Fh 0Fh PREG ACC C ACC 0 5h 14h 0h 62h 325h 38LTP裝載TREG寄存器并存儲(chǔ)PREG寄存器到累計(jì)器LTP AR5 數(shù)據(jù)空間地址 TREGShift PREG ACC 62h 62h 指令執(zhí)行前 指令執(zhí)行后 TREG 3h 62h 324h 324h AR2 ARP 2 324h 5 0Fh 0Fh PREG ACC C ACC 0 5h 0Fh 39LTS裝載TREG寄存器并減去前次乘積 數(shù)據(jù)空間地址 TREGACC Shift PREG ACC40MAC乘且累加MAC0FF00H AR5 C 41MACD乘且累加并帶數(shù)據(jù)移動(dòng)SPM0CLRCCNFMACD0FF00H AR6 23h 23h 指令執(zhí)行前 指令執(zhí)行后 TREG 45h 23h 324h 324h AR2 ARP 2 324h 6 458972h 8Ch PREG ACC C ACC 0 723EC41h 76975B3h 數(shù)據(jù)存儲(chǔ)器 程序存儲(chǔ)器 FF00H 4h 4h 21h 23h 325H 42MPY乘43MPYA乘且累加前次乘積MPYA AR4 ACC shift PREG ACC TREG x 數(shù)據(jù)空間地址 PREG C 7h 7h 指令執(zhí)行前 指令執(zhí)行后 TREG 6h 6h 324h 324h AR3 ARP 3 324h 4 36h 2Ah PREG ACC C ACC 0 54h 8Ah 數(shù)據(jù)存儲(chǔ)器 44MPYS乘且減去前次乘積45MPYU無符號(hào)乘法 46PAC將乘積寄存器裝入累加器47SPAC從累加器減去PREG寄存器48SPH存儲(chǔ)PREG高位49SPL存儲(chǔ)PREG低位50SPM設(shè)置PREG移位方式51SQRA平方并累加前次乘積52SQRS平方并減去前次乘積 轉(zhuǎn)移指令 53B無條件轉(zhuǎn)移54BACC按累加器內(nèi)容轉(zhuǎn)移55BANZ當(dāng)前輔助寄存器不等于零轉(zhuǎn)移 當(dāng)前寄存器內(nèi)容缺省修改為減1 MAR AR0LARAR1 3HLARAR0 60HLOOP1 ADD AR1BANZLOOP1 AR0 轉(zhuǎn)移指令 56BCND條件轉(zhuǎn)移用于條件調(diào)用和返回的條件 使用多個(gè)條件 組1 最多可選兩個(gè)條件 每個(gè)條件必須來自不同的類 A類或B類 不能從同一類中選擇兩個(gè)條件組2 最多可選3個(gè)條件 每一個(gè)條件必須來自不同的類 57CALA調(diào)用累加器低16位指定地址處的子程序58CALL無條件調(diào)用指令59CC條件轉(zhuǎn)移指令60INTR軟中斷K 0 3161NMI不可屏蔽中斷轉(zhuǎn)移到程序存儲(chǔ)器0024H處62RET子程序返回63RETC條件返回64TRAP軟件陷阱中斷轉(zhuǎn)移到程序存儲(chǔ)器0022處 C 控制指令 65BIT位測試 將數(shù)據(jù)的指定位復(fù)制到狀態(tài)寄存器ST1的TC位位碼值0123456789101112131415位位置1514131211109876543210LDP 6BIT0H 15測試300H處的最低有效位 66BITT測試TREG寄存器規(guī)定的位TREG四位LSB0123456789101112131415位位置1514131211109876543210假設(shè)TREG 1H數(shù)據(jù)存儲(chǔ)器 300h 4DC8h 301h 0777hLDP 6HBITT00HBITT01H執(zhí)行完后TC 67CLRC狀態(tài)位清零68IDEL空閑直至中斷發(fā)生LDP裝載數(shù)據(jù)頁指針 70LST裝載狀態(tài)寄存器LDP 0HLST 0 60H 2404h 2404h 指令執(zhí)行前 指令執(zhí)行后 ST0 6E00h 2604h 60h 05ECh 05ECh ST1 數(shù)據(jù)存儲(chǔ)器 71NOP空操作72POP棧頂彈出至累加器的低位73POPD棧頂彈出至數(shù)據(jù)存儲(chǔ)器74PUSH累加器低位進(jìn)棧75PSHD數(shù)據(jù)存儲(chǔ)器值進(jìn)棧 壓棧操作 堆棧 PUSH PSHDPOP POPD PSHD AR1 12h 指令執(zhí)行前 指令執(zhí)行后 ARP 0 1 1FFh 1FFh 1FFh AR0 數(shù)據(jù)存儲(chǔ)器 2h 33h 78h 99h 42h 50h 0h 0h 堆棧 12h 12h 2h 33h 78h 99h 42h 50h 0h 76RPT重復(fù)執(zhí)行下條指令RPT 177SETC78SPM設(shè)置PREG移位輸出方式 79SST存儲(chǔ)狀態(tài)寄存器SST 0 96 2404h 6E00h ST0 6E00h 6E00h 60h 數(shù)據(jù)存儲(chǔ)器 GISR SST 0 60HSST31 61HLDP 0HPUSHSARAR0 62H I O和存儲(chǔ)器指令 80BLDD數(shù)據(jù)存儲(chǔ)器到數(shù)據(jù)存儲(chǔ)器的塊傳送LDP 6HBLDD 300H 20H 0h 0h 指令執(zhí)行前 指令執(zhí)行后 320h 0Fh 0h 300h 數(shù)據(jù)存儲(chǔ)器 LARAR0 2HLARAR1 380HMAR AR1RPT 15BLDD 300 0 將300H 30F內(nèi)的16個(gè)數(shù)存入380H 39FH內(nèi)地址為偶數(shù)的空間中 81BLPD程序存儲(chǔ)器到數(shù)據(jù)存儲(chǔ)器的塊傳82DMOV在數(shù)據(jù)存儲(chǔ)器內(nèi)傳送數(shù)據(jù)LDP 6DMOV8 43h 43h 指令執(zhí)行前 指令執(zhí)行后 309h 2h 43h 308h 數(shù)據(jù)存儲(chǔ)器 83IN84OUT85SPLK存儲(chǔ)長立即數(shù)值至數(shù)據(jù)存儲(chǔ)器SPLK 1111H AR4 300h 301h 指令執(zhí)行前 指令執(zhí)行后 300h 02h 1111h AR0h 數(shù)據(jù)存儲(chǔ)器 0 4 ARP 86TBLR讀表LDP 4TBLR6 300h 301h 指令執(zhí)行前 指令執(zhí)行后 206h 75h 306h AR0h 數(shù)據(jù)存儲(chǔ)器 23H 23H ACC 程序存儲(chǔ)器 306h 306h 23h- 1.請(qǐng)仔細(xì)閱讀文檔,確保文檔完整性,對(duì)于不預(yù)覽、不比對(duì)內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會(huì)出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請(qǐng)點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
14.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對(duì)作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- TMSLF 尋址 方式
鏈接地址:http://appdesigncorp.com/p-6670046.html