进度条和汇编指令的编译过程

一.进度条都是我们很熟悉的东西,比如下载东西时就会有进度条,打开虚拟机时也有进度条等等。但是进度条是如何用代码实现的?下面我们就来看看如何实现进度条

代码如下:


运行结果如下:


二.汇编指令的编译过程

通常在windows下,我们在VC或VS下进行程序的编辑与运行,往往不会想到程序到底是如何运行的,其实它并非我们想的那么简单,而是通过 预处理阶段,编译阶段

汇编阶段,连接阶段,所以也是比较复杂的。下面我们就看看如何在Linux下运用汇编指令进行编译以及运行程序。

test1.c文件:  

#include<stdio.h>
int main()
{
    My_printf();
    return 0;
}
test2.c文件:

#include<stdio.h>
My_printf()
{
    printf("hello,world\n");
}

但是我们如何才能运行该程序呢?首先我们先建立一个makefile文件,然后写明依赖关系即可。

下面就为该依赖关系:


首先make一下指令,然后运行程序。既./test

结果如下:


下面我们就通过这张图来了解程序是如何编译和运行的。


源文件(.c)——汇编文件(.S)——目标文件(.o)——可执行文件(*.hello)
预处理---编译---汇编---链接


1.预处理阶段    主要完成了头文件及宏的替换…(.c文件生成.i文件)  gcc -E hello.c -o hello.i
2.编译阶段       源代码到汇编代码的转换,输出汇编代码(.i文件生成.s文件)   gcc -S hello.i -o hello.s
3.汇编阶段      是由汇编语言生成机器语言并输出目标文件(.s文件生成.o文件)    gcc -c hello.s -o hello.o
4.链接阶段      将以上生成的文件生成一个可执行的程序            gcc -O (hello.i/hello.s/hello.o) -o hello


-o, 指定输出文件名,可以配合以上三种标签使用。
-o 参数可以被省略,这种情况下编译器将使用默认名称输出.无标签情况会生成名为a.out的可执行文件。
gcc -O (hello.i/hello.s/hello.o) -o hello
-O(大写的字母O),编译器对代码进行自动优化编译,输出效率更高的可执行文件。
-O 后面还可以跟上数字指定优化级别,如:gcc -O2 source_file.c数字越大,越加优化。




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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值