对于一个具有几万行的汇编程序,按理说应该是可以正确汇编的。根据8051代码空间的大小尺寸,如果全部使用的是单字节指令,理论上汇编器可以支持65536行有效指令的源文件。不信你可以试一试: INC A INC A INC A NOP ...... MOV R0,A
但是,对于一个实际应用程序来说上述例子程序是不可能的。程序中多少会出现一些标号和变量,而汇编器支持标号和变量的长度为最大32字节,假如每一行前都有一个标号,那么在极端情况下这些标号和变量缓冲区的大小应不得小于64K×32字节,这么大的空间在早期DOS时代是绝对不能承受的,即便是在Windows环境下也是不合理的。 那么汇编器的作者权衡综合性能做出了一些限制:限制标号和变量缓冲区的大小。这就是不能汇编的真实原因! 解决方法: 使用多模块方式编程(不是使用include方式!),使用 segment/rseg,public/extrn将程序打断,使得程序结构更加清晰合理。 广告:欢迎使用我们的MedWinV3和内嵌自主版权的汇编器/连接器,相信它会是最好的IDE。 相关链接:http://www.manley.com.cn
|