(1) 因为Proteus中自带的汇编编译器都是使用命令行命令进行编译。在菜单Source->Define code generation tools打开的对话框中,有一项参数是Command Line,对于代码生存工具ASEM51来说,默认的命令行参数可能类似于%1 /INCLUDES:C:\Program Files\Labcenter Electronics\Proteus 7 Professional\TOOLS\ASEM51,其中%1代表的是源代码,/INCLUDES:后面跟着的是包含路径,该路径下的*.mcu文件即是通常的SFR定义文件。其实这一参数并不需要设置,通常我们的Command Line参数设置为%1即可。
(2) 另外,这个/INCLUDES:的路径参数设置也是有问题的。因为它的中间包含了空格,ASEM51汇编器会把它认为是几个参数,因而会出现too many parameters的错误。
(3)同样的道理,如果你的汇编程序存储的路径或文件名中包含了空格或一些其它有可能使用命令行出现错误的字符,编译时也会出现错误。提示可能是@@@@file not found: F:\1.a51@@@@,和F:\1 2\a.lst not found.
(4) 另外需要注意的是,ASER51不支持$符号,即不能使用类似JMP $的命令。具体还有哪些使用中还需要注意的问题,欢迎跟贴。
(5) 文件名不能太长。