单片机基础知识(微机原理和堆栈知识)

介绍了通用寄存器的内容,部分调试器可以观测通用寄存器的数据例如(UDE(PLS)工具)
在这里插入图片描述

微机原理相关介绍

“程序存储”:指令以代码的形式事先输入到计算机的主存储器中,然后按其在存储器中的首地址执行程序的第一条指令,以后就按该程序的规定顺序执行其他指令,直至程序执行结束。即按地址访问并顺序执行指令
CPU=控制器 + 运算器
CPU的工作,我的理解是:
先通过首地址,然后根据时序,执行和读取下一步程序,存储下一步地址,和存储数据,并通过指令相应的将程序执行,例如汇编语法中,地址的数据移到数据寄存器。通用寄存器会记录当前PC和地址和数据信息(这里指的是寄存器)

PC:程序计数器,存放下一条指令地址,有自动加1功能

CPU与主存有一组总线相连,地址,数据,控制3组信号线、

控制信号,可以修改PC以得到下一条指令的地址
也可以控制ALU执行什么运算,可以控制主存是进行读操作还是写操作

当前计算机的结构介绍(冯诺依曼和哈佛)

冯诺曼体系结构特点:

在这里插入图片描述

  1. 计算机硬件系统由五大部件组成(存储器、运算器、控制器、输出设备、输入设备)
  2. 指令和数据以同等地位存于存储器,可按地址寻访
  3. 指令和数据用二进制表示
  4. 指令由操作码和地址码组成
  5. 存储程序
  6. 以运算器为中心
哈佛结构特点

哈佛结构是一种将程序指令存储和数据存储分开的存储器结构
在这里插入图片描述
1、程序存储器与数据存储器分开.
2、提供了较大的存储器带宽,各自有自己的总线。
3、适合于数字信号处理.
4、大多数DSP都是哈佛结构.
5、ARM9是哈佛结构,取指和取数在同一周期进行,提高速度,改进哈佛体系结构分成三个存储区:程序、数据、程序和数据共用。

存储的那些事情

程序内存可以分为几个区:
栈区(STACK ) 堆区(HEAP) 全局区(静态区) 文字常量区 程序代码区
栈区 堆区 全局区(静态区) 都在RAM中

(1)栈区(stack):由编译器自动分配和释放,存放函数的参数值、局部变量的值等,其操作方式类似于数据结构中的栈。
(2)堆区(heap):一般由程序员分配和释放,若程序员不释放,程序结束时可能由操作系统回收。分配方式类似于数据结构中的链表。
(3)全局区(静态区)(static):全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。程序结束后由系统自动释放。
(4)文字常量区:常量字符串就是存放在这里的。
(5)程序代码区:存放函数体的二进制代码

堆栈

什么是堆栈?
单片机应用中,堆栈是个特殊存储区,堆栈属于RAM空间的一部分,堆栈用于函数调用、中断切换时保存和恢复现场数据。
堆从低到高分配
栈遵循先进后出,从高到低分配。是通过堆栈寄存器支撑、
在这里插入图片描述

堆和栈的区别:
1.分配方式不同
堆是自己分配(列如:malloc()函数动态分配)
栈是系统自己分配

作用:
(与局部变量使用)减少内存占用

编译的过程

编译链接分为4个步骤:预处理、编译、汇编、链接

###RAM,ROM和FLASH

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值