汇编和C语言结构

C语言结构

C语言编译链接过程

  1. 预处理: 删除注释, 将宏定义展开, 执行条件编译指令只保留 满足条件的部分, 将整个头文件插入到include位置
  2. 编译: 将预处理后的文件编译成汇编代码
  3. 汇编
  4. 链接

x86汇编代码结构

  • 伪指令
  • 标号
  • 指令

.开头的是伪指令, 为变量分配内存, 指定变量的值, 也可以协助汇编器做汇编工作, .set定义一个立即数

标号, 一个变量+:, 代表一个地址, 例如aa处就是255, 在写汇编过程中可以使用该标号, 汇编编译器在编译过程中会将标号替换为地址

指令, 每一个指令对应一个机器指令, 如果不做链接操作, 得到的文件就是xxx.o, 包含二进制指令和数据, 以.开头的伪指令没有机器指令

链接

将多个初始的目标文件, 合并到一个可执行文件, 将代码段代码段整合, 数据段数据段整合

程序加载执行

OS会将可执行文件加载到内存, 解析可执行文件的内容, 将每个段的信息加载到内存中进程所对应的虚拟地址空间 , 跳转到一个入口地址去执行

相关推荐
LinXunFeng5 天前
Obsidian - 使用 Share Note 分享笔记并自部署
前端·笔记·github
LDR00610 天前
Type-C 快充全面升级!LDR6601 赋能个人护理便携电机,重塑剃须刀 / 理发器新体验
c语言·开发语言
Luminous.10 天前
C语言--day30
c语言·开发语言
玖玥拾10 天前
C/C++ 数据结构(七)栈、容器适配器
c语言·数据结构·c++··容器适配器
謓泽10 天前
C语言不是语法,是通往机器的地图。
c语言·开发语言
不会C语言的男孩10 天前
Linux 系统编程 · 第 8 章:进程基础
linux·c语言
闪闪发亮的小星星10 天前
高斯光以及高斯光公式解释
笔记
cqbzcsq10 天前
CellFlow虚拟细胞论文阅读
论文阅读·人工智能·笔记·学习·生物信息
2601_9516438810 天前
C语言长文整理,关键字和数据类型
c语言·数据类型·关键字·嵌入式开发·格式化输出
阿米亚波10 天前
【Windows】QEMU 启动 openEuler aarch64/arm64 架构系统 + 离线软件源
linux·windows·经验分享·笔记·架构·arm