当前位置:首页 > 单片机 > 单片机
[导读]学单片机那么久了,感觉想要深入,还得看汇编语言,至少得了解单片机内部结构。下面就以ATmega16为例,介绍一下AVR单片机结构和汇编语言。AVR单片机的CPU内核结构如上两图,左图是虚线框内AVR CPU的内核结构,右图是

学单片机那么久了,感觉想要深入,还得看汇编语言,至少得了解单片机内部结构。

下面就以ATmega16为例,介绍一下AVR单片机结构和汇编语言。

AVR单片机的CPU内核结构

如上两图,左图是虚线框内AVR CPU的内核结构,右图是AVR单片机内核结构的方框图,可以看出AVR单片机的数据总线(CPU字长)是8位的,也就说它是8位单片机。

AVR采用了Harvard结构,具有独立的数据和程序总线,CPU在执行一条指令的同时,就将PC中指定的下一条指令取出,构成了一级流水线运行方式,实现了一个时钟周期执行一条指令,数据吞吐量高达1MIPS/MHz。

AVR CPU内核由几个重要的部分组成,它们分别是:

A.算数逻辑单元ALU(Arithmetic Logic Unit)

AVR ALU与32个通用工作寄存器直接相连。寄存器与寄存器之间、寄存器与立即数之间的ALU运算只需要一个时钟周期。ALU操作分为3类:算术、逻辑和位操作,此外还提供了支持无/有符号数和分数乘法的乘法器,操作结果的状态将影响到状态寄存器SREG(Status Register)。

B.程序计数器PC、指令寄存器和指令译码器

程序计数器PC用来存放下一条需要执行指令在程序存储器(ROM)空间的地址(指向FlashROM空间),取出的指令存放在指令寄存器中,然后送入指令译码器中产生各种控制信号,控制CPU的运行(执行指令)。

AVR一条指令的长度大多数为16位,还有少部分为32位,因此AVR的程序存储器结构实际上是以字(16位)为一个存储单元的。

ATmega16单片机的程序计数器为13位,正好满足了对片内8K字(及16K字节)的Flash程序存储器空间直接寻址的需要。

C.通用寄存器General Purpose Registers

在AVR中,由命名为R0~R31的32个8位通用工作寄存器构成一个“通用快速工作寄存器组”,为ALU提供操作数。它们的在RAM的映射空间地址是$0000~$001F,其中有6个寄存器($001A-$001F)可以合并为3个16位间接寻址寄存器指针,分别被称为X寄存器,Y寄存器,和Z寄存器,用于对数据存储器(SRAM)进行间接寻址。

D.状态寄存器-SREG

状态寄存器SREG是一个8位标志寄存器,用来存放指令执行后的有关状态和结果的标志,各位状态通常是在指令执行过程中自动产生的,但也可以由用户根据需要用专用指令加以改变。

位7-I:全局中断使能位

当I位被置位时,表示CPU可以响应中断请求,反之,则所有中断被禁止。I位可以通过SEI和CLI指令来置位和清零,在中断发生后,I位由硬件清除,并由RETI(中断返回)指令置位。

位6-T:位拷贝存储

位拷贝指令BLD和BST利用T作为目的或源地址。BST把寄存器的某一位拷贝到T,而BLD把T拷贝到寄存器的某一位。

位5-H:半进位标志半进位标志H表示算术操作发生了半进位,此标志对于BCD运算非常有用。

位4-S:符号位S=N⊕V,S为负数标志N与2的补码溢出标志V的异或

位3-V:2的补码溢出标志,支持2的补码运算

位2-N:负数标志 表明算术或逻辑操作结果为负

位1-Z:零标志 表明算术或逻辑操作结果为零

位0-C:进位标志 表明算术或逻辑操作发生了进位

E.堆栈指针寄存器SP(Stack Point)

堆栈指针主要用来保存临时数据、局部变量和中断/子程序的返回地址。堆栈指针总是指向堆栈的顶部,AVR的堆栈是向下生长的,即新的数据推入堆栈时,堆栈指针的数值将减小。

处在I/O地址空间的&3E($005E)和$3D($005D)的两个8位寄存器构成了AVR单片机的16位堆栈指针寄存器SP,分别为SPH,SPL。

堆栈指针指向数据SRAM堆栈区,必须指向高于0x60的地址空间,所以通常初始化时将SP的指针设在SRAM最高处。

使用PUSH指令将数据推入堆栈时指针减一;而子程序或中断返回地址推入堆栈时指针将减二。

使用POP指令将数据弹出堆栈时,堆栈指针加一;而用RET或RETI指令从子程序或中断返回时堆栈指针加二。


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

万用表又称多用表,是强弱电维修不可或缺的仪表,无线电维修、电脑主板维修等都离不开它。万用表基本功能有交直流电压、直流电流和电阻等

关键字: 指针式万用表 内部结构 直流电流

iPhone 14是苹果公司于2022年9月8日发布的手机产品。 [6] iPhone 14搭载6.1英寸OLED屏幕材质,配有蓝色,紫色,午夜色,星光色,红色五款颜色,长度约146.7mm、宽度约71.5mm、厚度约7...

关键字: iPhone 14 内部结构 散热系统

在下述的内容中,小编将会对交换机的相关消息予以报道,如果交换机是您想要了解的焦点之一,不妨和小编共同阅读这篇文章哦。

关键字: 路由器 交换机 内部结构

为了增进大家对电子管的认识,本文将基于两方面介绍电子管:1.电子管及其内部结构、2.电子管老化问题分析。

关键字: 电子管 指数 内部结构

我们来思考一个问题,当我们在编程器中把一条指令写进单片机内部,然后取下单片机,单片机就可以执行这条指令,那么这条指令一定保存在单片机的某个地方,并且这个地方在单片机掉电后依然可以保持这条指令不会丢失,这是个什么地方呢?

关键字: 单片机 指令 内部结构

在这篇文章中,小编将为大家带来电子管、电子管内部结构的相关报道。

关键字: 电子管 内部结构 栅极

在这篇文章中,小编将为大家带来微星绝影2 GS66轻薄游戏本内部结构的相关报道。如果你对本文即将要讲解的内容存在一定兴趣,不妨继续往下阅读哦。

关键字: 内部结构 微星 游戏本

为增进大家对连接器的认识,本文将对连接器的内部结构和工业连接器连接形式分类予以介绍。如果你对本文即将讨论的内容存在兴趣,不妨继续往下阅读哦。

关键字: 内部结构 指数 连接器

在这篇文章中,小编将对惠普EliteBook 735 G6笔记本的内部结构进行探讨,一起来了解下吧。

关键字: elitebook 内部结构 惠普

在这篇文章中,小编将为大家展示小米笔记本Pro 15增强版的内部结构。

关键字: 15增强版 内部结构 小米 小米笔记本pro
关闭
关闭