锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

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

时间:2024-05-07 20:37:09

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

本章将讲解汇编编译器NASM的使用方法.
首先,下载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 ,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伪指令设定的!(实际上根本就没有,专门给编译器的指令称作伪指令)ORG只是告诉NASM,这篇代码会被加载到0100H好让NASM做好准备而已(这个以后就会知道)

好了试试看运行一下吧:T指令,看成功了,把B800放进了AX里面,再继续AX被复制到了BX里面.

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

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


-电子元器件采购网(www.ruidan.com)是本土元器件目录分销商,采用“小批量、现货、样品”销售模式,致力于满足客户多型号、高质量、快速交付的采购需求。 自建高效智能仓储,拥有自营库存超过50,000种,提供一站式正品现货采购、个性化解决方案、选型替代等多元化服务。
锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章