当前位置: 首页 > news >正文

【汇编语言】第一个程序(一)—— 一个源程序从写出到执行的过程

在这里插入图片描述

文章目录

  • 前言
  • 1. 第一步:编写汇编源程序
  • 2. 第二步:对源程序进行编译连接
  • 3. 第三步:执行可执行文件中的程序
  • 结语

前言

📌

汇编语言是很多相关课程(如数据结构、操作系统、微机原理)的重要基础。但仅仅从课程的角度出发就太片面了,其实学习汇编语言可以深入理解计算机底层工作原理,提升代码效率,尤其在嵌入式系统和性能优化方面有重要作用。此外,它在逆向工程和安全领域不可或缺,帮助分析软件运行机制并增强漏洞修复能力。

本专栏的汇编语言学习章节主要是依据王爽老师的《汇编语言》来写的,和书中一样为了使学习的过程容易展开,我们采用以8086CPU为中央处理器的PC机来进行学习。

在这一章节的内容学习中,我们终于可以编写一个完整的汇编程序了,我们以前都是在Debug中写一些指令,在Debug中执行。现在我们将开始编写完整的汇编语言程序,用编译和连接将它们编译连接成为可执行文件(如:*.exe文件),在操作系统中运行。

一个汇编语言程序从写出到最终执行的简要过程:

在这里插入图片描述

1. 第一步:编写汇编源程序

使用文本编辑器(如记事本、Nodepad++、UltraEdit等),用汇编语言编写汇编源程序。

在这里插入图片描述

这一步工作的结果是产生了一个存储源程序的文本文件。

2. 第二步:对源程序进行编译连接

使用汇编语言编译程序(MASM.EXE)对源程序文件中的源程序进行编译,产生目标文件;

再用连接程序(LINK.EXE)对目标文件进行连接,生成可在操作系统中直接运行的可执行文件。

可执行文件中包含两部分内容:

  • 程序(从源程序中的汇编指令翻译过来的机器码)和数据(源程序中定义的数据)
  • 相关的描述信息(比如:程序有多大、要占多少内存空间等)

3. 第三步:执行可执行文件中的程序

在操作系统中,执行可执行文件中的程序。

操作系统依照可执行文件中的描述信息,将可执行文件中的机器码和数据加载入内存,并进行相关的初始化(比如:设置CS:IP指向第一条要执行的指令),然后由CPU执行程序。

完整的执行过程

在这里插入图片描述

结语

今天的分享到这里就结束啦!如果觉得文章还不错的话,可以三连支持一下。

也可以点点关注,避免以后找不到我哦!

Crossoads主页还有很多有趣的文章,欢迎小伙伴们前去点评,您的支持就是作者前进的动力!
在这里插入图片描述


http://www.mrgr.cn/news/56685.html

相关文章:

  • libvirt 基本命令行
  • Redis底层和缓存雪崩,击穿,穿透
  • Qt窗体ui如何设置中英文翻译?
  • 速盾:cdn能加速游戏吗?
  • 计算机组成原理一句话
  • PHP中的ReflectionClass常见用法
  • WPF修改应用程序桌面图标
  • 【Git原理与使用】多人协作
  • 【Vue3】第一篇
  • 系统架构设计师教程 第4章 4.1-2 信息安全基础知识及意义 笔记
  • 【Linux系统编程】第三十六弹---深入探索进程间通信:封装共享内存类并实现进程间数据共享
  • python安卓开发
  • 0160____declspec(noreturn)的用法
  • 【趣学C语言和数据结构100例】
  • C++网络编程之绑定
  • PCB生产制造商强达电路,公布网上申购情况及中签率
  • Transformer 天气数据进行时序预测
  • Github 2024-10-23C开源项目日报 Top10
  • 本地函数 lambda函数 回调函数(c#)
  • Redis内部数据结构ziplist详解
  • 文章解读与仿真程序复现思路——电力系统自动化EI\CSCD\北大核心《需求响应下计及高耗能工业负荷生产流程的经济调度模型》
  • PCDN 的激励机制对平台可持续发展的影响(贰)
  • 闯关leetcode——190. Reverse Bits
  • [论文笔记]ColPali: Efficient Document Retrieval with Vision Language Models
  • PCL SAC-IA 算法实现点云粗配准(永久免费版)
  • 【卡尔曼滤波】观测模型包含输入的线性卡尔曼滤波