打印

汇编程序求注释

[复制链接]
848|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
liliang9554|  楼主 | 2016-3-28 20:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
FIR低通滤波
HIGHPASS        .set        0            ;if you want to use ,please set the value to 1
BANDPASS        .set        0
LOWPASS                .set        1
        .global        start,fir
        .mmregs
COFF_FIR_START: .sect  "coff_fir"
        .if LOWPASS        
        .include        "lowpass\lowpass.inc"
        .elseif BANDPASS
        .include        "bandpass\bandpass.inc"
        .else
        .include        "highpass\highpass.inc"        
        .endif

K_FIR_BFFR                .set        32
d_data_buffer        .usect        "fir_bfr",64
FIR_DP                        .usect        "fir_vars",0
d_filin                        .usect        "fir_vars",1
d_filout                 .usect        "fir_vars",100h
output                        .usect        "fir_vars",1

        .asg        AR4,FIR_DATA_P
        .asg        AR6,INBUF_P
        .asg        AR7,OUTBUF_P
        .asg        AR3,OUTBUF
        .sect        "fir_prog"   
        nop
start:
        LD                #FIR_DP,DP        
        STM                #d_data_buffer,FIR_DATA_P
        RPTZ    A,#K_FIR_BFFR-1
        STL                A,*FIR_DATA_P+
        STM                #d_filin,INBUF_P
        STM                #d_filout,OUTBUF_P     
        STM                #output,OUTBUF
        STM                #100h,BK
fir_loop:
        NOP    ;Add Breakpoint & porbe point
        LD                *INBUF_P,A
        CALL        fir
        STH                A,*OUTBUF_P+%
        STH                A,*OUTBUF
main_end:
        b                fir_loop   
               
fir:
;        SSBX        SXM                             
;    SSBX    FRCT
        STM                #d_data_buffer,FIR_DATA_P
        STL                A,*FIR_DATA_P
        STM                #(d_data_buffer+K_FIR_BFFR-1),FIR_DATA_P   

fir_task:
        RPTZ        A,#K_FIR_BFFR-1
        MACD        *FIR_DATA_P-,COFF_FIR_START,A
        
        RET
        .end                                

相关帖子

沙发
午夜粪车| | 2016-3-28 20:06 | 只看该作者
这个绝对有难度   汇编使用的人太少了

使用特权

评论回复
板凳
liliang9554|  楼主 | 2016-3-28 20:07 | 只看该作者
只要某一块的功能大致介绍一下就可以了,不用太详细的啦~    求破啊!

使用特权

评论回复
地板
huangchui| | 2016-3-28 20:08 | 只看该作者
大致给你讲一下
start:到main_end:是主函数
fir_loop到main_end是死循环调用fir函数(call fir)
b是无条件跳转
fir到RET(返回)是fir函数的主题
fir_task到RET中间的两句就是关键的算法
RPTZ:清累加器,重复下一句
MACD:带数据移位的乘累加指令

使用特权

评论回复
5
jiahy| | 2016-3-28 20:09 | 只看该作者
正解,剩下的stl,sth,stm,ld都是赋值语句

使用特权

评论回复
6
liliang9554|  楼主 | 2016-3-28 20:09 | 只看该作者
HIGHPASS        .set        0            ;if you want to use ,please set the value to 1
BANDPASS        .set        0
LOWPASS                .set        1
        .global        start,fir
        .mmregs
COFF_FIR_START: .sect  "coff_fir"
        .if LOWPASS        
        .include        "lowpass\lowpass.inc"
        .elseif BANDPASS
        .include        "bandpass\bandpass.inc"
        .else
        .include        "highpass\highpass.inc"        
        .endif

K_FIR_BFFR                .set        32
d_data_buffer        .usect        "fir_bfr",64
FIR_DP                        .usect        "fir_vars",0
d_filin                        .usect        "fir_vars",1
d_filout                 .usect        "fir_vars",100h
output                        .usect        "fir_vars",1

        .asg        AR4,FIR_DATA_P
        .asg        AR6,INBUF_P
        .asg        AR7,OUTBUF_P
        .asg        AR3,OUTBUF
        .sect        "fir_prog"   
        nop

是什么功能?

使用特权

评论回复
7
lizye| | 2016-3-28 20:10 | 只看该作者
这些都是初始化的工作

使用特权

评论回复
8
liliang9554|  楼主 | 2016-3-28 20:11 | 只看该作者
能详细说说吗

使用特权

评论回复
9
jiahy| | 2016-3-28 20:12 | 只看该作者

.set可以认为是赋值操作,对一个数据
.sect也是赋值,但是是对一块数据
.usect同上,但是不给具体的值,只是开辟一块空间
.asg可以认为是重命名
.globle就是定义成全局变量

使用特权

评论回复
10
liliang9554|  楼主 | 2016-3-28 20:12 | 只看该作者
谢谢,谢谢

使用特权

评论回复
11
豆腐块| | 2016-3-28 21:43 | 只看该作者
现在能读汇编的人不多了吧

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

950

主题

11568

帖子

6

粉丝