apitx 发表于 2010-3-10 20:24:15

汇编,我该如何去定义这17个寄存器呢?

大家好!

ATtiny13 的寄存器要如何设置?我用的是AVR Studio 4.18版 ,汇编语言,看了ATtiny13 数据表的 “寄存器概述”,从地址0x00到0x3F,除了保留的都被使用作特殊寄存器了,我现在程序需要用到十七个寄存器,来保存一些数据,就从0x40地址到0x50定义,定义方法如下:

.DEFOUT1=0x40; 定义输出1寄存器
.DEFOUT2=0x41; 定义输出2寄存器
.DEFIN1=0x42;定义输入1寄存器
.DEFIN2=0x43;定义输入2寄存器
.DEFCOUNT1=0x44; 定义键值1寄存器
.DEFCOUNT2=0x46; 定义键值2寄存器
         ;
         ;
.DEFSAXIN=0x50; 定义刷新用寄存器
编译提示错误, error: syntax error, unexpected INTEGER, expecting REGISTER
试着把0x40,改成R40编译提示也是错误,error: syntax error, unexpected SYMBOL, expecting REGISTER

我该如何去定义这17个寄存器呢?不与特殊寄存器起冲突。应该怎样写代码?地址又指向哪里为好? 请大家指点。

ATtiny13 数据表在 “寄存器概述”中,地址0x09到0x13,提示的是“保留” ,在表格的底部,说明“保留”的寄存器不可写操作,而在第7页中的“通用工作寄存器”描述中,R13到R17所对应的地址在0x0D至0x11,在数据表的一些代码例子中也看到R16和R17在应用,既然保留了,怎么还可以用呢?这二种描述不是有冲突了吗? 请解释一下 。
页: [1]
查看完整版本: 汇编,我该如何去定义这17个寄存器呢?