程序轉移控制類和其它_第1頁
程序轉移控制類和其它_第2頁
程序轉移控制類和其它_第3頁
程序轉移控制類和其它_第4頁
程序轉移控制類和其它_第5頁
已閱讀5頁,還剩25頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

Sunplus

16位微控制器程序轉移和其它控制類指令分類SPCE061A的指令總共只有41種,可分為四類:數據傳送類算邏運算類(移位操作補充說明)程序轉移控制類其它控制類移位操作補充說明邏輯左移(LSL)邏輯右移(LSR)循環左移(ROL)循環右移(ROR)算術右移(ASR)邏輯左移(LSL)<1>【格式】 Rd

Rs

LSL

n【說明】該指令對Rs進行n(可設為1~4)位邏輯左移,將Rs高n位移入SB寄存器,同時Rs的低n(1~4)位用0補足,結果送

Rd寄存器。邏輯左移(LSL)<2>B15B14B13B12B11B10B9B8B7B6B5B4B3B2B1B0S3S2S1S0B12B11B10B9B8B7B6B5B4B3B2B1B0000【舉例】0xF00F邏輯左移3位。寄存器移位前的狀態為:SB

RS寄存器移位后的狀態為:SB

RdS0B15B14B13邏輯右移(LSR)【格式】 Rd

Rs

LSR

n【說明】

該指令對Rs進行n(可設為1~4)位邏輯右移,將Rs低n位移入SB寄存器同時Rs的高n(1~4)位用0補足,結果送Rd寄存器。循環左移(ROL)<1>【格式】 Rd

Rs

ROL

n【說明】

該指令對Rs進行n(可設為1~4)位循環左移,將Rs的高n位移入S寄存器,同時移動SB寄存器的高n位移入Rs的低n位,結果送Rd寄存器。循環左移(ROL)<2>B15B14B13B12B11B10B9B8B7B6B5B4B3B2B1B0S3S2S1S0B14B13B12B11B10B9B8B7B6B5B4B3B2B1B0S3S2S1S0B15【舉例】0x0010循環左移1位。移位前的各位狀態如下:SB

RS寄存器移位后的狀態為:SB

Rd循環右移(ROR)【格式】 Rd

Rs

ROR

n【說明】

該指令對Rs進行n(可設為1~4)位循環右移,將Rs的低n位移入SB寄存器,同時移動SB寄存器的低n位移入Rs的高n位,結果送Rd寄存器。算術右移(ASR)<1>【格式】 Rd

Rs

ASR

n【說明】

該指令將Rs算術右移n(可設為1~4)位,將Rs的低n位移入SB寄存器,并對最高有效位進行符號擴展,結果送Rd寄存器。該指令適合有符號數的移位操作。算術右移(ASR)<2>其中E2,E1,E0是Rs中最高有效位的符號擴展位。B15B14B13B12B11B10B9B8B7B6B5B4B3B2B1B0S3S2S1S0【舉例】 0xF111算術右移3位。移位前的各位狀態如下:RS

SB移位后的各位狀態如下:RdB2B1B0S3E2E1E0B15B14B13B12B11B10B9B8B7B6B5B4B3SB轉移控制類指令軟件中斷子程序調用指令

有條件/無條件跳轉子程序返回中斷返回無條件長跳轉軟件中斷功能描述:產生一個由指令控制的軟件中斷,CPU會跳到中斷向量[0x00FFF5]處執行軟中斷服務子程序。應用舉例:BREAK;//產生一個軟件中斷子程序調用指令功能描述:這是在64頁CODE段絕對地址范圍內的子程序調用指令。在指令執行期間,程序指針

PC和段寄存器SR都會被自動壓入棧中。應用舉例:

Call

sub_1;有條件/無條件跳轉<1>功能描述:這是一組程序條件/無條件近轉移指令。通過檢測SR寄存器中各標志位作為程序轉移的條件。若條件滿足則程序跳轉到與PC相關的地址上,跳轉范圍限制為PC+63個字;條件不滿足則程序繼續執行條件轉移指令后面的指令。有條件/無條件跳轉<2>應用舉例:

CMP

R1,R2;JNE

label1;//若不相等,跳轉到label2JMPlabe2;//無條件跳轉到label1子程序返回功能描述:從子程序返回時須用RETF指令從棧中彈出狀態寄存器SR和程序指針PC的值。由于彈棧動作發生在本指令執行之后,故彈棧后SR和PC的值應分別與調用子程序之前二者的值相同。應用舉例:

sub1:.PROC...RETF;

//

return

from

sub1.

ENDP中斷返回功能描述:從中斷服務子程序返回時須用RETF或者RETI指令從棧中彈出狀態寄存器SR和程序指針PC的值。由于彈棧動作發生在本指令執行之后,故彈棧后

SR和PC的值應分別與進入中斷服務子程序之前二者的值相同。應用舉例:.TEXT.PUBLIC

_IRQ1_IRQ1:...RETI;

//

return

from

IRQ1無條件長跳轉功能描述:無條件遠轉移到用戶指定地址。在μ'nSP?1.0,目標地址被限制在當前頁的內64K字范圍內;在

μ'nSP?

1.1,目標地址的尋址空間為整個4M字范圍。應用舉例:GOTOloop;//程序無條件跳轉到loop標號地址上其它控制類指令控制允許/禁止FIR濾波器運算過程中數據的自動移動FIQ中斷使能/屏蔽IRQ中斷使能/屏蔽Interrupt

SetNo

Operation控制允許/禁止FIR濾波器運算過程中數據的自動移動<1>功能描述:這組指令用來控制允許/禁止FIR濾波器運算過程中數據的自動移動。由于這會影響到FIR濾波器運算的狀態,且此狀態具有全局性質,故用在中斷服務子程序時要格外小心。控制允許/禁止FIR濾波器運算過程中數據的自動移動<2>應用舉例:_IRQ1:PUSH

R1,

R4

to[SP];CALL

F_IRQ1_Service_10kHz;//采樣,FIR濾波,輸出POP

R1,

R4

from

[SP];RETI;控制允許/禁止FIR濾波器運算過程中數據的自動移動<3>F_IRQ1_Service_10kHz:...;R1=Data_Entry;//R1指向采樣向量

R2=Conf_

Entry;//R2指向系數向量FIR_MOVON;//允許FIR運算過程中數據自動移動MR=[R1]*

[R2],N;//N階FIR濾波計算

FIR_MOV

OFF;RETFFIQ中斷使能/屏蔽FIQ

ONFIQ

OFF功能描述:這組指令用來開通/關斷FIQ中斷。IRQ中斷使能/屏蔽IRQ

ONIRQOFF功能描述:這組指令用來開通/關斷IRQ中斷。設置允許/禁止FIQ和IRQ中斷功能描述:這組指令用來設置允許/禁止FIQ和IRQ中斷的標志。應用舉例:INT

FIQ;//允許FIQ中斷,禁止IRQ中斷

INT

FIQ,IRQ;//允許FIQ與IRQ中斷INT

OFF;//禁止FIQ與IRQ中斷空操作<1>NOP功能描述:空操作,只是將PC指向下一個地址。,用于時間的延遲或其它目的。空操作<2>應用舉例:

Delay_Loop:NOP;//等待CMPR1,0xFFFF;//查尋結束等待的標志

JA

E

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論