要让汇编语言成为多个程序员编程的工具或工作环境,就必须解决3.1.1节中提出的问题。
第一,要设计一个帮助程序员进行记忆的符号,简称为助记符(Mnemonics),例如,表2-3中的指令(00001010)的助记符是LOAD MQ,包含的意思与该二进制代码是一样的,即“把寄存器MQ 的内容传递到累加器AC中”。
第二,要有一个汇编器(Assembler),实现从助记符到二进制代码的转换,许多厂商定义为ASM 命令。命令格式一般是:
ASM 待转换的程序名
第三,要建立主程序和子程序的概念。一个子程序是指该程序完成特定的功能后,并不停机,而是把计算的结果放到特定位置后,将指令计数器转给调用该子程序的主程序。而主程序的目的主要是控制各个子程序的执行,并对子程序的结果进行再处理。
图3-1是一个子程序,该子程序的目的是把小写字母转换为大写字母。ASCII码表(参见表5-2)中,大写与小写字母的编码差是20(十进制),因此,只要把小写字母的编码减去20(十进制)即可。
图3-1 一个子程序和算法
第四,建立程序库,让子程序可以被其他多人复用。如果有人编写了图3-1的子程序,理论上其他人要实现同样的功能,只需要调用该子程序即可,而不需要自己再编写了。为了方便,我们建立一个库,在这个库里放置很多个子程序,例如,一个数学函数库,起码要包括:sin(x)、cos(x)、tan(x)、log(x)、sqrt(x)等。用级数展开是实现这些函数的基本方法。
因此,我们需要一个建库的工具,把这些函数的汇编码编译成机器代码后,放置到库里,等待其他程序员使用。(www.xing528.com)
建库常用的命令形式是
Lib a1.obj+a2.obj+a3.obj+ +an.obj <库名>其中,a1.obj等是子程序文件名称,<库名>是最终建立的库的名称,例如,微软公司的math.lib,包括了常用的数学函数。
第五,装配程序,或称为链接程序。常用的命令像LINK。
例如,LINK main.obj subpro.obj math.lib stdio.lib
其结果为main.exe
在集成开发环境下,Build命令可以完成上述五步的工作,但是必须先建立一个项目(project)。
第六,装载程序。
将main.exe加载到内存,交给CPU 运行。在Windows操作系统下,双击main.exe,就完成了main.exe程序的装载。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。