📄 2c3.c
字号:
#include<stdio.h>
#include<string.h>
#include<z8.h>
void com_djnz(FILE *p,struct coms cms,struct know_add adk[128])
{unsigned int a,n;
int i,j;
a=0x10;BYTE;
if(Is_num(cms.di[0]))
{i=num_e(cms.di);
if(i<-126||i>129){printf("[%d]Over 7Fh!",No-1);exit(0);}
i=i-2;a=i;BYTE;return;
}
else{i=find_ad(adk,cms.di);
if(i==-1){PREC(cms.di);exit(0);}
n=adk[i].knad;j=n-pc;j=j-1;if(j<-126){printf("[%d]Over 7Fh!",No-1);exit(0);}
a=j;BYTE;return;
}
}
void com_jr(FILE *p,struct coms cms)
{unsigned int a,n;
int i;
if(cms.si[0]==0)
{a=0x18;BYTE;
i=num_e(cms.di);
if(i<-126||i>129){printf("[%d]Over 7Fh!",No-1);exit(0);}
i=i-2;a=i;BYTE;return;}
else{if(cms.di[0]=='c'||cms.di[0]=='C'){a=0x38;BYTE;}
else if((cms.di[0]=='n'&&cms.di[1]=='c')||(cms.di[0]=='N'&&cms.di[1]=='C'))
{a=0x30;BYTE;}
else if(cms.di[0]=='z'||cms.di[0]=='Z'){a=0x28;BYTE;}
else if((cms.di[0]=='n'&&cms.di[1]=='z')||(cms.di[0]=='N'&&cms.di[1]=='Z'))
{a=0x20;BYTE;}
else{printf("[%d]Error",No-1);exit(0);}
i=num_e(cms.si);
if(i<-126||i>129){printf("[%d]Over 7Fh!",No-1);exit(0);}
i=i-2;a=i;BYTE;return;
}
}
void com_ret(FILE *p,struct coms cms)
{unsigned int a;
if(cms.com[3]=='n'||cms.com[3]=='N'){a=0x45ed;WORD;return;}
else if(cms.com[3]=='i'||cms.com[3]=='I'){a=0x4ded;WORD;return;}
else if(cms.di[0]==0){a=0xc9;BYTE;return;}
else{if(cms.di[0]=='n'||cms.di[0]=='N')
{if(cms.di[1]=='z'||cms.di[1]=='Z'){a=0xc0;BYTE;return;}else if(cms.di[1]=='c'||cms.di[1]=='C')
{a=0xd0;BYTE;return;}
}
else if(cms.di[0]=='z'||cms.di[0]=='Z'){a=0xc8;BYTE;return;}
else if(cms.di[0]=='c'||cms.di[0]=='C'){a=0xd8;BYTE;return;}
else if(cms.di[0]=='p'||cms.di[0]=='P')
{if(cms.di[1]=='o'||cms.di[1]=='O'){a=0xe0;BYTE;return;}else if(cms.di[1]=='e'||cms.di[1]=='E')
{a=0xe8;BYTE;return;}else if(cms.di[1]==0){a=0xf0;BYTE;return;}
}
else if(cms.di[0]=='m'||cms.di[0]=='M'){a=0xf8;BYTE;return;}
}printf("[%d]Error",No-1);exit(0);
}
void com_call(FILE *p,struct coms cms,struct know_add adk[128],
struct unknow_add adn[128])
{unsigned int a,n;
int i;
if(cms.si[0]==0)
{a=0xcd;BYTE;
if(Is_char(cms.di[0]))
{
i=find_ad(adk,cms.di);
if(i!=-1){a=adk[i].knad;WORD;return;}
else {adn[adni].unad=pc;strcpy(adn[adni].unf,cms.di);adni++;
a=0xffff;WORD;return;}
}else if(Is_num(cms.di[0])){a=ljs(cms.di);WORD;return;}
}
else if(Is_char(cms.di[0]))
{if(cms.di[0]=='n'||cms.di[0]=='N')
{if(cms.di[1]=='z'||cms.di[1]=='Z'){a=0xc4;BYTE;}else if(cms.di[1]=='c'||cms.di[1]=='C')
{a=0xd4;BYTE;}
}
else if(cms.di[0]=='z'||cms.di[0]=='Z'){a=0xcc;BYTE;}
else if(cms.di[0]=='c'||cms.di[0]=='C'){a=0xdc;BYTE;}
else if(cms.di[0]=='p'||cms.di[0]=='P')
{if(cms.di[1]=='o'||cms.di[1]=='O'){a=0xe4;BYTE;}else if(cms.di[1]=='e'||cms.di[1]=='E')
{a=0xec;BYTE;}else if(cms.di[1]==0){a=0xf4;BYTE;}
}
else if(cms.di[0]=='m'||cms.di[0]=='M'){a=0xfc;BYTE;}
if(Is_char(cms.si[0]))
{i=find_ad(adk,cms.si);
if(i!=-1){a=adk[i].knad;WORD;return;}
else {adn[adni].unad=pc;strcpy(adn[adni].unf,cms.si);adni++;
a=0xffff;WORD;return;}
}
else if(Is_num(cms.si[0])){a=ljs(cms.si);WORD;return;}
}
printf("[%d]Error",No-1);exit(0);}
void com_jmp(FILE *p,struct coms cms,struct know_add adk[128],
struct unknow_add adn[128])
{unsigned int a,n;
int i,j;
if(cms.si[0]==0)
{if(Is_char(cms.di[0]))
{a=0xc3;BYTE;
i=find_ad(adk,cms.di);
if(i!=-1){a=adk[i].knad;WORD;return;}
else {adn[adni].unad=pc;strcpy(adn[adni].unf,cms.di);adni++;
a=0xffff;WORD;return;}
}
else if(Is_num(cms.di[0])){a=0xc3;BYTE;a=ljs(cms.di);WORD;return;}
else if(cms.di[0]=='('||cms.di[0]=='[')
{if((cms.di[1]=='h'&&cms.di[2]=='l')||(cms.di[1]=='H'&&cms.di[2]=='L')){a=0xe9;BYTE;return;}
if(cms.di[1]=='i'||cms.di[1]=='I'){if(cms.di[2]=='x'||cms.di[2]=='X'){a=0xe9dd;WORD;return;}
else if(cms.di[2]=='y'||cms.di[2]=='Y'){a=0xe9fd;WORD;return;} else{PREC(cms.di);exit(0);}}
else{PREC(cms.di);exit(0);}
}
else{PREC(cms.di);exit(0);}
}
else if(Is_char(cms.di[0]))
{if(cms.di[0]=='n'||cms.di[0]=='N')
{if(cms.di[1]=='z'||cms.di[1]=='Z'){a=0xc2;BYTE;}else if(cms.di[1]=='c'||cms.di[1]=='C')
{a=0xd2;BYTE;}
}
else if(cms.di[0]=='z'||cms.di[0]=='Z'){a=0xca;BYTE;}
else if(cms.di[0]=='c'||cms.di[0]=='C'){a=0xda;BYTE;}
else if(cms.di[0]=='p'||cms.di[0]=='P')
{if(cms.di[1]=='o'||cms.di[1]=='O'){a=0xe2;BYTE;}else if(cms.di[1]=='e'||cms.di[1]=='E')
{a=0xea;BYTE;}else if(cms.di[1]==0){a=0xf2;BYTE;}
}
else if(cms.di[0]=='m'||cms.di[0]=='M'){a=0xfa;BYTE;}
if(Is_char(cms.si[0]))
{i=find_ad(adk,cms.si);
if(i!=-1){a=adk[i].knad;WORD;return;}
else {adn[adni].unad=pc;strcpy(adn[adni].unf,cms.si);adni++;
a=0xffff;WORD;return;}
}
else if(Is_num(cms.si[0])){a=ljs(cms.si);WORD;return;}
}
printf("[%d]Error",No-1);exit(0);}
void com_set(FILE *p,struct coms cms,struct dataseg dseg[64])
{unsigned int a,m,n;
int i,j;
if(Is_char(cms.si[0]))
{a=0xcb;BYTE;
a=0xc0;m=bit_b(cms.di);n=bit_si(cms.si);a=a+m+n;BYTE;return;
}
else if(cms.si[0]=='('||cms.si[0]=='[')
{if((cms.si[1]=='h'&&cms.si[2]=='l')||(cms.si[1]=='H'&&cms.si[2]=='L'))
{a=0xcb;BYTE;a=0xc6;m=bit_b(cms.di);a=a+m;BYTE;return;}
else if(cms.si[1]=='i'||cms.si[1]=='I')
{if(cms.si[2]=='x'||cms.si[2]=='X'){a=0xcbdd;WORD;}
else if(cms.si[2]=='y'||cms.si[2]=='Y'){a=0xcbfd;WORD;}
else{PREC(cms.si);exit(0);}
if(cms.si[3]=='+')
{j=0;for(i=4;(Ture(cms.si[i]))&&cms.si[i]!=')'&&cms.si[i]!=']';i++)
{cms.si[j]=cms.si[i];j++;}cms.si[j]=0;
if(Is_num(cms.si[0]))a=ljs(cms.si);
else {i=find_da(dseg,cms.si);
if(i==-1){PREC(cms.si);exit(0);}
a=dseg[i].data;}if(a>0xff){OVER(a);exit(0);}
}
else a=0;BYTE;
a=0xc6;m=bit_b(cms.di);a=a+m;BYTE;return;
}
}
printf("[%d]Error",No-1);exit(0);
}
void com_res(FILE *p,struct coms cms,struct dataseg dseg[64])
{unsigned int a,m,n;
int i,j;
if(Is_char(cms.si[0]))
{a=0xcb;BYTE;
a=0x80;m=bit_b(cms.di);n=bit_si(cms.si);a=a+m+n;BYTE;return;
}
else if(cms.si[0]=='('||cms.si[0]=='[')
{if((cms.si[1]=='h'&&cms.si[2]=='l')||(cms.si[1]=='H'&&cms.si[2]=='L'))
{a=0xcb;BYTE;a=0x86;m=bit_b(cms.di);a=a+m;BYTE;return;}
else if(cms.si[1]=='i'||cms.si[1]=='I')
{if(cms.si[2]=='x'||cms.si[2]=='X'){a=0xcbdd;WORD;}
else if(cms.si[2]=='y'||cms.si[2]=='Y'){a=0xcbfd;WORD;}
else{PREC(cms.si);exit(0);}
if(cms.si[3]=='+')
{j=0;for(i=4;(Ture(cms.si[i]))&&cms.si[i]!=')'&&cms.si[i]!=']';i++)
{cms.si[j]=cms.si[i];j++;}cms.si[j]=0;
if(Is_num(cms.si[0]))a=ljs(cms.si);
else {i=find_da(dseg,cms.si);
if(i==-1){PREC(cms.si);exit(0);}
a=dseg[i].data;}if(a>0xff){OVER(a);exit(0);}
}
else a=0;BYTE;
a=0x86;m=bit_b(cms.di);a=a+m;BYTE;return;
}
}
printf("[%d]Error",No-1);exit(0);
}
void com_bit(FILE *p,struct coms cms,struct dataseg dseg[64])
{unsigned int a,m,n;
int i,j;
if(Is_char(cms.si[0]))
{a=0xcb;BYTE;
a=0x40;m=bit_b(cms.di);n=bit_si(cms.si);a=a+m+n;BYTE;return;
}
else if(cms.si[0]=='('||cms.si[0]=='[')
{if((cms.si[1]=='h'&&cms.si[2]=='l')||(cms.si[1]=='H'&&cms.si[2]=='L'))
{a=0xcb;BYTE;a=0x46;m=bit_b(cms.di);a=a+m;BYTE;return;}
else if(cms.si[1]=='i'||cms.si[1]=='I')
{if(cms.si[2]=='x'||cms.si[2]=='X'){a=0xcbdd;WORD;}
else if(cms.si[2]=='y'||cms.si[2]=='Y'){a=0xcbfd;WORD;}
else{PREC(cms.si);exit(0);}
if(cms.si[3]=='+')
{j=0;for(i=4;(Ture(cms.si[i]))&&cms.si[i]!=')'&&cms.si[i]!=']';i++)
{cms.si[j]=cms.si[i];j++;}cms.si[j]=0;
if(Is_num(cms.si[0]))a=ljs(cms.si);
else {i=find_da(dseg,cms.si);
if(i==-1){PREC(cms.si);exit(0);}
a=dseg[i].data;}if(a>0xff){OVER(a);exit(0);}
}
else a=0;BYTE;
a=0x46;m=bit_b(cms.di);a=a+m;BYTE;return;
}
}
printf("[%d]Error",No-1);exit(0);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -