你好,
我初学汇编,想用汇编编写一段改变XF位从而改变LED灯暗灭的简单程序。(5416DSP, CCS3.3)
以下是我的程序:
1.main.asm
.def main .def timer0 .mmregs .data ms .word 00h .text main: STM #0000h,CLKMD loop1: LD CLKMD,A AND #01h,A BC loop1,AEQ STM #40C7h,CLKMD STM #4240h,SWWSR STM #0FFA0h,PMST STM #0802h,BSCR ;INITIALIZE THE TIMER STM #0000h,IMR STM #0010h,TCR STM #186Ah,PRD STM #0C2Fh,TCR STM #0008h,IFR ORM #0008h,*(IMR) RSBX INTM LD #40,DP;因为data段起始地址为0x8000,是第40页,其中有变量ms loop2: LD @ms,A SUB #500,A BC loop2,ANEQ ST #0,@ms RSBX XF loop3: LD @ms,A SUB #500,A BC loop3,ANEQ BD loop2 ST #0,@ms SSBX XF ;interrupt timer0: PSHM AL PSHM AH LD @ms,A ADD #01h,A STL A,@ms POPM AH POPM AL RETE
2.
.ref main
.ref timer0
.sect ".vectors"
rs: BD main
nop
nop
nmi: rete ;NMI, SINT16
nop
NOP
NOP
sint17: rete ;SINT17
NOP
NOP
sint18: rete ;SINT18
NOP
NOP
sint19: rete ;SINT19
NOP
NOP
sint20: rete ;SINT20
NOP
NOP
sint21: rete ;SINT21
NOP
NOP
sint22: rete ;SINT22
NOP
NOP
sint23: rete ;SINT23
NOP
NOP
sint24: rete ;SINT24
NOP
NOP
sint25: rete ;SINT25
NOP
NOP
sint26: rete ;SINT26
NOP
NOP
sint27: rete ;SINT27
NOP
NOP
sint28: rete ;SINT28
NOP
NOP
sint29: rete ;SINT29
NOP
NOP
sint30: rete ;SINT30
NOP
NOP
int0: rete ;INT0, SINT0
NOP
NOP
int1: rete ;INT1, SINT1
NOP
NOP
int2: rete ;INT2, SINT2
NOP
NOP
tint0: B timer0 ;TINT0, SINT3
NOP
NOP
brint0: rete ;BRINT0, SINT4
NOP
NOP
bxint0: rete ;BXINT0, SINT5
NOP
NOP
dmac0: rete ;DMAC0, brint2, SINT6
NOP
NOP
dmac1: rete ;DMAC1, bxint2, SINT7 ??
NOP
NOP
int3: rete ;INT3, SINT8
NOP
NOP
hpint:rete ;HPINT, SINT9
NOP
NOP
brint1:rete ;BRINT1 or DMAC2, SINT10
NOP
NOP
bxint1: rete ;BXINT1 or DMAC3, SINT11
NOP
NOP
dmac4: rete ;DMAC4, SINT12
NOP
NOP
dmac5: rete ;DMAC5, SINT13
NOP
NOP
rsvd1: rete ;reserved
NOP
NOP
rsvd2: rete ;reserved
NOP
NOP
3. my.cmd
MEMORY
{
PAGE 0:
VECT: origin = 0xFF80 length = 0x80
DARAM1: origin = 0x0080 length = 0x200
PAGE 1:
DARAM2: origin = 0x8000 length = 0x100
}
SECTIONS
{
.text :> DARAM1 PAGE 0
.vectors :> VECT PAGE 0
.data :> DARAM2 PAGE 1
.bss :> DARAM2 PAGE 1
}
遇到的问题是,当直接加载后,跳出的窗口是没有指令的,即”-----------------“
当加载后,并且用.geL文件重启,即PC指向中断向量表,则程序无法正常从中断向量表跳到main。
请高手解答一下,谢谢!
vect.asm