430 汇编的2个小问题,求人点拨一下!

2019-03-24 11:34发布

就是现在我刚刚接触430的汇编语言,好多符号我都不知道该怎么用了,用了之后是什么意义,比如倒是是立即数,还是地址,还是数据作为地址再取数,就比如下面这几个语句,你能帮我看看么?
1、  电子表要显示秒。这里一开始R15已经有了一个数了,又add     #lcd_7d_tab,r15;mov.b   @r15,r15               那R15中的究竟是怎么变化的呢,这里的#和       @是怎么用的呢?代表的是什么呢?
        mov.b   &sec_b,r15               ;显示2位秒
        call    #bin_bcd_2_zcx
        mov     r15,r14
        and     #000ffh,r15
        add     #lcd_7d_tab,r15
        mov.b   @r15,r15
2、还有这个显示子程序,前两个mov  后面的符号为什么用#而不是&了呢,具体又代表什么意思呢?mov.b   @r15,0(r14)  这条我也理解不了
lcd_zcx
        mov     #dis_buf_b,r15           
        mov     #LCDM7,r14               
        mov     #7,r13
lcd_loop
        mov.b   @r15,0(r14)               
        inc     r15
        dec     r14
        dec     r13
        jnz     lcd_loop
        ret
此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
1条回答
sjtitr
1楼-- · 2019-03-24 16:28
< 我知道的也不多,不过对照手册,可以帮你简单分析一下:

1.#
    这个符号的用法是立即数,也就是把#后面的数值直接拿来处理——是放在某寄存器也好,或是参与数学运算也好

2.&
    这个符号的用法是绝对地址寻址,也就是把&后面的数值当作地址,从内存中的这个地址取出数值,然后处理这个数值

3.@
    这个符号的用法是间接寄存器寻址,和&类似,不过它后面只接寄存器,把寄存器中的数值当作地址,从内存的这个地址取出数值进行处理。

如有错误,欢迎指正。

一周热门 更多>

相关问题

    相关文章