网站公告列表     本站正式改版推出,欢迎大家光临!!  [dycxin  2008年8月20日]        
加入收藏
设为首页
联系站长
您现在的位置: AVR单片机开发工具网 >> 文章中心 >> 入门篇 >> 正文
专 题 栏 目
最 新 热 门
最 新 推 荐
相 关 文 章
马潮老师关于正确配置AV
用PonyProg2000 for Win
ATMEGA8单片机—AVR,AVR
AVR系列单片机简介—AVR
STK500使用说明操作步骤
AVR JTAGICE的详细使用说
AVR单片机从零开始—AVR
AVR Studio 调试快速入门
AVR 性能简介—AVR,AVR单
AVR芯片入门知识—AVR,A
  AVR起步教程1:ALU—AVR,起步教程,ALU,AVR单片机,GCC,算术逻辑单元           
AVR起步教程1:ALU—AVR,起步教程,ALU,AVR单片机,GCC,算术逻辑单元
作者:佚名 文章来源:不详 点击数: 更新时间:2008-8-22 9:35:56
本文介绍了AVR系列的ALU

AVR的ALU和其他CPU的ALU功能是一样的,它连接着寄存器、程序空间(FLASH),内部的SRAM和一些内部的功能模块。另外,ALU还能连接外部扩展的RAM.
     我们必须通过查看AVR的DataSheet去了解那些指令是通过ALU执行的。比如,你得通过ALU给寄存器加载立即数,或者通过ALU往I/O端口写数据。
 程序计数器是通过ALU与程序空间相连。它一般只是当指令被执行时被影响,或者在执行jmp(rjmp)、子程序被调用时被改变,当然,如果你使用了基于程序空间的指令的时候,它也将被改变,比如lpm。
     重点要说明的是AVR的寄存器,AVR总共有32个寄存器,但是在这些寄存器里还是有些不同。
比如,低位的寄存器(0..15)是无法进行立即数操作的,就是说,诸如ldi、andi等指令是不支持低位的寄存器, ldi r0, 0x55 这样的程序是不合法的,只能这样实现
                    ldi r16,0x55
                    mov r0,r16
     可以参看AVR官方的DATASHEET,以便知道那些指令可用于0..15寄存器。
     虽然如此,AVR的ALU功能还是不错的,一般的51只有8个寄存器(准确的来说是4组寄存器,每组8个)。而AVR有32个,而且AVR的26..31寄存器还可以当做指针来用,可以直接寻址、操作数组等。   另外,在AVR寄存器中,r0和r1还做为乘法指令的运算结果的存放寄存器,r0存放低位,r1存放高位。而在AVRGCC中,r1还作为0数值, 比如 tmp = 0; 编译的结果是
     mov r24,r1
     内部的功能模块,不同的AVR型号会有所不同,具体看参看相应的官方数据手册!

文章录入:dycxin    责任编辑:dycxin 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      开发板精品推荐
     
    AVR单片机开发工具网--东营市荣燕商贸有限公司版权所有 站长:阿荣
    联系电话:0546-7870320,13371507828 电邮:51edacn@163.com
    山东东营西城济南路百祥电脑商城B302室 邮编:257000 鲁ICP备07018763号
    公司帐号:1615011209000037682 户名:东营市荣燕商贸有限公司 开户行:工行西城支行石油大学分理处