如何用汇编编写程序——汇编学习笔记(五)

我们这里要开始用汇编语言编写可执行文件了,例如 exe 格式的可执行文件

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

第一步:编写汇编源程序。

第二步:对源程序进行编译连接。源程序编译产生目标文件,目标文件连接产生可执行文件。(可执行文件包含两部分的内容,1.程序和数据,程序是指从汇编指令翻译过来的机器码,数据是指在源程序中定义的数据;2.相关的描述信息,比如程序有多大,要占多少内存空间等)

第三步:执行可执行文件中的程序。(操作系统,依照可执行文件中的描述信息,将可执行文件中的机器码和数据载入内存中,并进行相关的初始化,然后 CPU 执行程序)


汇编源程序中包含两种指令,一种是汇编指令,一种是伪指令汇编指令是有对应的机器码的指令,可以被编译成机器指令,最终为 CPU 所执行,而伪指令是没有对应的机器指令,最终不被 CPU 所执行,伪指令是由编译器来执行的指令,编译器根据相关的伪指令来进行相关的编译工作。

伪指令segment 和 ends 的使用方法——segment 和 ends 用来定义一个段,segment 说明一个段的开始,ends 说明一个段的结束,一个段必须有一个名称来标识,

使用格式:
段名 segment
........
........
段名 ends
例如
codesg segment
........
..........
codesg ends

一个汇编程序是由多个段组成的,这些段被用来存放代码、数据,或者被当做栈来使用。

伪指令end——end 是一个汇编程序结束的标记,编译程序在编译过程中如果遇到了 end 指令,就结束对源程序的编译。

伪指令assume——它是用来假设某一段寄存器和某一用 segment 和 ends 定义的段相关联,或者这样理解, assume 将有特定用途的段和相关的段寄存器关联起来。

我们将源程序文件中所有的内容称为源程序,将源程序中最终由计算机执行、处理的指令和数据称为程序

程序返回——一个程序执行结束后,将 CPU 的控制权交给使得它得以运行的程序,我们称这个过程为:程序返回。如何返回
在程序末尾添加如下代码:
mov ax,4c00H
int 21H

一般来说编译器只能发现语法错误,在源程序编译后,在运行时发生才错误是逻辑错误。一般语法错误,容易发现和解决,而逻辑错误一般不容易被发现。

连接——连接的作用有以下几个:
(1) 当源程序很大时,可以将它分为多个源程序文件来编译,每个源程序编译为目标文件后,再用连接程序将他们连接到一起,生成可执行文件;
(2) 程序中调用了某个库文件中的子程序,需要将这个库文件和该程序生成的目标文件连接到一起,生成一个可执行文件。
(3)一个源程序编译后,得到了存有机器码的目标文件,目标文件中的某些内容还不能直接来生成可执行文件,连接程序将这些内容处理为最终的可执行文件。

编译和连接的简化方式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值