[AVR单片机] atmega16有可以有多少个变量?

[复制链接]
2341|19
 楼主| LJ_Austin 发表于 2014-7-2 16:13 | 显示全部楼层 |阅读模式
问一个比较二的问题,atmega16有32个工作寄存器,除去26-31用来作为寻址指针,那么我是不是可以认为最多可以有26个寄存器用来存储变量,不包括临时变量。最多26个变量?
 楼主| LJ_Austin 发表于 2014-7-2 16:13 | 显示全部楼层
请大侠们指指点点
123654789 发表于 2014-7-2 16:33 | 显示全部楼层
当然不是仅仅26个变量

变量可以放在RAM里面的
123654789 发表于 2014-7-2 16:36 | 显示全部楼层
能存放数据的地方都可以认为是存放变量
 楼主| LJ_Austin 发表于 2014-7-2 16:37 | 显示全部楼层
123654789 发表于 2014-7-2 16:33
当然不是仅仅26个变量

变量可以放在RAM里面的

放ram里面通过指针去取么
123654789 发表于 2014-7-2 16:39 | 显示全部楼层
如果你是用C语言  就不用去考虑如何取这个变量的拉
(如何取得这个变量,那是编译器的事情了)
 楼主| LJ_Austin 发表于 2014-7-2 16:42 | 显示全部楼层
123654789 发表于 2014-7-2 16:39
如果你是用C语言  就不用去考虑如何取这个变量的拉
(如何取得这个变量,那是编译器的事情了) ...

太感谢了!!解决了我很大的疑惑,汇编的话应该是通过指针吧。
123654789 发表于 2014-7-2 16:42 | 显示全部楼层
LJ_Austin 发表于 2014-7-2 16:37
放ram里面通过指针去取么



放ram里面的变量,可以通过指针去取这个变量
但是,不一定是要通过指针去取
 楼主| LJ_Austin 发表于 2014-7-2 16:45 | 显示全部楼层
123654789 发表于 2014-7-2 16:42
放ram里面的变量,可以通过指针去取这个变量
但是,不一定是要通过指针去取 ...

照这么说只要能对ram空间进行操作的手段都可以取么
123654789 发表于 2014-7-2 16:48 | 显示全部楼层
LJ_Austin 发表于 2014-7-2 16:45
照这么说只要能对ram空间进行操作的手段都可以取么

回答 是的

可以间接寻址,也可以直接寻址

通过 X Y Z指针,是属于间接寻址,

间接寻址便于循环
123654789 发表于 2014-7-2 16:54 | 显示全部楼层
以MEGA169为例
他的SRAM是1024个字节
如果这1024个字节不能存储变量,那么这1024个字节岂不是多余无用的东西 ?????
 楼主| LJ_Austin 发表于 2014-7-2 17:01 | 显示全部楼层
123654789 发表于 2014-7-2 16:54
以MEGA169为例
他的SRAM是1024个字节
如果这1024个字节不能存储变量,那么这1024个字节岂不是多余无用的东西 ...

我只想给你一百万个赞!!!
 楼主| LJ_Austin 发表于 2014-7-2 17:01 | 显示全部楼层
LJ_Austin 发表于 2014-7-2 17:01
我只想给你一百万个赞!!!

以后还请多多指教。
huangqi412 发表于 2014-7-3 08:45 | 显示全部楼层
寻址模式。。。  
原野之狼 发表于 2014-7-3 09:19 | 显示全部楼层
想要深入这个问题就好好跟踪一下汇编。

指针属于C语言的内容。

而在汇编里可不会采用指针这个词,而是用间接寻址这个术语。
ningling_21 发表于 2014-7-3 11:04 | 显示全部楼层
原野之狼 发表于 2014-7-3 09:19
想要深入这个问题就好好跟踪一下汇编。

指针属于C语言的内容。

汇编也有指针,DPTR不就是数据指针么...
原野之狼 发表于 2014-7-3 11:09 | 显示全部楼层
ningling_21 发表于 2014-7-3 11:04
汇编也有指针,DPTR不就是数据指针么...

可以这么理解
ddllxxrr 发表于 2014-7-8 19:36 | 显示全部楼层
单对问题来回答,应为不记其数个变量才对
LED2013 发表于 2014-7-8 21:41 | 显示全部楼层

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
您需要登录后才可以回帖 登录 | 注册

本版积分规则

34

主题

153

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部