当前位置:首页 > 单片机 > 单片机
[导读]学单片机那么久了,感觉想要深入,还得看汇编语言,至少得了解单片机内部结构。下面就以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指令从子程序或中断返回时堆栈指针加二。


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

 米兰诺维奇博士提出"语言能力双轨进化论",动态命题技术破解安全性困局 贵阳2025年7月23日 /美通社/ -- 7月22日,在第八届英语教学与测评学术研讨会上,国际语言测评权威专家、朗...

关键字: AI 人工智能 指令 研讨会

北京 2025年7月14日 /美通社/ -- 近日,主线科技为广州港设备自动化改造示范区项目圆满完成了纯电集卡的自动驾驶技术升级,并将其商业化交付,助力项目顺利迈入"前沿设备远控半自动+堆场设备全自动+水平运...

关键字: 智能化 自动化 线控 指令

广州 2025年7月4日 /美通社/ -- 日前,在德国慕尼黑机器人及自动化技术展览会(Automatica)期间,国际独立第三方检测、检验和认证机构德国莱茵TÜ...

关键字: 自动化 CE 工业机器 指令

广州 2025年7月4日 /美通社/ -- 日前,在德国慕尼黑机器人及自动化技术展览会(Automatica)期间,国际独立第三方检测、检验和认证机构德国莱茵TÜV大中华区(简称"T...

关键字: 指令 电磁兼容 协作机器人 AN

上海 2025年5月15日 /美通社/ -- 5月12日,国际独立第三方检测、检验和认证机构德国莱茵TÜV大中华区(简称"TÜV莱茵"...

关键字: 机器人 CE 指令 软硬件

AI与自动化驱动生命科学研发革新 北京2025年2月20日 /美通社/ -- 近日,镁伽科技正式推出LABILLION™实验室智慧管理平台,并于线上发布。作为镁伽在"AI for Science(AI4S)&...

关键字: LAB IO ABI 指令

CPU的工作原理‌主要包括以下几个核心步骤:获取指令、解码、执行和存储结果。‌中央处理器(Central Processing Unit,简称CPU)作为计算机系统的运算和控制核心,是信息处理、程序运行的最终执行单元。C...

关键字: CPU 指令

深圳2024年11月29日 /美通社/ -- 包装是产品生命周期的重要组成部分,随着循环经济不断推进,欧洲对产品包装的可回收性和正确标签的要求也越来越严格。12月13日起,在线或者通过远程销售方式销售至欧盟消费者的产品,...

关键字: 电池 研讨会 指令 电子

广州2024年10月18日 /美通社/ -- 10月17日,由中国对外贸易中心、SGS、上海艾瑞市场咨询股份有限公司共同举办的"广交会行业趋势论坛—工具产品欧美市场新机遇"在第136届广交会现场隆重举...

关键字: 测试 电动工具 指令 电子电气

北京2024年8月27日 /美通社/ -- 8月23日,在2024世界机器人大会库卡展台,国际独立第三方检测、检验和认证机构德国莱茵TÜV大中华区(简称"...

关键字: 指令 机器人 CE CTU
关闭