第7章 NASM的使用教程(X86汇编教程)
首先,下载NASM:http://www.51hei.com/f/nasm.rar
别急着运行......也许有人已经运行了一下,会发现一个黑色的窗口闪烁一下就什么都没有了.这是正常现象.请不要以为是NASM坏了.
嘛.暂时先不要动它,我们先编写一篇代码吧.
首先你要设定你的系统让你的系统显示文件扩展名.什么是文件扩展名呢?那是文件的一个附加名字,在文件名后面加一个点,后面就是扩展名,一般由1~4个英文字母组成(其中3个英文字母的扩展名最多).用来表示文件的类型,一般是不显示出来的.
如果你已经设定了请跳过这一步.32位XP设置显示扩展名方法:
首先,打开任意文件夹,在菜单中找到"工具",在弹出的菜单里找到"文件夹选项"
打开了这个窗口(见下图↓)
1:点击"查看",
2:把[隐藏已知文件的扩展名]选项前面的勾去掉.
3:点击窗口下面的"应用"按钮,
4:再点击"确定"按钮.
然后再看看你电脑里的文件,文件名都显示了扩展名了,请先熟悉一下扩展名吧,以后改文件名的时候要注意,改错扩展名会导致文件类型丢失(当然,记得扩展名的话,能改回来)!
好了,打开记事本新建立一个文本文件,保存,你会得到一个扩展名为TXT的文件.把扩展名改成ASM吧!
改完了吗?什么?你说图标和我不同?那是正常现象,请不要在意....
好了.ASM文件就是汇编代码文件用来写汇编代码.用记事本就可以编辑它,当然,你也可以专门找汇编代码编辑工具(这就是我改扩展名后图标和你不同的原因哟,专门的汇编代码编辑器有自己的图标!),不过我认为新手的话用记事本就足够了,专门编辑工具会让你眼花!
好了,用记事本打开它,写入下面的代码:
ORG 0100H;这行代码之前没讲过,以后会讲!
MOV AX,0B800H
MOV BX,AX
MOV CX,BX
MOV DX,CX
好了,把代码保存到文件里.
接着我们来编译它,再次建立一个文本文件,还是要改扩展名.改为BAT(见下图↓):
用记事本按照下面的语法写入内容:
NASM "代码文件名.扩展名" -o "要生成的文件名.扩展名"
注意空格哟!
实例:
NASM "新建 文本文档.ASM" -o "1.COM"
写完了,保存,把NASM解压到同一个文件夹:
双击运行BAT文件.如果你之前的步骤都没做错的话,就会发现多出一个COM文件.不要急着运行它!这个就是你的代码编译出来的东西!你知道么?DeBug还能调试编译出来的程序呢!我们用DeBug调试它吧,再次建立一个BAT文件,用记事本按照以下语法写入内容:
DeBug 要调试的文件名.扩展名
注意:文件名前面有一个空格,文件名本身不能带空格!
实例:
DeBug 1.COM
运行后就会出现DeBug窗口,输入R指令,看看第一行代码:
你也许已经震惊的发现,第一行代码尽然不是代码里的第一行:ORG 0100H,而是第二行MOV AX,0B800H
其实事情的原因是这样的:
那个ORG,其实不是汇编指令来的那个是一个标识,告诉编译器,这篇代码将来有可能被加载到内存的什么地方(请注意DeBug里面的MOV指令的偏移地址,没错,是0100H!)
注意:这个0100H可不是ORG伪指令设定的!(实际上CPU根本就没有,专门给编译器的指令称作伪指令)ORG只是告诉NASM,这篇代码会被加载到0100H好让NASM做好准备而已(这个以后就会知道)
好了试试看运行一下吧:T指令,看成功了,把B800放进了AX里面,再继续AX被复制到了BX里面.
NASMX86汇编教 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)