hello程序的运行过程-从计算机系统角度
hello程序的运行过程-从计算机系统角度
1、gcc编译器驱动程序读取源程序文件hello.c,并将它翻译成一个可执行目标文件hello。翻译过程分为四个阶段:预处理阶段,编译阶段,汇编阶段,链接阶段。
2、初始时,shell程序执行它的指令,等待我们输入一个命令。当我们在键盘上输入字符串“./hello”后,shell程序将字符读入CPU的寄存器中,再把它存放到主存中。

3、当我们敲回车键时,结束命令的输入,然后shell程序执行一系列指令来加载可执行的hello文件,这些指令将hello目标文件中的代码和数据从磁盘复制到主存。(数据通过DMA直接存储器存取计算,直接从磁盘到达内存)。

4、一旦目标文件hello中的代码和数据都加载到主存中,处理器就开始执行main程序中的机器语言指令,将输出结果从主存复制到寄存器中,然后再从寄存器中复制到显示设备,最终显示到屏幕上。

hello程序的运行过程-从计算机系统角度的更多相关文章
- Java程序的运行过程,以及Java为什么能够跨平台
Java程序运行机制 Java的运行主要分两步:先编译再解释执行 (1)先通过“编译器”将Java源程序(.java)编译成Java字节码文件(.class) (2)通过不同的虚拟机(JVM)将字节 ...
- DirectShow程序运行过程简析
这段时间一直在学习陆其明老师的<DirectShow开发指南>一书,书中对DirectShow的很多细节讲解清晰,但是却容易让人缺少对全局的把握.在学习过程中,整理了关于DirectSho ...
- Java内存管理-程序运行过程(一)
勿在流沙住高台,出来混迟早要还的. 做一个积极的人 编码.改bug.提升自己 我有一个乐园,面向编程,春暖花开! 相信在做Java开发的伙伴一定知道 JVM(Java Virtual Machine( ...
- Python程序的执行过程原理(解释型语言和编译型语言)
Python是一门解释型语言?我初学Python时,听到的关于Python的第一句话就是Python是一门解释型语言,我就这样一直相信下去,直到发现.pyc文件的存在,如果真是解释型语言,那么生成的. ...
- Python程序的执行过程 解释型语言和编译型语言
转载地址:http://blog.csdn.net/lujiandong1/article/details/50067655 1. Python是一门解释型语言? 我初学Python时,听到的关于Py ...
- 说说Python程序的执行过程
1. Python是一门解释型语言? 我初学Python时,听到的关于Python的第一句话就是,Python是一门解释性语言,我就这样一直相信下去,直到发现了*.pyc文件的存在.如果是解释型语言, ...
- Python程序的执行过程
1. Python是一门解释型语言? 我初学Python时,听到的关于Python的第一句话就是,Python是一门解释性语言,我就这样一直相信下去,直到发现了*.pyc文件的存在.如果是解释型语言, ...
- Qt- 图形界面应用程序的运行模式
main() 定义主窗口 ————>fd = DefineMainWindow() 创建主窗口————>win = CreateMainWindow() 创建主窗口中的元素-----> ...
- 计算机系统->Hello World的一生 | 程序如何运行
2021年11月27日准备发在基地微信公众号上的推文. 综合了多篇大佬的博客,以及自己已经知道的知识,对一些疑惑进行了现阶段我认为还算满意的解答. 不过又产生了很多疑问: 内存和磁盘的关系 CPU是如 ...
随机推荐
- Oracle忘记密码怎么办?
1.打开cmd,输入sqlplus /nolog,回车:输入“conn / as sysdba”;输入“alter user sys identified by 新密码”,注意:新密码最好以字母开头, ...
- selenium webdriver 定位元素 第一部分
static final WebDriver driver = ExplorerBase.IESetting(); // 实例化一个浏览器对象 @Test //@Ignore public void ...
- docker 的实践操作
查看版本信息 [root@k8s-1 ~]# docker version Client: Version: 18.09.6 API version: 1.39 Go version: go1.10. ...
- VM安装linux操作系统详细教程
1.首先我们新建一个虚拟机,先不安装操作系统,稍后再对其安装Linux系统. 新建虚拟机步骤如下: 打开VMware软件,菜单栏点击“文件(F)”–>选择“新建虚拟机(N)”,如下图1,(或者直 ...
- 匈牙利命名法、Camel命名法与Pascal命名法
Camel命名法:即骆驼式命名法,首字母小写,采用该命名法的名称看起来就像骆驼的驼峰一样高低起伏.Camel命名法有两种形式: 1.混合使用大小写字母,例如runFast 2.单词之间加下划线,例如r ...
- linux 环境下安装jdk
参考:https://blog.csdn.net/qq_30788949/article/details/81975954 安装 参考: https://www.cnblogs.com/shihaim ...
- 夯实Java基础(十九)——集合
1.前言 集合在Java中的地位想必大家都知道,不用多BB了.无论是在我们现在的学习中还是在今后的工作中,集合这样一个大家族都无处不在,无处不用.在前面讲到的数组也是一个小的容器,但是数组不是面向对象 ...
- Java中进行Md5加密
java文件 https://pan.baidu.com/s/1kXcif35 密码:3cjd 代码案例: package cn.itcast.estore.utils; import java.m ...
- pycharm安装PyQt框架
首先需要安装必要插件 File --> Settings --> Project Interpreter 如果出现以下这种情况:请升级pip,参考:https://www.cnbl ...
- day13-Python运维开发基础(递归与尾递归)
递归与尾递归 # ### 递归函数 """ 递归函数: 自己调用自己的函数 递:去 归:回 有去有回是递归 """ # 简单递归 def d ...