第四章 第一个程序

4.1 一个源程序从写出到执行的过程

第一步:编写汇编源程序
使用文本编辑器,用汇编语言编写汇编源程序
这一步工作的结果是产生一个储存源程序的文本文件.

第二步:对源程序进行编译程序
使用汇编语言编译程序对源程序文件中的源程序进行编译,产生目标文件;再用链接程序对目标文件进行链接,生成可在操作系统中直接运行的可执行文件.

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

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

这一步工作的结果:产生了一个可在操作系统中运行的可执行文件.

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

开发日记-20190914 关键词 汇编语言王爽版 第四章相关推荐

  1. 开发日记-20190914 关键词 汇编语言王爽版 第七章第八章

    第七章 更灵活的定位内存地址的方法 7.1 and和or指令 (1)and指令:逻辑与指令,按位进行与运算 (2)or指令:逻辑或指令,按位进行或运算 7.2 关于ASCII码 一个文本编辑过程中,就 ...

  2. 开发日记-20190914 关键词 汇编语言王爽版 第六章

    第六章 包含多个段的程序 前面的程序中,只有一个代码段.现在有一个问题是,如果程序需要用其他空间来存放数据,使用哪里呢?在第五章中,我们说0:200~0:2FF是相对安全的,可这段空间的容量只有256 ...

  3. 开发日记-20190914 关键词 汇编语言王爽版 第五章

    第五章 [BX]和loop指令 5.2 Loop指令 loop指令的格式是:loop标号,CPU执行loop指令的时候,要进行两步操作, (cx)=(cx)-1 判断cx中的值,不为零则转至标号处执行 ...

  4. 开发日记-20190914 关键词 汇编语言王爽版 第三章

    第三章 寄存器(内存访问) 3.1 内存中字的存储 CPU中,用16位寄存器来存储一个字.高8位存放高位字节,低八位存放低位字节.在内存存储时,由于内存单元是字节单元(一个单元存放一个字节),则一个字 ...

  5. 开发日记-20190914 关键词 汇编语言王爽版 第二章

    第二章 寄存器 一个典型的CPU由运算器,控制器,寄存器(CPU工作原理)等器件构成,这些器件靠内部总线相连.前一章所说的总线,相对于CPU内部来说是外部总线.内部中心实现CPU内部各个器件之间的联系 ...

  6. 开发日记-20190915 关键词 汇编语言王爽版 第十一章

    第十一章 标志寄存器 CPU内部的寄存器中,有一种特殊的寄存器(对于不同的处理器,个数和结构都可能不同)具有以下三种作用. (1)用来存储相关的指令的某些执行结果 (2)用来为CPU执行相关的指令提供 ...

  7. 开发日记-20190915 关键词 汇编语言王爽版 第十三章

    第十二章 内中断 任何一个通用的CPU,比如8086,都具备一种能力,可以在执行完当前正在执行的指令之后,检测到从CPU外部传送过来或内部产生的一种特殊信息,并且可以立即对所接收的信息进行处理.这种特 ...

  8. 开发日记-20190915 关键词 汇编语言王爽版 第十章

    第十章 CALL和RET指令 call 和ret指令都是转移指令,他们都修改IP,或同时修改CS和IP.他们经常被共同用来实现子程序的设计. 10.1 ret和retf ret指令用栈中的数据,修改I ...

  9. 开发日记-20190915 关键词 汇编语言王爽版 第九章

    第九章 转移指令的原理 可以修改IP或同事修改CS和IP和指令统称为转移指令.概括地讲,转移指令就是可以控制CPU执行内存中某处代码的指令. 8086CPU的转移行为有以下几类: 只修改IP时,称为段 ...

最新文章

  1. 扫盲 docker 常用命令
  2. 【转】MATLAB的polar函数 极坐标绘制最大半径怎样设置
  3. 计算机专业英语第五版卢川英pdf,《德意志意识形态》中的“现实的个人”及其自由全面发展.pdf...
  4. RPNet++:人脸对齐faceAlignment和基于CNN的三维人脸恢复
  5. ×××技术详解(全)
  6. mysql 安装gbk字符_mysql安装后添加gbk字符集的方法
  7. bzoj 1597: [Usaco2008 Mar]土地购买【斜率优化】
  8. 不染用计算机数字,2013年计算机等级考试一级B知识预测题(6)
  9. Core Data持久化数据存储(1)
  10. GraphEmbedding - Node2vec 图文详解
  11. Android 隐私数据_Android安全警告:10亿台安卓设备不再支持安全更新
  12. codevs 2832 6个朋友 并查集 解题报告
  13. php 按位与运算,PHP 按位与()运算符应用实践
  14. 正在连接192.168.56.101...无法打开到主机的连接。 在端口 1521: 连接失败
  15. 腾讯音乐赴美IPO仅11亿美元,疑受科技股抛售和中美贸易战影响
  16. c++ map 查找性能测试
  17. php 编译mcrypt,linux php7.2.1 编译安装mcrypt
  18. 24v转5v电源芯片模块,220v转5v隔离芯片模块,220v转5v电源芯片模块,制作220v转5v电源芯片,模块原理图220v转5v变压器芯片,20w220v转5v电源芯片
  19. 第四届“蓝帽杯”全国大学生网络安全 技能大赛 Writeup
  20. 【数据结构-树图】树和图的性质

热门文章

  1. 网易 for linux,NetEaseMusic
  2. Java中非法参数的异常_Java中的异常
  3. python语音程序设计基础篇_【笔记】python自学笔记(基础篇)——字典操作
  4. python为啥这么受欢迎_Python为什么这么受欢迎?原因竟在于它的10个知识点
  5. jar包反编译成源代码_IntelliJ IDEA 如何设置自动下载源代码和文档
  6. java qq音乐接口 api,QQ音乐解析API接口更新:支持HQ,ape,flac无损音质,缓存功能
  7. java中random的头文件_JAVA中的Random()函數
  8. java cell报错_有一个小小点问题,现在我想从eclipse上读取Excel表
  9. php mysql商品管理_PHP基础示例:商品信息管理系统v1.1[转]
  10. composer报错:received xxx bytes out of the 以及composer手动引入扩展包