【深入理解计算机系统01】不同层级程序指令间的转换

本文详细介绍了从高级语言程序到机器指令的转换过程,包括预处理、编译、汇编和链接四个步骤。通过实例展示了gcc在C++源文件上的操作,揭示了汇编指令与机器指令的关系,强调了ISA在计算机系统中的关键作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言:
这几篇文章的目的: 从高级语言程序出发,用其对应的机器级代码以及内存(栈)中信息的变化来说明底层实现
参考资料:
计算机系统基础——袁春风
CSAPP



第一篇:不同层级程序指令间的转换

关键词:【指令】

> 计算机的指令分类:

伪指令:机器指令序列
机器指令:机器指令和汇编指令一一对应
汇编指令:机器指令的汇编语言
微指令:微程序级指令,属于硬件范畴,这点组成原理上有讲过。

其中汇编指令和机器指令都属于机器级指令。
启发:
汇编在转换为机器指令时并没有进行优化,相同的汇编程序在执行时带来的效率差 别应该源于硬件的不同。
ISA(指令级体系结构) 的存在使得汇编更方便移植。
在此可见ISA在整个计算机系统抽象层中的重要性。


> 生成机器代码的过程:

用 GCC + Linux + IA32 平台进行实验

程序转换四个步骤:
1. 预处理
引入#include<文件>和处理宏语句
2. 编译
将处理后的源程序文件编译成相应的 汇编语言程序
3. 汇编
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值