汇编和C语言结构

C语言结构

C语言编译链接过程

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

x86汇编代码结构

  • 伪指令
  • 标号
  • 指令

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

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

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

链接

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

程序加载执行

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

相关推荐
一只小小的芙厨17 分钟前
寒假集训笔记·树上背包
c++·笔记·算法·动态规划
深蓝海拓1 小时前
PySide6从0开始学习的笔记(二十七) 日志管理
笔记·python·学习·pyqt
xqqxqxxq1 小时前
Java Thread 类核心技术笔记
java·笔记
pcm1235671 小时前
设计C/S架构的IM通信软件(4)
java·c语言·架构
老师用之于民1 小时前
【DAY21】Linux软件编程基础&Shell 命令、脚本及系统管理实操
linux·运维·chrome·经验分享·笔记·ubuntu
iFeng的小屋2 小时前
【2026年新版】Python根据小红书关键词爬取所有笔记数据
笔记·爬虫·python
山岚的运维笔记2 小时前
SQL Server笔记 -- 第14章:CASE语句
数据库·笔记·sql·microsoft·sqlserver
宵时待雨2 小时前
STM32笔记归纳8:时钟
笔记·stm32·单片机·嵌入式硬件
代码无bug抓狂人2 小时前
C语言之表达式括号匹配
c语言·开发语言·算法
晓13133 小时前
第二章 【C语言篇:入门】 C 语言基础入门
c语言·算法