分享

第7章 NASM的使用教程(X86汇编教程)

 共同成长888 2015-07-19

第7章 NASM的使用教程(X86汇编教程) 

本教程目录 http://www./mcu/2619.html

        本章将讲解汇编编译器NASM的使用方法.
 
首先,下载NASM: http://www./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里面.
 

好了,本章就讲到这里,我每隔几天写一章希望期间你能多多练习!

作业:编写篇代码,把1234H写进AX寄存器,把3412H写进BX寄存器,把567FH写进CX寄存器,把BX寄存器复制到DX寄存器.然后编译出来,提交作业的邮箱:o7007@vip.qq.com

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多