汇编和C语言结构

C语言结构

C语言编译链接过程

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

x86汇编代码结构

  • 伪指令
  • 标号
  • 指令

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

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

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

链接

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

程序加载执行

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

相关推荐
晓蛋4 天前
c语言指的是什么意思
c语言·编译器·编程开发·集成开发环境·程序实例
一隅论数智4 天前
给AI一张“业务概念地图“:本体如何从哲学走向企业智能
大数据·人工智能·经验分享·笔记·学习·学习方法·政务
傲世仙尊4 天前
目录即文件-Ext文件系统收尾篇
linux·c语言
牵猫散步的鱼儿4 天前
重载、重写(覆盖)、重定义区别
c语言
phltxy4 天前
C 语言指针:从内存地址到灵活的数据访问
c语言
phltxy4 天前
C 语言中的数据存储:从类型到二进制位
c语言
深圳老胡4 天前
STM32F407 控制 L6470 步进电机驱动 —— 控制过程简介
笔记·stm32·单片机·嵌入式硬件·代码规范
Because_of_Her14 天前
并查集-听课笔记
笔记·算法·并查集
彧azz4 天前
Linux 环境下 Redis 学习总结:数据类型、持久化、锁、事务、主从与缓存问题
linux·redis·笔记·学习·面试
陈卫军老师4 天前
陈卫军:把口味写在一张纸上,店才稳得住
经验分享·笔记·流量运营