汇编语言学习笔记4--第一个汇编程序
始进行汇编语言的实际编程体验了。本人用的编译工具是--
masm软件
连接软件是
下面先看一段小程序。关于软件的问题以后慢慢讨论。
assume cs:code
code segment
start: mvo ax , 0123h
mov bx, 0456h
add ax, bx
ax,ax
mov ax, 4c00h
int 21h
code ends
end start
对这段代码进行解释一下,前边提到过汇编语言指令包括 汇编指令和伪指令
我们首先看到的是 xxx segment ...............xxx ends 这其中的segment 和ends就是一对儿伪指令这两个伪指令联合起来共同定义一个段 。。。segment表示段开始,,ends表示段结束伪指令 就是 段名 segment 。。。。段名 ends 当然一个程序可能用到不同地段。所以要进行定义不同地段,,这些操作以后回进行实例操作。。敬请期待。。。
前边的assume 就是讲相应的段寄存器和相应定义的段相结合连接。。以这个例子为例。。那么我们定义了代码段,所以就将代码段和代码寄存器相连接。assume cs:code
start 和 end指令 其实 start完全可以有其他的符号或字符串代替。。关键的是end 指令。。这是一个程序结束指令 前边start 标记了程序开始处 则后边程序结束的时候就进行了end start
这就是 上边的程序使用的伪指令 至于 mov ax, 4c00H int 21h 这完全是一个中断调用,以后的课程会有一个专门讲解中断的章节。。。
另外上边的整个代码叫做源程序 源程序包括伪指令,汇编指令而原程序中的有计算机执行的程序就是真正的程序了 ,接下来我们就要对程序进行 编译,连接,调试了。
下面我们就对这段代码进行编译连接调试,本人编写汇编代码都是用dos下的edit进行编辑最后放到前边提到的软件中进行编译连接 ,当然这个完全也可以用dos下操作进行。。
下面进行截图操作。我把源程序文件将要编写到桌面上masm文件夹下的new 1文件夹下
这样就用dos命令进入了相应的文件夹。这里不是本人故弄玄虚,我已经习惯利用dos操作再在该模式下打开文本编辑器,其实完全不用这么费劲,只是个人习惯,只要我们编写的代码在保存的时候把格式保存成.asm格式就行了
此时图中显示了文件保存路径,我已经把文件名写成了qq.asm注意格式一定是.asm,下面就进行对asm文件进行编译连接 截图如下。。
这个软件的界面如图
操作前我们要先进行编译器设置,点击图中的选项按钮,进行编译设置,将
设置好相关的软件编译路径,就可以点击图中的四个相应的按钮进行编译连接了。。要时刻注意软件最底下的提示栏。我们的程序不可能每次都是一次性通过,所以我们的错误都可以出现相应的提示,它提示的是出错的行数,我们对应行数进行改动就可以了。
下面展示一下我们的成果。。。
当然这个是利用软件直接编译出来的结果。中间省去了。王爽老师课程中所说的其他文件。我们再次还是要进行说明的。
我们就在利用单个的软件进行一次编译,qq.asm我们已经写好了。我们先找到asm编译器,注意我们一定要把qq.asm文件和masm.exe放到同一个文件夹下,这样我们才能进行编译。变异的同时会生成中间文件。这些文件类型在截图中会有所体现。。用masm。exe编译的最后结果是得到了qq.obj文件就是目标文件,这样我们的工作就成功了一半了。
在用link.exe进行连接。
展示一下新成果。。
看见了没我把masm.exe和link.exe都和qq.asm放到了同一个文件夹下。。