y=0; as++; // признак следующего элем списка, если >0, то созд нового эл
return n;
}
void proverka(char *buf,char *str)
{
int a=0,e=0; n1=n;
if (strcmp(n1->name,buf)==0) {
int er=3; error(er,buf,str); e++; }
while(n1->next!=NULL) {
if (e==1) break ; if (a==2) n1=n1->next;
if (a==1) a++;
if (strcmp(n1->name,buf)==0) {
int er=3; error(er,buf,str);
break; } if (a==0) { n1=n1->next; a++; } }
}
loadcode *LoadCode() //запись в список команд и их кодов с файла
{
int e; int i=0; fpos_t filepos,newpos;
char str[5],buf[5]; FILE *file_c;
struct loadcode *k,*k1,*k2;
if ((file_c = fopen("codes.txt", "r"))== NULL) {
printf("Canot open file 'codes.txt'\n");
exit(0);
}
clearbuf; k=new loadcode; k1=k;
while (!feof(file_c)) { // чтение с codes.txt команды в buf
e=strlen(fgets(str,10,file_c));
fgetpos(file_c, &filepos);
newpos=filepos-e-1;
fsetpos(file_c, &newpos);
fgets(buf,e,file_c);
if (i==0) { //если 1-й эл списка
strcpy(k->com,buf); // запись в эл списка
clearbuf; fgets(buf,5,file_c); //чтение строки
if (strcmp(buf,"\n")==0)
fgets(buf,5,file_c);
k->op1=atoi(buf);clearbuf;
fgets(buf,5,file_c);
k->op2=atoi(buf);clearbuf;
fgets(buf,5,file_c);
k->code=atoi(buf);clearbuf;
k->next=NULL; i++;
}
else {
k2=new loadcode;
strcpy(k2->com,buf);clearbuf;
fgets(buf,5,file_c);
if (strcmp(buf,"\n")==0)
fgets(buf,5,file_c);
k2->op1=atoi(buf);clearbuf;
fgets(buf,5,file_c);
k2->op2=atoi(buf);clearbuf;
fgets(buf,5,file_c);
k2->code=atoi(buf);clearbuf;
k2->next=NULL;
k1->next=k2; // связать эл-ты списка
k1=k2; //указатель на текущий эл
clearbuf; } }
k1=k; //установка текущ указателя на нач списка
fclose(file_c); return k; }
void LoadByte2()
{ strcpy(byte[0].r,"ax");
byte[0].c=0; byte[0].x=0;
strcpy(byte[1].r,"bx");
byte[1].c=24; byte[1].x=6;
strcpy(byte[2].r,"cx");
byte[2].c=8; byte[2].x=1;
strcpy(byte[3].r,"dx");
byte[3].c=16; byte[3].x=2;
strcpy(byte[4].r,"ds");
byte[4].c=24; byte[4].x=3;
strcpy(byte[5].r,"al");
byte[5].c=0; byte[5].x=6;
strcpy(byte[6].r,"ah");
byte[6].c=32; byte[6].x=6;
strcpy(byte[7].r,"bl");
byte[7].c=24; byte[7].x=6;
strcpy(byte[8].r,"bh");
byte[8].c=56; byte[8].x=6;
strcpy(byte[9].r,"cl");
byte[9].c=8; byte[9].x=6;
strcpy(byte[10].r,"ch");
byte[10].c=40; byte[10].x=6;
strcpy(byte[11].r,"dl");
byte[11].c=16; byte[11].x=6;
strcpy(byte[12].r,"dh");
byte[12].c=48; byte[12].x=6; }
void cmp(char buf[5],char *str)
{ int rez,az=0,i=0;
loadreg;
if (r==1) { k1=k;
while (k1->next!=NULL) {
if (az==2) k1=k1->next;
if (az==1) az++;i++;
if (strcmp(k1->com,buf)==0) {
f1=i;t2++; break; }
if (az==0) { k1=k1->next; az++; }
} }
if (r==2) { n1=n;
while (n1->next!=NULL) {
if (az==2) n1=n1->next;
if (az==1) az++; i++;
if (strcmp(n1->name,buf)==0) {
f2=i;break; }
if (az==0) { n1=n1->next;az++; }
} }
if (f2==0 && r==2) {
for (int j=5;j<18;j++) {
if(strcmp(reg[j],buf)==0) { f2=j;break; }
} }
if (r==3) { n1=n;
while (n1->next!=NULL) {
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.