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

时间:2021-03-06 01:13:41

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

一.软件的使用

下面是阅读完四川大学的课件后几张介绍该软件运行的基本方法:
1.进入Masm forWindows集成实验环境

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

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

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

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

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

4.运行程序

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

5.调试程序

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

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

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

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

二.“Helloword”程序讲解

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

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集成开发环境编写汇编程序

 

该作者还注释了一个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编写汇编程序的东西。