- 注册时间
- 2004-12-25
- 最后登录
- 1970-1-1
|
【软件名称】 星端编译器1.43
【最新版本】 1.43
【软件作者】 gameghost
【适用平台】 所有支持LavaX20K的文曲星
【软件说明】 可嵌入汇编的LavaX1.0编译器
这里只说明附加指令,详细内容请看上传文件里的说明:
1.#asmdef [系统函数名] [系统函数指令地址] 定义汇编入口
2.asm [变量名]{[汇编程序]}声明数组并对其初始化汇编程序,数组的长度依汇编程序长度而定
3.Callasm([地址]) 调用汇编的宏指令
4.Putasm([常量地址]){[汇编程序]} 向常量指向的地址初始化汇编程序,初始化的长度依汇编程序长度而定
5.Putdata([常量地址]){[数据]} 向常量指向的地址初始化数据,初始化的长度依数据长度而定
6._LINE_ 系统变量(调试用),代表当前程序所在源程序的行号,类型为数字
7._TIME_ 系统变量(调试用),代表编译器编译当前程序时的时间,类型为字符串
8._DATE_ 系统变量(调试用),代表编译器编译当前程序时的日期,类型为字符串
9.支持(char *),(int *),(long *)
10.支持针对结构的指针
【软件截图】
【更新日志】
V1.1
1.修正读文件错误
2.修正汇编指令判断错误
3.修正行号显示错误
4.修正for的错误
V1.2
1.修正变量编译错误
2.增加字符串初始化方式: char a[]="str";
V1.21
修正指针的语法判断
V1.22
修正标号问题
V1.3
1.修正变量赋值问题
2.修正内部编译问题
3.增加对结构的支持
4._TIME_变为_TIME_和_DATE_
V1.31
1.修正文件结尾判断问题,编译汇编不必在后面再加东西
2.解决'#'问题(一个手误,晕~)
V1.4
1.修正了汇编的指令写入问题
2.增加对(char *),(int *),(long *) 的支持.
V1.41
修正标号问题
V1.42
修正其他问题
V1.43
修正汇编include问题
增加对结构指针的支持
结构指针的说明:
声明方式: struct [结构名] *[指针名]
成员访问方式 [指针名]->[成员名]
用法:
struct a{
char var1;
long var2;
}b;
struct a *c;
void fun(struct a *d)
{
printf("%d",d->var1);
}
void main()
{
b.var2 = 1234;
b.var1 = 99;
c = b;
printf("%d",c->var2);
fun(b);
}
结构指针相当于一个long型的变量,可以当作long型变量使用.
本来想加上变量的指针的使用,但是要改的东西是在是多一两天搞不定,有时间再加吧.
注意char *),(int *),(long *)是专对于LavaX1.0增加的,和其他的LavaX版本不同,此语法可以在所有LavaX1.0的平台上使用!
补充一句,编译的指针使用的是数组的指令,不是用'*'组成的宏,所以比其他的方式都快.
编译器支持全角字符的变量名
编译器的内存限制:
变量名最长 15 字节,超出的会被截去
变量最多150个
标号(LavaX中)最多150个
函数最多60个
常量最多150个
标号(ASM中)最多150个
数组下标最多9维
循环嵌套深度最大15层
再说一下struct的内存限制:
struct数量*21 + 总成员数量*38 < 0x800 |
|