介绍了通用寄存器的内容,部分调试器可以观测通用寄存器的数据例如(UDE(PLS)工具)
微机原理相关介绍
“程序存储”:指令以代码的形式事先输入到计算机的主存储器中,然后按其在存储器中的首地址执行程序的第一条指令,以后就按该程序的规定顺序执行其他指令,直至程序执行结束。即按地址访问并顺序执行指令
CPU=控制器 + 运算器
CPU的工作,我的理解是:
先通过首地址,然后根据时序,执行和读取下一步程序,存储下一步地址,和存储数据,并通过指令相应的将程序执行,例如汇编语法中,地址的数据移到数据寄存器。通用寄存器会记录当前PC和地址和数据信息(这里指的是寄存器)
PC:程序计数器,存放下一条指令地址,有自动加1功能
CPU与主存有一组总线相连,地址,数据,控制3组信号线、
控制信号,可以修改PC以得到下一条指令的地址
也可以控制ALU执行什么运算,可以控制主存是进行读操作还是写操作
当前计算机的结构介绍(冯诺依曼和哈佛)
冯诺曼体系结构特点:
- 计算机硬件系统由五大部件组成(存储器、运算器、控制器、输出设备、输入设备)
- 指令和数据以同等地位存于存储器,可按地址寻访
- 指令和数据用二进制表示
- 指令由操作码和地址码组成
- 存储程序
- 以运算器为中心
哈佛结构特点
哈佛结构是一种将程序指令存储和数据存储分开的存储器结构
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