?? main.asm
字號:
.def start
.def loop
.def Num
.def _y
.def _A
.def _B
.def _C
TIM1 .set 0x2400 ;Timer1 TIM Register Address
PRD1 .set 0x2401 ;Timer1 PRD Register Address
TCR1 .set 0x2402 ;Timer1 TCR Register Address
PRSC1 .set 0x2403 ;Timer1 PRSC Register Address
sp_stack_len .set 200
ssp_stack_len .set 200
sp_stack .usect "stack",sp_stack_len
ssp_stack .usect "stack",ssp_stack_len
.data
_A: .word 0x678D ;A=1.618
_B: .word 0xC000 ;B=-1
_C: .word 0x25A1 ;C=0.588
Num .usect "B_DARAM", 1 ;Suffix of Array
_y .usect "B_DARAM",101 ;Result Array
;Length = 101
.sect "AsmStart"
start:
BCLR C54CM
.C54CM_off
BCLR ARMS
.ARMS_off
;Initialization of Stack
AMOV #(sp_stack + sp_stack_len),XSP
MOV #(ssp_stack + ssp_stack_len),SSP
;Initialization of Interrupt
BSET INTM
MOV #0x04FF,mmap(IVPD)
MOV #0x04FF,mmap(IVPH)
MOV #0xFFFF,mmap(IER0) ;enable nothing
MOV #0xFFFF,mmap(IER1) ;only enable Timer1 Interrupt
;Initialization of Timer1
;assume that DSP work clock is 160MHz
MOV #0x000F,PORT(#PRSC1)
MOV #0x03E7,PORT(#PRD1)
MOV #0x0C38,PORT(#TCR1)
MOV #0x0828,PORT(#TCR1)
;Set FRCT =1, in order to do fraction multiply
BSET FRCT
BCLR M40
;Initialization of y(0), y(1)
MOV #_y,AR0
MOV #0x0000,*AR0 ;y(0)=0
MOV *(#_C),T0
MOV T0,AC1
MOV #1,T0
MOV AC1<<T0,*AR0(1) ;y(1)=C
MOV #0x0002,*(#Num) ;Num=2
BCLR INTM
loop: NOP
NOP
NOP
B loop
.end
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -