fsk1.asm

来自「fir的c语言程序」· 汇编 代码 · 共 122 行

ASM
122
字号

            .title  "fsk1.asm"
            .def _c_int00
            .mmregs

            .global mainstart
OFF_INTIMER .SET 04CH
INIT_A0     .SET 07E6DH
INIT_B0     .SET 0C000H
INIT_C0     .SET 00A03H
INIT_A1     .SET 079BCH
INIT_B1     .SET 0C000H
INIT_C1     .SET 013C7H

            .bss y0,1
            .bss y1,1
            .bss y2,1
            .bss temp,1
            .bss AA,1
            .bss BB,1
            .bss CC,1
                  
            
          .sect "vector"
vector:   .space 4*16*19
           B timer   
           nop
           nop
           .space 4*16*12
            
                    
            .text
_c_int00:   LD #0,DP
            SSBX SXM
            LD #vector,A
            AND #0FF80h,A
            ANDM #007Fh,PMST
            OR PMST,A
            STLM A,PMST
            STM #0500H,AR1
             SSBX INTM
            STM #10H,TCR
            STM #49,PRD 
            STM #20H,TCR
            LDM IMR,A
            OR #08H,A
            STLM A,IMR 
             SSBX FRCT
        
            
            
          
                       
           
            
  
data_in:    LD #0,A
            AND #1b,A
            BC next,AGT
            LD #INIT_A0,A
            STL A,*(AA)
            LD #INIT_B0,A
            STL A,*(BB)
            LD #INIT_C0,A
            STL A,*(CC)
            B  next1
next:       LD #INIT_A1,A
            STL A,*(AA)
            LD #INIT_B1,A
            STL A,*(BB)
            LD #INIT_C1,A
            STL A,*(CC)
            
next1:     
            PSHD *(CC)
            POPD *(y2)
            LD *(AA),T
            MPY *(y2),A
            STH A,*(y1)
          
            STM #0H,TCR
            RSBX INTM
            STM #40H,AR7
          
          
      
again:      nop
            BANZ  again,*AR7
         
            SSBX  INTM
            
            B data_in
            nop
            nop
            nop
            nop
            nop
            nop
           
            
            
timer:     
            LD #BB,DP
            LD *(BB),T
            MPY *(y2),A
            LTD *(y1)
         
            MAC *(AA),A
            STH A,1,*(y1)
            STH A,*(y0)
            LD *(y1),B
            STL B,*AR1+
            nop
            LDM AR7,A
            SUB #1,A
            STLM  A,AR7
int_end:   
            nop
            RETE
            .END           
            

⌨️ 快捷键说明

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