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

📄 sin_16.asm

📁 用汇编语言编写的正弦信号函数与查表法不同
💻 ASM
字号:
;Filename sin_16.asm
       .title "sin_16_prog"
       .mmregs
       .global _c_int00
       .include "vc54xnt.inc"
STACK  .usect  "stack",stack_size
SYSTEM_STACK   .set  STACK+stack_size
       .sect "vectors"
Reset:  
       BD  _c_int00
       STM  #SYSTEM_STACK,sp
       .space 31*4*16
       .data
x_val  .word  0x7333     ;x=0.45,x*2^16=0x7333
x_3    .word  0          ;x^3
sin_x  .word  0          ;sin(x)
cof_3  .word  0x2AAA     ;1/3!
cof_5  .word  0x222      ;1/5!
cof_7  .word  0x0D       ;1/7!
       .text             ;代码段开始
_c_int00:
        CALL c54x_init    ;调用初始化程序
        STM  #x_val,AR0   ;AR0->x_val
        SQUR *AR0,A       ;A=x^2,A=x^2*2^16*2^16
        MPYA *AR0         ;B=x*A(31-16),B=x^3*2^16*2^16
        STM  #x_3,AR1     ;AR1->x_3
        STL  B,*AR1       ;x_3=x^3*2^16*2^16
        STM  #cof_3,AR5   ;AR5->cof_3
        LD   B,A          ;A=B
        MPYA  *AR5        ;B=cof_3*A(31-16),B=1/3!*x^3*2^16*2^16
        LD  B,-16,A       ;A=1/3!*x^3*2^16
        LD  #0h,B         ;B=0
        ADD *AR0,B         ;B=x*2^16
        SUB A,B            ;B=(x-1/3!*x^3)*2^16
        STM #sin_x,AR4     ;AR4->sin_x
        STL  B,*AR4        ;sin_x=(x-1/3!*x^3)*2^16
        
        LD  *AR1,A         ;A=x^3*2^16        
        MPYA *AR0          ;B=x^4*2^16*2^16
        LD B,A             ;A=B
        MPYA *AR0          ;B=x^5*2^16*2^16
        LD B,A             ;A=B
        STM #cof_5,AR6     ;AR6->cof_5
        MPYA  *AR6         ;B=cof_5*A(31-16),B=1/5!*x^5*2^16*2^16
        LD B,-16,A         ;A=1/5!*x^5*2^16
        LD *AR4,B          ;B=(x-1/3!*x^3)*2^16
        ADD A,B            ;B=(x-1/3!*x^3+1/5!*x^5)*2^16
        STL B,*AR4         ;sin_x=(x-1/3!*x^3+1/5!*x^5)*2^16
        SQUR  *AR1,A       ;A=(x_3)^2, A=x^6*2^16*2^16
        MPYA *AR0          ;B=x^7*2^16*2^16
        STM #cof_7,AR7     ;AR7->cof_7
        LD B,A             ;A=B
        MPYA *AR7          ;B=1/7!*x^7*2^16*2^16
        LD B,-16,A         ;A=1/7!*x^7*2^16
        LD *AR4,B          ;B=(x-1/3!*x^3+1/5!*x^5)*2^16
        SUB A,B            ;B=(x-1/3!*x^3+1/5!*x^5-1/7!*x^7)*2^16
        STL B,*AR4         ;sin_x=(x-1/3!*x^3+1/5!*x^5-1/7!*x^7)*2^16
main_start:
        B main_start
        .end

⌨️ 快捷键说明

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