
轻鬆彙编
轻鬆彙编是一个彙编语言的集成开发环境,主要面向彙编语言的初学者。 它提供了一个在Windows界面下的彙编语言开发环境,具有了一般的集成开发环境所提供的功能。例如:原来需要烦琐的命令行才能完成的工作,现在只需要简单的滑鼠单击就可以完成,而且複杂的参数也只要进行一下设定就可以了。还有,它会截获错误信息,并显示在错误视窗上,只要点击一下错误信息,对应的错误行就会在编辑视窗突出显示出来。
基本介绍
- 中文名:轻鬆彙编
- 对 象:彙编语言的初学者
- 应 用:彙编语言开发环境
- 开 发 者:晨池Cook
- 类 似 软体:Windows自带的记事本
- 功能特色:交叉档案和映像档案
主要作用
除了一般的功能外,它还针对彙编语言的特殊性和彙编语言初学者的特殊性,提供了一些专门针对彙编语言和专门针对彙编语言初学者的功能。例如:格式整理,当您写完一行程式,换行时,轻鬆彙编会自动先简单的检查该行语法,如无错误则整理该行的格式,使彙编程式格式整齐,具有如同艺术品一样的建筑美。而且在集成环境里,第二版增加了交叉档案和映像档案的自动读入功能,使初学者阅读交叉档案和映像档案更方便,有利于初学者养成良好的编程习惯和加深对彙编语言、机器语言的理解。

开发者介绍
作者:晨池,拉丁名:Cook,酷客,出生于河南省北部太行山区,后移于江汉平原,珠江三角洲,长江三角洲等地。毕业于武汉大学。
其软体是在大学期间完成的。
操作指南
第一步 基本的编辑功能
这里是介绍基本的编辑功能,就像在介绍Windows自带的记事本。
档案选单:
新建:新建一个档案,快捷键为 Ctrl+N ;
保存:保存当前档案,快捷键为 Ctrl+S ;
打开:打开一个档案,快捷键为 Ctrl+O ;
退出:退出轻鬆彙编 ;
另外储存为: 把正在编辑的档案存为另外一个档案 ;
最近使用过的档案:在这里纪录了您最近使用过的档案,可以快速打开。
如果您不希望别人看到您编辑过什幺程式,可以点击“清空全部纪录”。
编辑选单:
全选:选定正在编辑的全部内容,快捷键为 Ctrl+A;
複製:複製选定的内容到剪贴簿,快捷键为 Ctrl+C;
剪下:複製选定的内容到剪贴簿,并删除所选定的内容,快捷键为 Ctrl+X;
贴上:把剪贴簿中的内容複製到编辑视窗,快捷键为 Ctrl+P;
删除:删除选定内容,快捷键为 Del;
撤消:撤消上一步操作,快捷键为 Ctrl+Z,但是注意只能撤消一次。
查找选单:
查找:在所编辑的档案中查找字元串,快捷键为 Ctrl+F;
替换:在所编辑的档案中把一个字元串替换为另一个,快捷键为 Ctrl+R;
查找下一个:从当前游标起,查找下一个,快捷键为 F3;
第二步 编写一个彙编程式
打开轻鬆彙编就自动为您新建了一个模板,直接在上面添加数据定义和代码就可以了。一般来说,都是先写堆叠段。输入“stacks segment stack”,用空格隔开关键字。然后按下回车键换行——您会看到,轻鬆彙编自动把刚才输入的那一行程式的格式整理好了。
第二行是堆叠的大小了,应该输入“db 128 dup(0)”,输入“bd 128 dup(0)”试试,会怎样?在换行时没有整理格式。如果您输入的彙编程式有拼写错误,轻鬆彙编会检测出来,并且拒绝整理错误行的格式,这时候您就可以避免这类简单而又隐蔽的错误。当然,如果您确定您输入的是正确的,而轻鬆彙编没有整理格式,或整理的格式不好看,请告诉我这个错误,不胜感激,联繫方式见左侧小字。在您编程的过程中,左侧的导航栏会随时更新您的语法信息,可以通过导航栏来快速定位您的语法元素。
接着,把您所想要写的程式写完,进行下一步:编译、运行一个程式。
如果是以前写的程式,在轻鬆彙编中打开后,点击:运行“整理格式”,轻鬆彙编会对整个程式格式进行整理。
第三步 编译、运行一个彙编程式
把写好的彙编程式编译、运行一下,熟悉操作。
点击:运行-生成目标档案,轻鬆彙编就会自动生成目标档案,另外,根据您的设定(如何设定,请参见第四步),还会生成其他的档案。默认是生成交叉档案和映像档案,点击右上角的按钮就可以看到这两个档案(这两个档案的作用,请参见疑难解答)。
如果有语法错误,编译会失败,错误信息会显示在下面的视窗中,点击错误信息,错误行就会突出显示出来。
点击:运行-运行,轻鬆彙编就会会自动完成编译、连结、运行当前程式。在程式运行时是全萤幕方式,结束后变成视窗方式,不会退出。
点击:运行-调试,轻鬆彙编就会自动完成编译、连结、调试的工作,使用的是TD作为调试工具。
就这些了,因为在轻鬆彙编下编译、运行一个程式确实简单。
在彙编时还有其他的可能,那幺,请进行第四步:让彙编变的更轻鬆。
第四步 让彙编变得更轻鬆
对轻鬆彙编进行个人设定,让它更符合您的习惯。
在轻鬆彙编中根据初学者的特点,提供了很有特色的功能,如果您不喜欢的话,可以关掉它,对于运行的参数,同样也是通过设定来改变的。下面我们一一介绍:
在设定中:
格式设定:在这里的下拉框中有三个选项,全部大写、全部小写和不处理,选定后的结果是在进行格式处理时对格式化结果的处理。
自动整理格式:选定后在换行的时候会对原来行进行格式整理,如果没有选定就不整理格式。
採用调试模式:选定后在编译时包括参数/zi,在连结时包括参数/v,这样生成的执行档比较大,包含了用TD调试时所需要的信息,可以实现原始码调试;如不选定,不能实现原始码调试,在调试的时候不太方便。推荐选定该选项。
编译生成Com档案:选定该选项后在连结时包括参数/t,如果你写的是一个com档案的彙编代码,那幺就可以选定以生成一个com后缀的档案。在选定该选项后调试时不能实现原始码调试,所以最好在编写、调试的时候不选定,最后调试通过后再选定该选项生成com档案。如果不选定,即使是com档案的彙编代码也是可以编译通过,只不过生成的是一个Exe档案。推荐不选定。
自定义参数:就是自己提供TASM和TLink的参数了,如果你对TASM了解比较多,可以实现其他的参数功能,但是对于一般的学习者,并不需要自定义参数,以免造成程式运行时出问题。
程式格式:在这里控制格式整理的方式,您可以自己设定后看看效果。不过推荐用默认方式。
显示导航栏:选中后显示导航栏,否则不显示。
显示错误栏:选中后显示错误栏,否则不显示。(推荐选中,如果不选中,有错误它是不会自动显示的。)
疑难解答
交叉档案和映像档案是什幺
交叉档案和映像档案是编译过程和结果的详细显示。其中交叉档案是在第二遍扫描中建立的,映像档案是对执行档的说明,所以只有生成了执行档,才会有映像档案,但是只要不发生严重错误,就有交叉档案。
学会阅读交叉档案对于理解彙编原理更加重要,交叉档案说明如下:
1、编译后的机器代码和彙编语言的对应关係。
在交叉档案的主体部分,就是说明编译后的机器代码和彙编语言的对应关係的,分为三列,第一列是编译后机器代码在记忆体中的地址,第二列是编译后的机器代码,第三列就是你写的彙编语言和注释。要注意的是,在交叉档案中的数字全部都是用十六进制表示的,没有十进制表示的数字。
下面是一段交叉档案的原文:
000E B1 02 MOV CL,2 ;把2送到CL中
0010 F6 E9 IMUL CL ;CL中的数值和AL中数值相乘
0012 FE C0 INC AL ;AL中的数值加1
第一列是对应指令在记忆体的地址,第一条指令“MOV CL,2”的起始地址是000E,占了两个位元组(B1 02),所以第二条指令的起始地址是0010。
第二列是编译后的机器指令,第一条指令“MOV CL,2”编译后的机器代码是“B1 02”,其中B1表示:1)是MOV指令;2)定址方式是立即数定址;3)使用的是CL暂存器。02表示运算元是02H,十六进制数2。第二和第三条指令也是以此类推,查看一下指令格式就可以了。编译后的执行档里写的就是第二列的内容,您可以用UlTra Edit等十六进制编辑器打开看一看。
第三列就是被编译的彙编指令。
2、宏扩展情况。
在存在着宏扩展的部分,都用“1”标出,如下所示:
0024 E8 0035 CALL PINISET
MOUTPUT CLINE ;输出CLINE
0027 BA 0001 R 1 MOV DX,OFFSET CLINE
002A B4 09 1 MOV AH,09H
002C CD 21 1 INT 021H
在这段程式中,事先定义了宏MOUTPUT:
MOUTPUT MACRO PSTR ;输出PSTR
MOV DX,OFFSET PSTR
MOV AH,09H
INT 021H
ENDM
而CLINE是一个数据。
您可以看到,宏被扩展成的三条指令都用“1”标出来了。
3、错误列表。
在交叉档案的彙编语言的错误行的上面标出了错误原因、错误行、和错误类别,在交叉档案的最后,还列出了总的错误数。
4、段、子程式、宏、变数的清单。
在交叉档案的最后部分是对彙编程式中所有的段、子程式、宏、变数的清单,列出了它们的起始地址、值、类型等特徵。
学会阅读交叉档案,可以对了解指令格式、编译原理有很大的帮助,而且通过阅读交叉档案,可以了解实际的宏扩展情况,有利于程式排错。
为什幺语法错误的提示信息是乱七八糟
轻鬆彙编调用的是TASM 5.0作为核心编译彙编程式的,错误信息也是通过TASM 5.0来截获的。为了简便安装,把TASM 5.0功能实现所需要的最少的几个档案附带安装了,它们是TASM.Exe,TLink.Exe,TD.Exe,RTM.Exe。
其中,TASM.Exe的版本是4.1,TLink.Exe的版本是7.1.30.1。如果发生了上述情况,很可能是被替换成了不同的版本,您可以再其他地方拷贝一个相同版本的过来。或者重新安装轻鬆彙编。现在网上很多TASM5就是轻鬆彙编所调用的。
为什幺运行结果和彙编原始码不一致呢
在有些情况下,会发生这种问题:修改了原始码以后再运行程式,运行的结果却是修改以前的,似乎修改的没有效果!
解决这个问题的办法是在修改原始码以后,都要先编译(Ctrl+F9),在编译通过后,再连结(F9),然后再运行或调试,否则修改就没有效果。
之所以会这样,是因为在轻鬆彙编中,编译只负责把彙编的原始码编译成目标档案(*.obj),而连结只负责把已有的目标档案连结成执行档(*.exe),而运行只负责运行已经存在的执行档,调试也只负责调试已经存在的执行档。这是符合在命令行下写彙编程式的规则的。
在这种情况下,如果你先打开一个彙编程式,第一次编译、连结、运行或调试,都很正常。接着,你修改了原始码,再运行,结果肯定是修改以前的,因为执行档还是按修改前的原始码生成的,连结一遍再运行,结果还是修改以前的,因为目标档案是按修改以前的原始码生成的,那由此生成的执行档自然也是按修改以前的代码生成的了。所以必须重新编译一遍再重新连结一遍,然后再运行或调试,就没问题了。