现在的位置: 首页 > 综合 > 正文

Masm for Windows集成开发环境编写汇编程序

2013年08月13日 ⁄ 综合 ⁄ 共 1399字 ⁄ 字号 评论关闭

Masmfor Windows集成开发环境编写汇编程序

由于最近在学习汇编,用的软件是一款叫“Masm for Windows集成开发环境”,但是发现该软件的资料比较少,对于我们这样刚刚学习汇编的同学,我查找了很多资料,下面主要是介绍该工具及2个汇编的基本程序。

 

一.软件的使用

下面是阅读完四川大学的课件后几张介绍该软件运行的基本方法:

    1.进入Masm forWindows集成实验环境

    2.编写程序,该代码是该软件自带的简单入门实例11个中的第一个,后面将详细介绍该代码

    3.保存汇编程序.编写完程序必须要保存后才能运行

    4.运行程序

    5.调试程序

    6.我们老师上课教授的用DosBox的Debug调试方法,也可以用该软件实现

    二.“Helloword”程序讲解

1.SEGMENT:表示段,段定义伪指令。汇编中有数据段、代码段、堆栈段以及附加段

格式为: 段名 SEGMENT [定位类型][组合类型][类别名]

      
段名 ENDS

功能:把程序分段,实现存储器的分段管理

该程序由DATAS数据段和CODES的代码段两部分组成。

 

2.STRING DB 13,10,‘Hello World!’,13,10,’$’

13和10分别表示回车符和换行符的ASCII码,执行结果是回车换行。

’$’是结束标志,否则不加’$’会出现乱码。

这句话相当于C的(char*)STRING=”\nHello World!\n”;

 

3.INT 21H是DOS中断功能调用的中断号;MOV AH,4CH功能是让你退出程序

其中:MOV  AH,4CH

INT 21H

   是程序结束时使用的模板,使用AH来选择功能,其中4CH号功能是退出程序的意思。这个中断告诉程序执行完毕后返回DOS。

 

4.MOV AH,9中9是打印字符串的命令号(09H对应的是显示字符串)

注意:课堂与许多教材中的第一个汇编实例:“123+456=sum”的例子,都是没有输出语句的,必须使用debug调试来显示程序的结果。

 

5. MOV AX , DATAS

MOV DS , AX

是将数据放入DS

 

6. LEA DX , STRING ;字符串偏移起始DX

LEA :Loadeffective address

 

下面CSDN的博客也给出了这个例子的详细解释及代码:(转载)

http://blog.csdn.net/caiyunfreedom/article/details/6557847

 

 该作者还注释了一个Masm for Windows自带程序两个数求和的实例,个人觉得对大家初步学习汇编知识很有帮助的程序:(转载)

http://blog.csdn.net/caiyunfreedom/article/details/6557924

 

三.该软件的一个bug

在使用该软件“Masm for Windows集成实验环境2012”软件时总是遇到一个“运行时错误‘70’”,并且直接导致程序退出。

如下图新建一个程序,在第一行“STSGSEGMENT STACK ‘S’”处敲击键盘回车就会出现该提示。这个很让我纠结,网上查了一些都是建议使用DosBox和Masm5.0来进行汇编实验的,也不知道大家知不知道什么原因。

    最后,这是作者第一次发表博客,希望大家学习,有不好的地方希望大家原谅.希望后面还写写“123+456=sum”这个实例及详细的debug调试,和DosBox编写汇编程序的东西。

 

抱歉!评论已关闭.