【正文】
CPL=0時 , 數(shù)據(jù)存儲器 16位地址由 DP和偏移地址 dmad構(gòu)成; CPL=1時 , 數(shù)據(jù)存儲器 16位地址由 SP加偏移地址 dmad構(gòu)成 。 1. READA Smem 功能:把累加器 A所確定的程序存儲器單元中的一個字,傳送 到單數(shù)據(jù)存儲器 (Smem)操作數(shù)所確定的數(shù)據(jù)存儲器單元中。 B e f o r e I n st r u c t i o n A f t e r I n st r u c t i o n 0 0 0 DP 0 0 0 DP 7 F F A 0 0 0 5 H 7 F F A 0005 H 0060H 0 0 0 0 7 F F A 0060H 例 PORTR 05H, INDAT ; INDAT .equ 60H I/O Memory Data Memory 例 PORTW OUTDAT, 05H ; OUTDAT .equ 07H I/O Memory 0 0 0 0 0 0 0 5 H 7 F F A 0005H Data Memory B e f o r e I n st r u c t i o n A f t e r I n st r u c t i o n 0 0 0 DP 0 0 0 DP 0007H 7FFA 7FFA 0087H 例如,把數(shù)據(jù)空間中地址為 BUFFER單元中的數(shù)據(jù)傳送到累加器 A,指令可寫為: LD *( BUFFER), A 采用一個符號或是一個特定的值來指明數(shù)據(jù)空間的地址。 程序存儲器地址( pmad)尋址 0 0 0 0 7 7 0 0 0 0 A Be fo re In s t ru c t i o n 0 0 0 8 T A ft e r In s t ru c t i o n 0 0 0 0 7 D 0 B4 4 A 0 0 5 5 T 0100 A R3 0 0 F F A R3 F RCT 0 0 F RCT Program Memory 1 2 3 4 C O E F F S 1234 C O E F F S Da t a M e m o r y 0 0 6 6 0101 H 0055 0101H 0055 0100 H 0055 0100 H 例 MACD *AR3–, COEFFS, A 2. MVDP Smem, pmad 功能描述:把嚴格的 16 bit單數(shù)據(jù)存儲器操作數(shù) Smem復(fù) 制到一個由 16 bit立即數(shù) pmad尋址的程序存儲器單元中。循環(huán)執(zhí)行該指令可以轉(zhuǎn)移數(shù)據(jù) 存儲器中的連續(xù)字 (使用間接尋址 )。按功能 分為如下幾類 : 二、匯編指令 表 42 指令系統(tǒng)中的 符號和縮寫 表 431 加法指令 算術(shù)運算指令 表 432 減法指令 算術(shù)運算指令 算術(shù)運算指令 表 433 減法指令(續(xù)) 表 434 乘法指令 算術(shù)運算指令 表 435 乘加和乘減指令 算術(shù)運算指令 算術(shù)運算指令 表 435 乘加和乘減指令(續(xù)) 表 436 雙精度( 32位操作數(shù))指令 算術(shù)運算指令 表 437 專用指令 算術(shù)運算指令 表 441 與邏輯運算指令 邏輯運算指令 表 442 或邏輯運算指令 邏輯運算指令 表 443 異或邏輯運算指令 邏輯運算指令 表 444 移位邏輯運算指令 邏輯運算指令 表 445 測試指令 邏輯運算指令 表 451 分支轉(zhuǎn)移指令 程序控制指令 表 452 子程序調(diào)用指令 程序控制指令 表 453 中斷指令 程序控制指令 表 454 返回指令 程序控制指令 表 455 重復(fù)指令 程序控制指令 表 456 堆棧操作指令 程序控制指令 表 457 混合程序控制指令 程序控制指令 表 461 加載指令 加載和存儲指令 表 462 存儲指令 加載和存儲指令 表 453 條件存儲指令 加載和存儲指令 表 464 并行加載和存儲指令 加載和存儲指令 表 465 并行加載和乘法指令 加載和存儲指令 表 466 并行存儲和加 /減法指令 加載和存儲指令 表 467 并行存儲和乘法指令 加載和存儲指令 表 468 混合加載和存儲指令(數(shù)據(jù)塊傳送指令) 加載和存儲指令 C54x有 7種基本的數(shù)據(jù)尋址方式: 立即尋址 絕對尋址 累加器尋址 直接尋址 間接尋址 MMR寄存器 尋址 堆棧尋址 : 指令提供一個操作數(shù) :指令提供一個操作數(shù)地址 :以累加器內(nèi)容為地址訪問程序空間某單元 :尋址地址為 DP或 SP加上指令提供的偏移量 :利用輔助寄存器訪問存儲器 :用來改變 MMR寄存器 :用來管理系統(tǒng)堆棧中的操作 尋址方式 用 途 舉 例 指令含義 立即尋址 主要用于初始化 LD 10, A 立即數(shù) 10 ? A 絕對尋址 用 16位地址尋址存儲單元 STL A, *( y) 將 AL內(nèi)容存入 y所在的存儲單元 累加器尋址 累加器中的內(nèi)容作為地址 READA x 將 A的內(nèi)容作為地址讀程序存儲器,并存入 x存儲單元 直接尋址 利用 DP指針和 SP指針尋址 LD x, A (DP+x的低 7位地址 ) ? A 間接尋址 輔助寄存器作為地址指針 LD *AR1, A ((AR1)) ? A 存儲器映射 寄存器尋址 快速尋址 MMR LDM ST1, B (ST1) ? B 堆棧尋址 壓入 /彈出 RAM和 MMR PSHM AG (SP)1 ? SP,(AG) ? (SP) 部分尋址縮略語 縮略語 含 義 Smem 16位單尋址操作數(shù) Xmem 16位雙尋址操作數(shù) , 用于雙操作數(shù)或部分單操作數(shù)指令 , 從 DB數(shù)據(jù)總線上讀取 Ymem 16位雙尋址操作數(shù),用于雙操作數(shù)指令,從 CB數(shù)據(jù)總線上讀取 dmad 16位立即數(shù):數(shù)據(jù)存儲器地址( 0~ 65 535) pmad 16位立即數(shù):程序存儲器地址 ( 0~ 65 535) PA 16位立即數(shù): I/O口地址( 0~ 65 535) src 源累加器( A或 B) dst 目的累加器( A或 B) lk 16位長立即數(shù) 指令中含有一個固定的立即數(shù) LD 0, ARP ; ARP=2( k3) LD 3, ASM ; ASM=3( k5) LD 50, DP ; DP=50( k9) LD 1234, A ; A=1234( lk) STM FFFFh, IMR ; IMR=FFFFh( lk) 立即數(shù)尋址示例 絕對尋址示例 指令中含有所要尋找的操作數(shù)的 16位存儲單元地址 數(shù)據(jù)存儲器地址 ( dmad) 尋址: MVDK Smem, dmad MVDM dmad, MMR MVKD dmad, Smem MVMD MMR, dmad 程序存儲器地址 ( pmad) 尋址: MACD Smem, pmad, src MACP Smem, pmad, src MVDP Smem, pmad MVPD pmad, Smem 端口地址 (PA)尋址 PORTR PA, Smem PORTW Smem, PA *(lk)尋址適用于支持單數(shù)據(jù)存儲器操作數(shù)的指令 1. MVDK Smem, dmad 功能描述:把一個單數(shù)據(jù)存儲器操作數(shù) Smem的內(nèi)容復(fù)制 到一個通過 dmad(地址在 EAB地址寄存器 EAR中 )尋址的數(shù) 據(jù)存儲器單元。返回 代數(shù)指令語法格式: [標號區(qū) ][: ] 指令 [;注釋區(qū) ] SYM1 .set 2 。 助記符指令語法格式: [標號區(qū) ][: ] 助記符 [操作數(shù) ] [;注釋區(qū) ] SYM1 .set 2 。 圖 2 中斷向量地址的產(chǎn)生 示例 I P T R = 0 0 0 0 0 0 0 0 10 0 0 01 5 1 4 1 3 1 20 0 0 01 1 1 0 9 81 0 016 5 470 0 0 03 2 1 0I N T = 4 0 H ( I N T 0 )矢 量位地 址 0 0 C 0例: INT0的中斷向量號 K為 16 第 4章 C54x DSP的軟件體系 ? 匯編語言源程序的格式 ? 匯編指令 ? 尋址方式 ? 公共目標文件格式 ? 匯編語言程序設(shè)計 ? CCS開發(fā)調(diào)試工具 ? 助記符指令語法格式 [label][:] mnemonic [operand list] [。 ? 復(fù)位時, IPTR所有的位被置 1( IPTR=1FFH),并按此值將復(fù)位向 量映射到程序存儲器。 2. 中斷響應(yīng) 當(dāng)中斷響應(yīng)后, CPU會進行如下操作: (1)保存現(xiàn)場 ,將程序計數(shù)器 PC的值 壓 入堆 棧 。 ? 對于可屏蔽中斷,要滿足三個條件才能被 CPU響應(yīng) : ? 如果請求的中斷是可屏蔽中斷,則不管該中斷是否被處理器應(yīng)答, IFR寄存器中相應(yīng)的中斷標志位都被置 1。 2. 中斷屏蔽寄存器 IMR主要用 來使能或禁用除 RS和 NMI外的 硬件中斷。一般,它被分給時間關(guān)鍵的中斷資源。 ? 包括所有的軟件中斷和兩個外部硬件中斷 RS(復(fù)位) 和 NMI(非屏蔽 中斷),可通過硬件控制也可通過軟件控制。 ? 有的處理器只用了其中的一部分,如 VC5402只有 13個可屏蔽中斷 。 中斷號 ( K ) 優(yōu)先級 名稱 向量位置 功 能 0 1 RS / S I N T R 0 復(fù)位 ( 硬件和軟件復(fù)位 ) 1 2 NM I/ S I N T 1 6 4 非屏蔽中斷 2 — S I N T 1 7 8 軟件中斷 1 7 3 — S I N T 1 8 C 軟件中斷 1 8 4 — S I N T 1 9 10 軟件中斷 1 9 5 — S I N T 2 0 14 軟件中斷 2 0 6 — S I N T 2 1 18 軟件中斷 2 1 7 — S I N T 2 2 1C 軟件中斷 2 2 8 — S I N T 2 3 20 軟件中斷 2 3 9 — S I N T 2 4 24 軟件中斷 2 4 10 — S I N T 2 5 28 軟件中斷 2 5 11 — S I N T 2 6 2C 軟件中斷 2 6 12 — S I N T 2 7 30 軟件中斷 2 7 表 1 VC5402的 30個 中斷和 16個優(yōu)先級 13 — S I N T 28 34 軟件中斷 28 14 — S I N T 29 38 軟件中斷 29 1