📄 2h.c
字号:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define READ1 b=getc(pf1)
#define PRE printf("Open file error!")
#define Is_num(z) z>47&&z<58
#define Is_char(z) ((z>64&&z<91)||(z>96&&z<123))
#define Ture(z) z!=32&&i<8&&z!=10&&z!=-1&&z!=0&&z!='\t'&&z!=':'
#define PREC(z) printf("[%d][%s],Don't find!",No-1,z)
#define BYTE putc(a,p);pc++;
#define WORD putw(a,p);pc++;pc++;
#define OVER(z) printf("[%d][%x],Over FFh!",No-1,z)
int pc=0,da=0,adki=0,adni=0,No=1;
extern struct dataseg
{unsigned int data;
char def_data[8];}dseg[64];
extern struct unknow_add
{unsigned int unad;
char unf[8];}adn[128];
extern struct know_add
{unsigned int knad;
char knf[8];}adk[128];
extern struct coms
{char addf[8];
char com[8];
char di[8];
char si[8];}cms;
extern unsigned int ljs(char di[8])
{unsigned int i,num,n=0;
if(di[0]==48&&di[1]>57)i=1;else i=0;
while(i<=4&&di[i]!='h'&&di[i]!='H'&&Ture(di[i])&&di[i]!=')'&&di[i]!=']')
{n=n<<4;num=0;
if(di[i]>=48&&di[i]<=57)num=di[i]-48;
else if(di[i]>=65&&di[i]<=70)num=di[i]-55;
else if(di[i]>=97&&di[i]<=120)num=di[i]-87;
else {PREC(di);exit(0);}
n=n+num;i++;}return(n);}
void extern madefile(char name1[10],char name2[10],char name3[10])
{int i;
for(i=0;i<10&&name1[i]!='.';i++)
name2[i]=name3[i]=name1[i];name2[i]=name3[i]=46;
i++; name2[i]='l';name3[i]='b';i++;name2[i]='s';name3[i]='i';
i++;name2[i]='t';name3[i]='n';i++;name2[i]=name3[i]=00;}
extern int write_lst(FILE *fp2,char s[8])
{int i=0;
while(Ture(s[i]))
{putc(s[i],fp2);i++;
}
putc(9,fp2);return(i);
}
extern int find_da(struct dataseg dseg[64],char s[8])
{ int i;
for(i=0;i<64;i++)
if(strcmp(dseg[i].def_data,s)==0)return(i);
return(-1);}
extern int find_ad(struct know_add adk[128],char s[8])
{ int i;for(i=0;i<=adki;i++)if(strcmp(adk[i].knf,s)==0)return(i);
return(-1);}
extern unsigned int bit_b(char a[8])
{unsigned int m;
if(strcmp(a,"d7")==0||strcmp(a,"D7")==0||strcmp(a,"38")==0)m=0x38;
else if(strcmp(a,"d0")==0||strcmp(a,"D0")==0||strcmp(a,"00")==0||
strcmp(a,"0")==0)m=0;
else if(strcmp(a,"d1")==0||strcmp(a,"D1")==0||strcmp(a,"08")==0||
strcmp(a,"8")==0)m=0x08;
else if(strcmp(a,"d2")==0||strcmp(a,"D2")==0||strcmp(a,"10")==0)m=0x10;
else if(strcmp(a,"d3")==0||strcmp(a,"D3")==0||strcmp(a,"18")==0)m=0x18;
else if(strcmp(a,"d4")==0||strcmp(a,"D4")==0||strcmp(a,"20")==0)m=0x20;
else if(strcmp(a,"d5")==0||strcmp(a,"D5")==0||strcmp(a,"28")==0)m=0x28;
else if(strcmp(a,"d6")==0||strcmp(a,"D6")==0||strcmp(a,"30")==0)m=0x30;
else {PREC(a);exit(0);}return(m);}
extern unsigned int bit_di(char a[8])
{unsigned int m;
char z;
if(a[1]==0){z=a[0];
if(z=='a'||z=='A')m=0x38;if(z=='b'||z=='B')m=0;
else if(z=='c'||z=='C')m=0x08;else if(z=='d'||z=='D')m=0x10;
else if(z=='e'||z=='E')m=0x18;
else if(z=='h'||z=='H')m=0x20;else if(z=='l'||z=='L')m=0x28;}
else if((a[0]=='h'||a[0]=='H')&&(a[1]=='l'||a[1]=='L'))m=0x30;
else m=0xff;return(m);}
extern unsigned int bit_si(char a[8])
{unsigned int n;
char z;
if(a[1]==0){z=a[0];
if(z=='a'||z=='A')n=0x7;else if(z=='b'||z=='B')n=0;
else if(z=='c'||z=='C')n=0x1;else if(z=='d'||z=='D')n=0x2;
else if(z=='e'||z=='E')n=0x3;
else if(z=='h'||z=='H')n=0x4;else if(z=='l'||z=='L')n=0x5;}
else if((a[0]=='h'||a[0]=='H')&&(a[1]=='l'||a[1]=='L'))n=0x6;
else n=0xff;return(n);}
extern unsigned int word_bit(char a[8])
{unsigned int m;
if((a[0]=='b'||a[0]=='B')&&(a[1]=='c'||a[1]=='C'))m=0;
else if((a[0]=='d'||a[0]=='D')&&(a[1]=='e'||a[1]=='E'))m=0x10;
else if((a[0]=='h'||a[0]=='H')&&(a[1]=='l'||a[1]=='L'))m=0x20;
else if(((a[0]=='s'||a[0]=='S')&&(a[1]=='p'||a[1]=='P'))
||((a[0]=='a'||a[0]=='A')&&(a[1]=='f'||a[1]=='F')))m=0x30;
else m=0xff;return(m);}
extern int num_e(char a[8])
{int i=0,num,n=0,pf=0;
if(a[0]=='-'){pf=1;i++;}
else if(a[0]=='+')i++;
if(a[i]==48)i++;
while(i<=4&&a[i]!='h'&&a[i]!='H'&&Ture(a[i])&&a[i]!=')'&&a[i]!=']')
{n=n<<4;num=0;
if(a[i]>=48&&a[i]<=57)num=a[i]-48;
else if(a[i]>=65&&a[i]<=70)num=a[i]-55;
else if(a[i]>=97&&a[i]<=120)num=a[i]-87;
else {PREC(a);exit(0);}
n=n+num;i++;}
if(pf==0)return(n);
n=0-n;return(n);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -