打印
[国产单片机]

关于这段初始化程序的用意

[复制链接]
1161|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
dianzilc|  楼主 | 2014-7-5 14:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 dianzilc 于 2014-7-5 14:25 编辑

void        InitMCU(void)
{
        __asm
        {
                CLR     0X00
                NOP
                DECMS   0X00
                JMP     $-2
        };
        Y=0;
        for(Z=0;Z<=33;Z++)
        {
            _YZ=0;
        }
   ……
}
所用的单片机是松翰的SN8P2511,Y和Z是两个寄存器, "_YZ=0;"这样写什么意思?前面的汇编的作用是什么,小弟新手,请各位知道的前辈解释下,谢谢!

相关帖子

沙发
ayb_ice| | 2014-7-5 14:27 | 只看该作者
应该是RAM清零

使用特权

评论回复
板凳
旭日东起| | 2014-7-6 18:11 | 只看该作者
间接寻址,清RAM

使用特权

评论回复
地板
dianzilc|  楼主 | 2014-7-9 20:16 | 只看该作者
本帖最后由 dianzilc 于 2014-7-9 20:20 编辑

谢谢两位大侠指点,我也在数据手册上找到了_YZ的作用,的确是间接寻址。第一次用松翰的单片机不习惯,还是得多看数据手册才行啊。现在对汇编的这两句感觉没什么用啊:DECMS   0X00
JMP     $-2    不懂各位大侠们怎么看?我感觉这两句的执行过程是:地址0x00的值循环自减1(之前已清零),直到0x00中的值再次为0才跳出循环。不懂这样的理解对不对?

使用特权

评论回复
5
moyue| | 2014-7-18 18:08 | 只看该作者
一般在写程序的开始,都会有一段清ram的动作,规格书中写道,YZ的用法

使用特权

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

本版积分规则

18

主题

92

帖子

0

粉丝