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

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

Sunplus

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

Rs

LSL

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

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

RS寄存器移位后的狀態(tài)為:SB

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

Rs

LSR

n【說明】

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

Rs

ROL

n【說明】

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

RS寄存器移位后的狀態(tài)為:SB

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

Rs

ROR

n【說明】

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

Rs

ASR

n【說明】

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

SB移位后的各位狀態(tài)如下:RdB2B1B0S3E2E1E0B15B14B13B12B11B10B9B8B7B6B5B4B3SB轉(zhuǎn)移控制類指令軟件中斷子程序調(diào)用指令

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

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

Call

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

CMP

R1,R2;JNE

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

sub1:.PROC...RETF;

//

return

from

sub1.

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

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

_IRQ1_IRQ1:...RETI;

//

return

from

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

μ'nSP?

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

SetNo

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

R1,

R4

to[SP];CALL

F_IRQ1_Service_10kHz;//采樣,F(xiàn)IR濾波,輸出POP

R1,

R4

from

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

R2=Conf_

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

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

FIR_MOV

OFF;RETFFIQ中斷使能/屏蔽FIQ

ONFIQ

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

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

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

INT

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

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

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

JA

E

溫馨提示

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

評論

0/150

提交評論