⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pn_ssrg.asm

📁 用DSP5410实现PN码,汇编语言编程
💻 ASM
字号:
            .title   "PRODUCE_PN.asm"
            .mmregs
            .bss PN,8
            .bss SEQUENCE,255*2
STACK       .usect   "STACK",80
INIT_ST0    .set      1800h              ;st0的初值         
INIT_ST1    .set      2800h              ;st1的初值
order       .set      8                  ;本原多项式的阶数
pn_len      .set      255                ;产生的PN码的码长
            .global   _c_int00
            .data
coefficient:
            .word 0001h ,0000h, 0000h, 0000h  
            .word 0001h, 0001h, 0001h, 0000h
            .sect	  "vector"
;--------------------------------------------------------------------
; interrupte vector table !
;--------------------------------------------------------------------
             
int_reset:      b _c_int00
                nop
                nop
                .space 72*16

int_tint:       b  main
		        nop
		        nop
                .space 48*16
                .text
_c_int00:                               
             STM      #0,IMR
             STM      #0x1020,PMST
             STM      #0x0010,TCR
             STM      #2499,PRD
             STM      #0x0008,IMR
             STM      #0x0030,TCR            ;以上为对定时器的设置,以确定码速
             
             STM      #INIT_ST0,ST0
             STM      #INIT_ST1,ST1          ;初始化st0,st1,其中CMPT=0,FRCT=0
             STM      #STACK+20,SP
            .asg      AR2,PN_POINTER
            .asg      AR3,COEFF_TABLE
            .asg      AR4,FA
            .asg      AR5,SEQUENCE_POINTER 
             STM      PN,PN_POINTER
             STM      SEQUENCE,SEQUENCE_POINTER
             ST       #1,*PN_POINTER+
             ST       #(order-2),FA
             MVMD     FA,BRC       
             RPTB     INIT_PN-1
             ST       #0,*PN_POINTER+
             nop
             
INIT_PN:                                      ;将PN码的初值设为00000001
             ST       #(pn_len-1),FA
             MVMD     FA,BRC
             RPTB     INIT_SEQUENCE-1
             ST       #0,*SEQUENCE_POINTER+   ;将所得的PN码序列SEQUENCE的存储区初始化为0
             NOP
INIT_SEQUENCE:
            STM       SEQUENCE,SEQUENCE_POINTER
            STM       PN,PN_POINTER
            STM       coefficient,COEFF_TABLE
            STM       #order,BK
            STM       #1,AR0
            RSBX      INTM
            STM       #0x0000,TCR             ;启动定时器
WAIT:       NOP
            NOP
            B          WAIT

main:       MVDD       *PN_POINTER,*SEQUENCE_POINTER+
            RPTZ       A,#(order-1)
            MAC        *PN_POINTER+0%,*COEFF_TABLE+0%,A
            AND        #1,A
            STL        A,*PN_POINTER+0%

            RETE
            
                       
            
            
            
            
            

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -