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

📄 init.asm

📁 北京理工大学DSP C6000课程的实验程序
💻 ASM
字号:
                                            .title        "init.asm"
                                            .def            init
                                            .ref            DotP

short                                   .equ          2
word                                   .equ          4

                                            .sect         "init_data"
table                                   .short        1,3,5,7,9,11,13,15,17,19
                                            .short        21,23,25,27,29,31,33,35,37,39             
                                            .short        41,43,45,47,49,51,53,55,57,59
                                            .short        60,58,56,54,52,50,48,46,44,42
                                            .short        40,38,36,34,32,30,28,26,24,22
                                            .short        20,18,16,14,12,10,8,6,4,2
                                            .short        0

a                                          .usect        "var",30 * short
x                                          .usect        "var",30 * short
y                                          .usect        "var",1 * short

                                            .sect "init_code"
init:
                         mvk           .s1               table,A0 ; A0 = &table
                         mvkh         .s1               table,A0
                         mvk           .s1               a,A1 ; A1 = &a
                         mvkh         .s1               a,A1
                         mvk           .s2               61,B1 ; loop counter->61 xfers
loop1:               ldh             .d1               *A0++,A5
                         nop                                4
                         sth              .d1              A5,*A1++
                         sub             .L2              B1,1,B1
                [B1]  b                 .s1              loop1
                         nop                                5
 
last:                  b                 .s1              main
                         nop                                5

;**********************************************************
;***                                    main code                                                  ***
;**********************************************************
                               .sect          "main_code"

main:      mvk       .s1              a,a4            ; load 1st arg (*a[])
                mvkh     .s1              a,a4
                mvk       .s2              x,b4            ; load 2nd arg (*x[])
                mvkh     .s2              x,b4
                mvk       .s2              30,b1          ; load loop count
                mvk       .s1              ret,a5       ; save return-to address
                mvkh     .s1              ret,a5  
                b             .s2              DotP           ; call subroutine 
                nop                            5
ret:         mvk        .s1              y,a1
               mvkh      .s1              y,a1
               sth           .d1             a4,*a1         ; store returned result

end:        b                                $                  ; endless loop
                nop                            5   

⌨️ 快捷键说明

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