汇编和C语言结构

C语言结构

C语言编译链接过程

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

x86汇编代码结构

  • 伪指令
  • 标号
  • 指令

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

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

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

链接

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

程序加载执行

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

相关推荐
xxwl5856 分钟前
区域赛算法模版第八章---贪心(Greedy)
c++·笔记·学习·算法
Logic1011 小时前
C语言/数据结构位运算题解:异或XOR找出被挑选一次的果子编号——只出现一次的数字
c语言·数据结构·算法·数组·位运算·时间复杂度·空间复杂度
知产xiao_xin1 小时前
专利立法及修改
经验分享·笔记·知识产权
qq_284274051 小时前
S7-1200 PLC硬件与启保停实训:CPU选型与DC/DC/DC、循环扫描五阶段、博途组态及电动机启停自锁梯形图(含考点)
笔记·学习·自动化·制造
dear_bi_MyOnly2 小时前
栈和队列:从原理到应用全解析
c语言·开发语言·c++·学习·分类
问心无愧05132 小时前
[GXYCTF2019]Ping Ping Ping
android·笔记
ACP广源盛139246256732 小时前
项目评估记录:4K 远距离视频 Serdes 传输方案调研,GSV5800@ACP参数与工程问题记录
笔记·硬件架构·音视频·视频·国产芯片
从小白到软工3 小时前
4-3 项目-学生成绩管理系统(上)
c语言·开发语言·数据结构·经验分享·ai编程
深圳老胡3 小时前
C语言实现C++面向对象程序设计示例
笔记·stm32·单片机·代码规范
Code_Solitude4 小时前
c语言:指针(3)+冒泡排序
java·c语言·算法