对一个程序的理解

一、什么是程序

1、程序的结构

指令、数据

2、指令

操作CPU的一段指令集合,更详细的说,是对数据的加载,移动,以及需要进行的计算的集合。指令存储在 非易失存储器(一般指:硬盘)。

3、数据

上述指令集合中指令的执行需要操作的数据。数据存储在 易失存储器中(一般指:内存)。

二、程序的运行基础

1、CPU

解析指令,执行指令

2、硬盘(ROM)

存储指令

3、内存(RAM)

存储运行中需要用到的数据(事实上,在计算机(电脑)执行一个程序的时候,也会将指令加载到内存)

三、一个 C 程序从编写到执行的过程

1、编辑源代码

使用 C 语言,编写需要计算机执行的操作

2、将源代码翻译成二进制代码
2.1 预处理

加载程序中所包含的头文件到源代码之中,条件编译,并将宏定义展开(.i文件)。
注:在使用gcc -S 选项时,文件的后缀必须为.i
原因:本人在使用gcc -E 选项生成的文件后缀为.a时,再使用gcc -S选项时,报警告并且没有生成.s文件,警告如下:
gcc: warning: MD5.a: linker input file unused because linking not done

2.2 编译

将经过预编译处理过的源代码翻译为 汇编代码(.s文件)。

2.3 汇编

将汇编代码翻译为二进制代码(.o文件)。

2.4 链接

将二进制代码链接成一个完整的可执行程序(.exe)

3、程序的运行
3.1 单片机

需要烧录到MCU的Flash或外部存储器之中,当单片机上电之后,先初始化硬件,分区,初始化中断,之后从main开始运行。

3.2 计算机(电脑)

需要操作系统中的装入程序将程序装入内存,并为程序开辟一个新的进程,同时为其运行创建执行环境,当时间片轮转到此程序时,操作系统进行上下文切换,从程序的入口处(main)开始执行。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值