Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
pz.1.doc
Скачиваний:
3
Добавлен:
15.09.2019
Размер:
435.2 Кб
Скачать

А.4 Основные этапы разработки

Этапы разработки ПП представлены в таблице А.4.1.

Таблица А.4.1- Этапы разработки ПП

Этапы работы

Срок выполнения (недели)

1.

Изучение архитектуры микроЭВМ

1-2

2.

Разработка системы команд микроЭВМ.

3

3.

Разработка мнемокода.

4

4.

Разработка тестового примера на мнемокоде.

5

5.

Ручная трансляция программы на мнемокоде.

6-7

6.

Разработка и написание программы транслятора.

8-10

7.

Оформление документации.

11

8.

Защита курсового проекта

12

ПРИЛОЖЕНИЕ Б

РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ

Для работы с программой необходимо предварительно написать текстовый файл с исходным текстом транслируемой программы. После этого нужно запустить файл Cross_asm.exe. Далее необходимо ввести путь транслируемого ASM-файла.

Транслятор в качестве результатов своей работы генерирует объектный файл с именем исходного файла и расширением .OBJ, находящийся в той же папке что и транслируемый ASM-файл.

ПРИЛОЖЕНИЕ В

ЛИСТИНГ ПРОГРАММЫ

#include<stdio.h>

#include<string.h>

#include<stdlib.h>

#include<math.h>

typedef char string[20];

char c=' ',*pos,*temp,k1[6],k2[5],k3[5],ha,da;

char t1[5],t2[5],t3[5],t4[5],h[19],d[173],r[73],t[69],m[69],e[7];

string str,st1,st2,st3,per[10][2],label[10][2],name,codp,ptemp;

int n1,n2,l,i,adr=0,flag=0;

int k_p=0,k_m=0;

//**************вхожд***************

int incoming(string st)

{int f=0;

for(i=0;i<k_p;i++)

{

if(strcmp(per[i][0],st)==NULL)

{f=1;}

}

if(f==1){return 1;}

{return 0;}

}

//*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-

//************BIN->DEC************

int perev(string a)

{

int d=0,i,j=0;

for(i=strlen(a);i>0;i--)

{

if(a[i-1]=='1'){d+=pow(2,j);}

j++;

}

return d;

}

//*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-

main(int argc, char *args[])

{

FILE *std,*obj;

char v[20];

if(argc==2)

{

if((std=fopen(args[1],"r"))==NULL)

{

puts("file err");

return 1;

}

strcpy(m,"m");

strcpy(d,"d");

while(!feof(std))

{

fgets(str,20,std);

strcpy(st1,str);

pos=strchr(st1,c);

*pos='\0';

strcpy(st2,str);

temp=st2;

pos=strchr(st2,c);

temp=pos+1;

strcpy(st2,temp);

pos=strchr(st2,c);

*pos='\0';

strcpy(st3,str);

temp=st3;

pos=strchr(temp,c);

temp=pos+1;

pos=strchr(temp,c);

temp=pos+1;

pos=strchr(temp,c);

*pos='\0';

if(st1[strlen(st1)-2]==':')

{

da=adr;

temp[0]=da;

temp[1]='\0';

strcpy(label[k_m][0],st1);

strcpy(label[k_m][1],temp);

k_m++;

}

if(strcmp(st1,".DB")==NULL)

{

strcat(d,st2);

l=strlen(st2);

for(i=1;i<=(6-l);i++)

strcat(d," ");

da=adr;

temp[0]=da;

temp[1]='\0';

strcat(d,temp);

strcpy(ptemp,"[");

strcat(ptemp,st2);

strcat(ptemp,"]");

strcpy(per[k_p][0],ptemp);

strcpy(per[k_p][1],temp);

k_p++;

}

adr++;

}

fclose(std);

std=fopen("c:\\users\\dima\\1.asm","r");

adr=0;

while(!feof(std))

{

fgets(str,20,std);

strcpy(st1,str);

pos=strchr(st1,c);

*pos='\0';

strcpy(st2,str);

temp=st2;

pos=strchr(st2,c);

temp=pos+1;

strcpy(st2,temp);

pos=strchr(st2,c);

*pos='\0';

strcpy(st3,str);

temp=st3;

pos=strchr(temp,c);

temp=pos+1;

pos=strchr(temp,c);

temp=pos+1;

pos=strchr(temp,c);

*pos='\0';

strcpy(st3,temp);

if(strcmp(st1,".ПРОЦ")==NULL)

{strcpy(name,st2);

strcpy(h,"");

strcat(h,"h");

strcat(h,st2);

l=strlen(st2);

for(i=1;i<=(6-l);i++)

strcat(h," ");

ha=perev("000000");

temp[0]=ha;

temp[1]='\0';

strcat(h,temp);

strcat(h,"");

flag=0;

}

adr++;

if(strcmp(st1,"ПЕР")==NULL)

{

if(flag==0)

{

strcpy(t,"t");

da=adr;

temp[0]=da;

temp[1]='\0';

strcat(t,temp);

strcat(t,"¶");

strcpy(e,"e");

strcat(e,temp);

}

flag=1;

*t1=st2[0];*t2=st3[0];

t1[1]='\0';

t2[1]='\0';

if((strcmp(t1,"R")==NULL) && (strcmp(t2,"R")==NULL) )

{ *t3=st2[1];

t3[1]='\0';

n1=atoi(t3);

strcpy(k1,"000000");

switch(n1){

case 0:{strcpy(k2,"000");break;}

case 1:{strcpy(k2,"001");break;}

case 2:{strcpy(k2,"010");break;}

case 3:{strcpy(k2,"011");break;}

case 4:{strcpy(k2,"100");break;}

case 5:{strcpy(k2,"101");break;}

case 6:{strcpy(k2,"110");break;}

case 7:{strcpy(k2,"111");break;}

}

*t3=st3[1];

t3[1]='\0';

n2=atoi(t3);

switch(n2){

case 0:{strcpy(k3,"000");break;}

case 1:{strcpy(k3,"001");break;}

case 2:{strcpy(k3,"010");break;}

case 3:{strcpy(k3,"011");break;}

case 4:{strcpy(k3,"100");break;}

case 5:{strcpy(k3,"101");break;}

case 6:{strcpy(k3,"110");break;}

case 7:{strcpy(k3,"111");break;}

}

}

if((strcmp(t1,"R")==NULL) && (incoming(st3)==1) )

{ *t3=st2[1];

t3[1]='\0';

n1=atoi(t3);

strcpy(k1,"101000");

switch(n1){

case 0:{strcpy(k2,"000");break;}

case 1:{strcpy(k2,"001");break;}

case 2:{strcpy(k2,"010");break;}

case 3:{strcpy(k2,"011");break;}

case 4:{strcpy(k2,"100");break;}

case 5:{strcpy(k2,"101");break;}

case 6:{strcpy(k2,"110");break;}

case 7:{strcpy(k2,"111");break;}

}

for(int l=0;i<k_p;i++)

{

if(strcmp(per[l][0],st3)==NULL)

{strcpy(k3,per[l][1]);}

}

da=adr;

temp[0]=da;

temp[1]='\0';

strcat(m,temp);

da=2;

temp[0]=da;

temp[1]='\0';

strcat(m,temp);

strcat(m,"+");

strcat(m,name);

l=strlen(name);

for(i=1;i<=(6-l);i++)

strcat(m," ");

}

if((strcmp(t2,"R")==NULL) && (incoming(st2)==1) )

{ *t3=st2[1];

t3[1]='\0';

n1=atoi(t3);

strcpy(k1,"101000");

switch(n1){

case 0:{strcpy(k3,"000");break;}

case 1:{strcpy(k3,"001");break;}

case 2:{strcpy(k3,"010");break;}

case 3:{strcpy(k3,"011");break;}

case 4:{strcpy(k3,"100");break;}

case 5:{strcpy(k3,"101");break;}

case 6:{strcpy(k3,"110");break;}

case 7:{strcpy(k3,"111");break;}

}

for(int l=0;i<k_p;i++)

{

if(strcmp(per[l][0],st2)==NULL)

{strcpy(k2,per[l][1]);}

}

da=adr;

temp[0]=da;

temp[1]='\0';

strcat(m,temp);

da=2;

temp[0]=da;

temp[1]='\0';

strcat(m,temp);

strcat(m,"+");

strcat(m,name);

l=strlen(name);

for(i=1;i<=(6-l);i++)

strcat(m," ");

}

if((strcmp(t1,"I")==NULL) && (strcmp(t2,"R")==NULL) )

{

strcpy(k1,"000001");

strcpy(k2,"01");

*t3=st3[1];

t3[1]='\0';

n2=atoi(t3);

switch(n2){

case 0:{strcpy(k3,"000");break;}

case 1:{strcpy(k3,"001");break;}

case 2:{strcpy(k3,"010");break;}

case 3:{strcpy(k3,"011");break;}

case 4:{strcpy(k3,"100");break;}

case 5:{strcpy(k3,"101");break;}

case 6:{strcpy(k3,"110");break;}

case 7:{strcpy(k3,"111");break;}

}

}

if((strcmp(t1,"R")==NULL) && (strcmp(t2,"I")==NULL) )

{

strcpy(k1,"000010");

strcpy(k3,"01");

*t3=st2[1];

t3[1]='\0';

n2=atoi(t3);

switch(n2){

case 0:{strcpy(k2,"000");break;}

case 1:{strcpy(k2,"001");break;}

case 2:{strcpy(k2,"010");break;}

case 3:{strcpy(k2,"011");break;}

case 4:{strcpy(k2,"100");break;}

case 5:{strcpy(k2,"101");break;}

case 6:{strcpy(k2,"110");break;}

case 7:{strcpy(k2,"111");break;}

}

}

if((strcmp(t1,"R")==NULL) && ((strcmp(t2,"A")==NULL)||(strcmp(t2,"S")==NULL)))

{

strcpy(k1,"000011");

*t3=st2[1];

t3[1]='\0';

n2=atoi(t3);

switch(n2){

case 0:{strcpy(k2,"000");break;}

case 1:{strcpy(k2,"001");break;}

case 2:{strcpy(k2,"010");break;}

case 3:{strcpy(k2,"011");break;}

case 4:{strcpy(k2,"100");break;}

case 5:{strcpy(k2,"101");break;}

case 6:{strcpy(k2,"110");break;}

case 7:{strcpy(k2,"111");break;}

}

if (strcmp(t2,"A")==NULL){strcpy(k3,"00");}

else {strcpy(k3,"10");}

}

if((strcmp(t2,"A")==NULL) && ((strcmp(t1,"I")==NULL)||(strcmp(t1,"S")==NULL)))

{

strcpy(k1,"000100");

strcpy(k2,"00");

if (strcmp(t2,"I")==NULL){strcpy(k3,"01");}

else {strcpy(k3,"10");}

}

if((strcmp(t2,"R")==NULL) && ((strcmp(t1,"I")==NULL)||(strcmp(t1,"S")==NULL)))

{

strcpy(k1,"000101");

*t3=st3[1];

t3[1]='\0';

n2=atoi(t3);

switch(n2){

case 0:{strcpy(k3,"000");break;}

case 1:{strcpy(k3,"001");break;}

case 2:{strcpy(k3,"010");break;}

case 3:{strcpy(k3,"011");break;}

case 4:{strcpy(k3,"100");break;}

case 5:{strcpy(k3,"101");break;}

case 6:{strcpy(k3,"110");break;}

case 7:{strcpy(k3,"111");break;}

}

if (strcmp(t1,"I")==NULL){strcpy(k2,"01");}

else {strcpy(k2,"10");}

}

ha=perev(k1);

temp[0]=ha;

temp[1]='\0';

strcat(t,temp);

ha=perev(k2);

temp[0]=ha;

temp[1]='\0';

strcat(t,temp);

ha=perev(k3);

temp[0]=ha;

temp[1]='\0';

strcat(t,temp);

}

if(strcmp(st1,"ДОБ")==NULL)

{

if(flag==0)

{

strcpy(t,"t");

da=adr;

temp[0]=da;

temp[1]='\0';

strcat(t,temp);

strcat(t,"¶");

strcpy(e,"e");

strcat(e,temp);

}

flag=1;

*t1=st2[0];*t2=st3[0];

t1[1]='\0';

t2[1]='\0';

if((strcmp(t1,"R")==NULL) && (strcmp(t2,"R")==NULL) )

{ *t3=st2[1];

t3[1]='\0';

n1=atoi(t3);

strcpy(k1,"000110");

switch(n1){

case 0:{strcpy(k2,"000");break;}

case 1:{strcpy(k2,"001");break;}

case 2:{strcpy(k2,"010");break;}

case 3:{strcpy(k2,"011");break;}

case 4:{strcpy(k2,"100");break;}

case 5:{strcpy(k2,"101");break;}

case 6:{strcpy(k2,"110");break;}

case 7:{strcpy(k2,"111");break;}

}

*t3=st3[1];

t3[1]='\0';

n2=atoi(t3);

switch(n2){

case 0:{strcpy(k3,"000");break;}

case 1:{strcpy(k3,"001");break;}

case 2:{strcpy(k3,"010");break;}

case 3:{strcpy(k3,"011");break;}

case 4:{strcpy(k3,"100");break;}

case 5:{strcpy(k3,"101");break;}

case 6:{strcpy(k3,"110");break;}

case 7:{strcpy(k3,"111");break;}

}

}

if((strcmp(t1,"S")==NULL) && (strcmp(t2,"R")==NULL) )

{

strcpy(k1,"000111");

strcpy(k2,"10");

*t3=st3[1];

t3[1]='\0';

n2=atoi(t3);

switch(n2){

case 0:{strcpy(k3,"000");break;}

case 1:{strcpy(k3,"001");break;}

case 2:{strcpy(k3,"010");break;}

case 3:{strcpy(k3,"011");break;}

case 4:{strcpy(k3,"100");break;}

case 5:{strcpy(k3,"101");break;}

case 6:{strcpy(k3,"110");break;}

case 7:{strcpy(k3,"111");break;}

}

}

ha=perev(k1);

temp[0]=ha;

temp[1]='\0';

strcat(t,temp);

ha=perev(k2);

temp[0]=ha;

temp[1]='\0';

strcat(t,temp);

ha=perev(k3);

temp[0]=ha;

temp[1]='\0';

strcat(t,temp);

}

if(strcmp(st1,"ДОЗ")==NULL)

{

if(flag==0)

{

strcpy(t,"t");

da=adr;

temp[0]=da;

temp[1]='\0';

strcat(t,temp);

strcat(t,"¶");

strcpy(e,"e");

strcat(e,temp);

}

flag=1;

*t1=st2[0];*t2=st3[0];

t1[1]='\0';

t2[1]='\0';

if((strcmp(t1,"R")==NULL) && (strcmp(t2,"R")==NULL) )

{ *t3=st2[1];

t3[1]='\0';

n1=atoi(t3);

strcpy(k1,"001000");

switch(n1){

case 0:{strcpy(k2,"000");break;}

case 1:{strcpy(k2,"001");break;}

case 2:{strcpy(k2,"010");break;}

case 3:{strcpy(k2,"011");break;}

case 4:{strcpy(k2,"100");break;}

case 5:{strcpy(k2,"101");break;}

case 6:{strcpy(k2,"110");break;}

case 7:{strcpy(k2,"111");break;}

}

*t3=st3[1];

t3[1]='\0';

n2=atoi(t3);

switch(n2){

case 0:{strcpy(k3,"000");break;}

case 1:{strcpy(k3,"001");break;}

case 2:{strcpy(k3,"010");break;}

case 3:{strcpy(k3,"011");break;}

case 4:{strcpy(k3,"100");break;}

case 5:{strcpy(k3,"101");break;}

case 6:{strcpy(k3,"110");break;}

case 7:{strcpy(k3,"111");break;}

}

}

if((strcmp(t1,"S")==NULL) && (strcmp(t2,"R")==NULL) )

{

strcpy(k1,"001001");

strcpy(k2,"10");

*t3=st3[1];

t3[1]='\0';

n2=atoi(t3);

switch(n2){

case 0:{strcpy(k3,"000");break;}

case 1:{strcpy(k3,"001");break;}

case 2:{strcpy(k3,"010");break;}

case 3:{strcpy(k3,"011");break;}

case 4:{strcpy(k3,"100");break;}

case 5:{strcpy(k3,"101");break;}

case 6:{strcpy(k3,"110");break;}

case 7:{strcpy(k3,"111");break;}

}

}

ha=perev(k1);

temp[0]=ha;

temp[1]='\0';

strcat(t,temp);

ha=perev(k2);

temp[0]=ha;

temp[1]='\0';

strcat(t,temp);

ha=perev(k3);

temp[0]=ha;

temp[1]='\0';

strcat(t,temp);

}

if(strcmp(st1,"ВЫЧ")==NULL)

{

if(flag==0)

{

strcpy(t,"t");

da=adr;

temp[0]=da;

temp[1]='\0';

strcat(t,temp);

strcat(t,"¶");

strcpy(e,"e");

strcat(e,temp);

}

flag=1;

*t1=st2[0];*t2=st3[0];

t1[1]='\0';

t2[1]='\0';

if((strcmp(t1,"R")==NULL) && (strcmp(t2,"R")==NULL) )

{ *t3=st2[1];

t3[1]='\0';

n1=atoi(t3);

strcpy(k1,"001010");

switch(n1){

case 0:{strcpy(k2,"000");break;}

case 1:{strcpy(k2,"001");break;}

case 2:{strcpy(k2,"010");break;}

case 3:{strcpy(k2,"011");break;}

case 4:{strcpy(k2,"100");break;}

case 5:{strcpy(k2,"101");break;}

case 6:{strcpy(k2,"110");break;}

case 7:{strcpy(k2,"111");break;}

}

*t3=st3[1];

t3[1]='\0';

n2=atoi(t3);

switch(n2){

case 0:{strcpy(k3,"000");break;}

case 1:{strcpy(k3,"001");break;}

case 2:{strcpy(k3,"010");break;}

case 3:{strcpy(k3,"011");break;}

case 4:{strcpy(k3,"100");break;}

case 5:{strcpy(k3,"101");break;}

case 6:{strcpy(k3,"110");break;}

case 7:{strcpy(k3,"111");break;}

}

}

if((strcmp(t1,"S")==NULL) && (strcmp(t2,"R")==NULL) )

{

strcpy(k1,"001011");

strcpy(k2,"10");

*t3=st3[1];

t3[1]='\0';

n2=atoi(t3);

switch(n2){

case 0:{strcpy(k3,"000");break;}

case 1:{strcpy(k3,"001");break;}

case 2:{strcpy(k3,"010");break;}

case 3:{strcpy(k3,"011");break;}

case 4:{strcpy(k3,"100");break;}

case 5:{strcpy(k3,"101");break;}

case 6:{strcpy(k3,"110");break;}

case 7:{strcpy(k3,"111");break;}

}

}

ha=perev(k1);

temp[0]=ha;

temp[1]='\0';

strcat(t,temp);

ha=perev(k2);

temp[0]=ha;

temp[1]='\0';

strcat(t,temp);

ha=perev(k3);

temp[0]=ha;

temp[1]='\0';

strcat(t,temp);

}

if(strcmp(st1,"ВЫЗ")==NULL)

{

if(flag==0)

{

strcpy(t,"t");

da=adr;

temp[0]=da;

temp[1]='\0';

strcat(t,temp);

strcat(t,"¶");

strcpy(e,"e");

strcat(e,temp);

}

flag=1;

*t1=st2[0];*t2=st3[0];

t1[1]='\0';

t2[1]='\0';

if((strcmp(t1,"R")==NULL) && (strcmp(t2,"R")==NULL) )

{ *t3=st2[1];

t3[1]='\0';

n1=atoi(t3);

strcpy(k1,"001100");

switch(n1){

case 0:{strcpy(k2,"000");break;}

case 1:{strcpy(k2,"001");break;}

case 2:{strcpy(k2,"010");break;}

case 3:{strcpy(k2,"011");break;}

case 4:{strcpy(k2,"100");break;}

case 5:{strcpy(k2,"101");break;}

case 6:{strcpy(k2,"110");break;}

case 7:{strcpy(k2,"111");break;}

}

*t3=st3[1];

t3[1]='\0';

n2=atoi(t3);

switch(n2){

case 0:{strcpy(k3,"000");break;}

case 1:{strcpy(k3,"001");break;}

case 2:{strcpy(k3,"010");break;}

case 3:{strcpy(k3,"011");break;}

case 4:{strcpy(k3,"100");break;}

case 5:{strcpy(k3,"101");break;}

case 6:{strcpy(k3,"110");break;}

case 7:{strcpy(k3,"111");break;}

}

}

if((strcmp(t1,"S")==NULL) && (strcmp(t2,"R")==NULL) )

{

strcpy(k1,"001101");

strcpy(k2,"10");

*t3=st3[1];

t3[1]='\0';

n2=atoi(t3);

switch(n2){

case 0:{strcpy(k3,"000");break;}

case 1:{strcpy(k3,"001");break;}

case 2:{strcpy(k3,"010");break;}

case 3:{strcpy(k3,"011");break;}

case 4:{strcpy(k3,"100");break;}

case 5:{strcpy(k3,"101");break;}

case 6:{strcpy(k3,"110");break;}

case 7:{strcpy(k3,"111");break;}

}

}

ha=perev(k1);

temp[0]=ha;

temp[1]='\0';

strcat(t,temp);

ha=perev(k2);

temp[0]=ha;

temp[1]='\0';

strcat(t,temp);

ha=perev(k3);

temp[0]=ha;

temp[1]='\0';

strcat(t,temp);

}

if(strcmp(st1,"И")==NULL)

{

if(flag==0)

{

strcpy(t,"t");

da=adr;

temp[0]=da;

temp[1]='\0';

strcat(t,temp);

strcat(t,"¶");

strcpy(e,"e");

strcat(e,temp);

}

flag=1;

*t1=st2[0];*t2=st3[0];

t1[1]='\0';

t2[1]='\0';

if((strcmp(t1,"R")==NULL) && (strcmp(t2,"R")==NULL) )

{ *t3=st2[1];

t3[1]='\0';

n1=atoi(t3);

strcpy(k1,"001110");

switch(n1){

case 0:{strcpy(k2,"000");break;}

case 1:{strcpy(k2,"001");break;}

case 2:{strcpy(k2,"010");break;}

case 3:{strcpy(k2,"011");break;}

case 4:{strcpy(k2,"100");break;}

case 5:{strcpy(k2,"101");break;}

case 6:{strcpy(k2,"110");break;}

case 7:{strcpy(k2,"111");break;}

}

*t3=st3[1];

t3[1]='\0';

n2=atoi(t3);

switch(n2){

case 0:{strcpy(k3,"000");break;}

case 1:{strcpy(k3,"001");break;}

case 2:{strcpy(k3,"010");break;}

case 3:{strcpy(k3,"011");break;}

case 4:{strcpy(k3,"100");break;}

case 5:{strcpy(k3,"101");break;}

case 6:{strcpy(k3,"110");break;}

case 7:{strcpy(k3,"111");break;}

}

}

ha=perev(k1);

temp[0]=ha;

temp[1]='\0';

strcat(t,temp);

ha=perev(k2);

temp[0]=ha;

temp[1]='\0';

strcat(t,temp);

ha=perev(k3);

temp[0]=ha;

temp[1]='\0';

strcat(t,temp);

}

if(strcmp(st1,"ИЛИ")==NULL)

{

if(flag==0)

{

strcpy(t,"t");

da=adr;

temp[0]=da;

temp[1]='\0';

strcat(t,temp);

strcat(t,"¶");

strcpy(e,"e");

strcat(e,temp);

}

flag=1;

*t1=st2[0];*t2=st3[0];

t1[1]='\0';

t2[1]='\0';

if((strcmp(t1,"R")==NULL) && (strcmp(t2,"R")==NULL) )

{ *t3=st2[1];

t3[1]='\0';

n1=atoi(t3);

strcpy(k1,"001111");

switch(n1){

case 0:{strcpy(k2,"000");break;}

case 1:{strcpy(k2,"001");break;}

case 2:{strcpy(k2,"010");break;}

case 3:{strcpy(k2,"011");break;}

case 4:{strcpy(k2,"100");break;}

case 5:{strcpy(k2,"101");break;}

case 6:{strcpy(k2,"110");break;}

case 7:{strcpy(k2,"111");break;}

}

*t3=st3[1];

t3[1]='\0';

n2=atoi(t3);

switch(n2){

case 0:{strcpy(k3,"000");break;}

case 1:{strcpy(k3,"001");break;}

case 2:{strcpy(k3,"010");break;}

case 3:{strcpy(k3,"011");break;}

case 4:{strcpy(k3,"100");break;}

case 5:{strcpy(k3,"101");break;}

case 6:{strcpy(k3,"110");break;}

case 7:{strcpy(k3,"111");break;}

}

}

ha=perev(k1);

temp[0]=ha;

temp[1]='\0';

strcat(t,temp);

ha=perev(k2);

temp[0]=ha;

temp[1]='\0';

strcat(t,temp);

ha=perev(k3);

temp[0]=ha;

temp[1]='\0';

strcat(t,temp);

}

if(strcmp(st1,"ИИЛИ")==NULL)

{

if(flag==0)

{

strcpy(t,"t");

da=adr;

temp[0]=da;

temp[1]='\0';

strcat(t,temp);

strcat(t,"¶");

strcpy(e,"e");

strcat(e,temp);

}

flag=1;

*t1=st2[0];*t2=st3[0];

t1[1]='\0';

t2[1]='\0';

if((strcmp(t1,"R")==NULL) && (strcmp(t2,"R")==NULL) )

{ *t3=st2[1];

t3[1]='\0';

n1=atoi(t3);

strcpy(k1,"010000");

switch(n1){

case 0:{strcpy(k2,"000");break;}

case 1:{strcpy(k2,"001");break;}

case 2:{strcpy(k2,"010");break;}

case 3:{strcpy(k2,"011");break;}

case 4:{strcpy(k2,"100");break;}

case 5:{strcpy(k2,"101");break;}

case 6:{strcpy(k2,"110");break;}

case 7:{strcpy(k2,"111");break;}

}

*t3=st3[1];

t3[1]='\0';

n2=atoi(t3);

switch(n2){

case 0:{strcpy(k3,"000");break;}

case 1:{strcpy(k3,"001");break;}

case 2:{strcpy(k3,"010");break;}

case 3:{strcpy(k3,"011");break;}

case 4:{strcpy(k3,"100");break;}

case 5:{strcpy(k3,"101");break;}

case 6:{strcpy(k3,"110");break;}

case 7:{strcpy(k3,"111");break;}

}

}

ha=perev(k1);

temp[0]=ha;

temp[1]='\0';

strcat(t,temp);

ha=perev(k2);

temp[0]=ha;

temp[1]='\0';

strcat(t,temp);

ha=perev(k3);

temp[0]=ha;

temp[1]='\0';

strcat(t,temp);

}

if(strcmp(st1,"НЕ")==NULL)

{

if(flag==0)

{

strcpy(t,"t");

da=adr;

temp[0]=da;

temp[1]='\0';

strcat(t,temp);

strcat(t,"¶");

strcpy(e,"e");

strcat(e,temp);

}

flag=1;

*t1=st2[0];*t2=st3[0];

t1[1]='\0';

t2[1]='\0';

if(strcmp(t1,"R")==NULL)

{ *t3=st2[1];

t3[1]='\0';

n1=atoi(t3);

strcpy(k1,"010001");

switch(n1){

case 0:{strcpy(k2,"000");break;}

case 1:{strcpy(k2,"001");break;}

case 2:{strcpy(k2,"010");break;}

case 3:{strcpy(k2,"011");break;}

case 4:{strcpy(k2,"100");break;}

case 5:{strcpy(k2,"101");break;}

case 6:{strcpy(k2,"110");break;}

case 7:{strcpy(k2,"111");break;}

}

strcpy(k3,"x");

}

ha=perev(k1);

temp[0]=ha;

temp[1]='\0';

strcat(t,temp);

ha=perev(k2);

temp[0]=ha;

temp[1]='\0';

strcat(t,temp);

}

if(strcmp(st1,"АСП")==NULL)

{

if(flag==0)

{

strcpy(t,"t");

da=adr;

temp[0]=da;

temp[1]='\0';

strcat(t,temp);

strcat(t,"¶");

strcpy(e,"e");

strcat(e,temp);

}

flag=1;

*t1=st2[0];*t2=st3[0];

t1[1]='\0';

t2[1]='\0';

if((strcmp(t1,"I")==NULL) && (strcmp(t2,"R")==NULL) )

{

strcpy(k1,"010010");

strcpy(k2,"01");

*t3=st3[1];

t3[1]='\0';

n2=atoi(t3);

switch(n2){

case 0:{strcpy(k3,"000");break;}

case 1:{strcpy(k3,"001");break;}

case 2:{strcpy(k3,"010");break;}

case 3:{strcpy(k3,"011");break;}

case 4:{strcpy(k3,"100");break;}

case 5:{strcpy(k3,"101");break;}

case 6:{strcpy(k3,"110");break;}

case 7:{strcpy(k3,"111");break;}

}

}

ha=perev(k1);

temp[0]=ha;

temp[1]='\0';

strcat(t,temp);

ha=perev(k2);

temp[0]=ha;

temp[1]='\0';

strcat(t,temp);

ha=perev(k3);

temp[0]=ha;

temp[1]='\0';

strcat(t,temp);

}

if(strcmp(st1,"АСЛ")==NULL)

{

if(flag==0)

{

strcpy(t,"t");

da=adr;

temp[0]=da;

temp[1]='\0';

strcat(t,temp);

strcat(t,"¶");

strcpy(e,"e");

strcat(e,temp);

}

flag=1;

*t1=st2[0];*t2=st3[0];

t1[1]='\0';

t2[1]='\0';

if((strcmp(t1,"I")==NULL) && (strcmp(t2,"R")==NULL) )

{

strcpy(k1,"010011");

strcpy(k2,"01");

*t3=st3[1];

t3[1]='\0';

n2=atoi(t3);

switch(n2){

case 0:{strcpy(k3,"000");break;}

case 1:{strcpy(k3,"001");break;}

case 2:{strcpy(k3,"010");break;}

case 3:{strcpy(k3,"011");break;}

case 4:{strcpy(k3,"100");break;}

case 5:{strcpy(k3,"101");break;}

case 6:{strcpy(k3,"110");break;}

case 7:{strcpy(k3,"111");break;}

}

}

ha=perev(k1);

temp[0]=ha;

temp[1]='\0';

strcat(t,temp);

ha=perev(k2);

temp[0]=ha;

temp[1]='\0';

strcat(t,temp);

ha=perev(k3);

temp[0]=ha;

temp[1]='\0';

strcat(t,temp);

}

if(strcmp(st1,"АЛЛ")==NULL)

{

if(flag==0)

{

strcpy(t,"t");

da=adr;

temp[0]=da;

temp[1]='\0';

strcat(t,temp);

strcat(t,"¶");

strcpy(e,"e");

strcat(e,temp);

}

flag=1;

*t1=st2[0];*t2=st3[0];

t1[1]='\0';

t2[1]='\0';

if((strcmp(t1,"I")==NULL) && (strcmp(t2,"R")==NULL) )

{

strcpy(k1,"010100");

strcpy(k2,"01");

*t3=st3[1];

t3[1]='\0';

n2=atoi(t3);

switch(n2){

case 0:{strcpy(k3,"000");break;}

case 1:{strcpy(k3,"001");break;}

case 2:{strcpy(k3,"010");break;}

case 3:{strcpy(k3,"011");break;}

case 4:{strcpy(k3,"100");break;}

case 5:{strcpy(k3,"101");break;}

case 6:{strcpy(k3,"110");break;}

case 7:{strcpy(k3,"111");break;}

}

}

ha=perev(k1);

temp[0]=ha;

temp[1]='\0';

strcat(t,temp);

ha=perev(k2);

temp[0]=ha;

temp[1]='\0';

strcat(t,temp);

ha=perev(k3);

temp[0]=ha;

temp[1]='\0';

strcat(t,temp);

}

if(strcmp(st1,"АЛП")==NULL)

{

if(flag==0)

{

strcpy(t,"t");

da=adr;

temp[0]=da;

temp[1]='\0';

strcat(t,temp);

strcat(t,"¶");

strcpy(e,"e");

strcat(e,temp);

}

flag=1;

*t1=st2[0];*t2=st3[0];

t1[1]='\0';

t2[1]='\0';

if((strcmp(t1,"I")==NULL) && (strcmp(t2,"R")==NULL) )

{

strcpy(k1,"010101");

strcpy(k2,"01");

*t3=st3[1];

t3[1]='\0';

n2=atoi(t3);

switch(n2){

case 0:{strcpy(k3,"000");break;}

case 1:{strcpy(k3,"001");break;}

case 2:{strcpy(k3,"010");break;}

case 3:{strcpy(k3,"011");break;}

case 4:{strcpy(k3,"100");break;}

case 5:{strcpy(k3,"101");break;}

case 6:{strcpy(k3,"110");break;}

case 7:{strcpy(k3,"111");break;}

}

}

ha=perev(k1);

temp[0]=ha;

temp[1]='\0';

strcat(t,temp);

ha=perev(k2);

temp[0]=ha;

temp[1]='\0';

strcat(t,temp);

ha=perev(k3);

temp[0]=ha;

temp[1]='\0';

strcat(t,temp);

}

if(strcmp(st1,"ПЕРЕХОД")==NULL)

{

if(flag==0)

{

strcpy(t,"t");

da=adr;

temp[0]=da;

temp[1]='\0';

strcat(t,temp);

strcat(t,"¶");

strcpy(e,"e");

strcat(e,temp);

}

flag=1;

strcpy(k1,"010110");

for(int l=0;i<k_p;i++)

{

if(strcmp(label[l][0],t2)==NULL)

{strcpy(k2,label[l][1]);}

}

ha=perev(k1);

temp[0]=ha;

temp[1]='\0';

strcat(t,temp);

ha=perev(k2);

temp[0]=ha;

temp[1]='\0';

strcat(t,temp);

}

if(strcmp(st1,"ПНП")==NULL)

{

if(flag==0)

{

strcpy(t,"t");

da=adr;

temp[0]=da;

temp[1]='\0';

strcat(t,temp);

strcat(t,"¶");

strcpy(e,"e");

strcat(e,temp);

}

flag=1;

strcpy(k1,"010111");

for(int l=0;i<k_p;i++)

{

if(strcmp(label[l][0],t2)==NULL)

{strcpy(k2,label[l][1]);}

}

ha=perev(k1);

temp[0]=ha;

temp[1]='\0';

strcat(t,temp);

ha=perev(k2);

temp[0]=ha;

temp[1]='\0';

strcat(t,temp);

}

if(strcmp(st1,"ПП")==NULL)

{

if(flag==0)

{

strcpy(t,"t");

da=adr;

temp[0]=da;

temp[1]='\0';

strcat(t,temp);

strcat(t,"¶");

strcpy(e,"e");

strcat(e,temp);

}

flag=1;

strcpy(k1,"011000");

for(int l=0;i<k_p;i++)

{

if(strcmp(label[l][0],t2)==NULL)

{strcpy(k2,label[l][1]);}

}

ha=perev(k1);

temp[0]=ha;

temp[1]='\0';

strcat(t,temp);

ha=perev(k2);

temp[0]=ha;

temp[1]='\0';

strcat(t,temp);

}

if(strcmp(st1,"ПНН")==NULL)

{

if(flag==0)

{

strcpy(t,"t");

da=adr;

temp[0]=da;

temp[1]='\0';

strcat(t,temp);

strcat(t,"¶");

strcpy(e,"e");

strcat(e,temp);

}

flag=1;

strcpy(k1,"011001");

for(int l=0;i<k_p;i++)

{

if(strcmp(label[l][0],t2)==NULL)

{strcpy(k2,label[l][1]);}

}

ha=perev(k1);

temp[0]=ha;

temp[1]='\0';

strcat(t,temp);

ha=perev(k2);

temp[0]=ha;

temp[1]='\0';

strcat(t,temp);

}

if(strcmp(st1,"ПН")==NULL)

{

if(flag==0)

{

strcpy(t,"t");

da=adr;

temp[0]=da;

temp[1]='\0';

strcat(t,temp);

strcat(t,"¶");

strcpy(e,"e");

strcat(e,temp);

}

flag=1;

strcpy(k1,"011010");

for(int l=0;i<k_p;i++)

{

if(strcmp(label[l][0],t2)==NULL)

{strcpy(k2,label[l][1]);}

}

ha=perev(k1);

temp[0]=ha;

temp[1]='\0';

strcat(t,temp);

ha=perev(k2);

temp[0]=ha;

temp[1]='\0';

strcat(t,temp);

}

if(strcmp(st1,"ПНЗ")==NULL)

{

if(flag==0)

{

strcpy(t,"t");

da=adr;

temp[0]=da;

temp[1]='\0';

strcat(t,temp);

strcat(t,"¶");

strcpy(e,"e");

strcat(e,temp);

}

flag=1;

strcpy(k1,"011011");

for(int l=0;i<k_p;i++)

{

if(strcmp(label[l][0],t2)==NULL)

{strcpy(k2,label[l][1]);}

}

ha=perev(k1);

temp[0]=ha;

temp[1]='\0';

strcat(t,temp);

ha=perev(k2);

temp[0]=ha;

temp[1]='\0';

strcat(t,temp);

}

if(strcmp(st1,"ПЗ")==NULL)

{

if(flag==0)

{

strcpy(t,"t");

da=adr;

temp[0]=da;

temp[1]='\0';

strcat(t,temp);

strcat(t,"¶");

strcpy(e,"e");

strcat(e,temp);

}

flag=1;

strcpy(k1,"011100");

for(int l=0;i<k_p;i++)

{

if(strcmp(label[l][0],t2)==NULL)

{strcpy(k2,label[l][1]);}

}

ha=perev(k1);

temp[0]=ha;

temp[1]='\0';

strcat(t,temp);

ha=perev(k2);

temp[0]=ha;

temp[1]='\0';

strcat(t,temp);

}

if(strcmp(st1,"УСЧ")==NULL)

{

if(flag==0)

{

strcpy(t,"t");

da=adr;

temp[0]=da;

temp[1]='\0';

strcat(t,temp);

strcat(t,"¶");

strcpy(e,"e");

strcat(e,temp);

}

flag=1;

strcpy(k1,"011101");

ha=perev(k1);

temp[0]=ha;

temp[1]='\0';

strcat(t,temp);

}

if(strcmp(st1,"ОБЧ")==NULL)

{

if(flag==0)

{

strcpy(t,"t");

da=adr;

temp[0]=da;

temp[1]='\0';

strcat(t,temp);

strcat(t,"¶");

strcpy(e,"e");

strcat(e,temp);

}

flag=1;

strcpy(k1,"011110");

ha=perev(k1);

temp[0]=ha;

temp[1]='\0';

strcat(t,temp);

}

if(strcmp(st1,"УСЗ")==NULL)

{

if(flag==0)

{

strcpy(t,"t");

da=adr;

temp[0]=da;

temp[1]='\0';

strcat(t,temp);

strcat(t,"¶");

strcpy(e,"e");

strcat(e,temp);

}

flag=1;

strcpy(k1,"011111");

ha=perev(k1);

temp[0]=ha;

temp[1]='\0';

strcat(t,temp);

}

if(strcmp(st1,"ОБЗ")==NULL)

{

if(flag==0)

{

strcpy(t,"t");

da=adr;

temp[0]=da;

temp[1]='\0';

strcat(t,temp);

strcat(t,"¶");

strcpy(e,"e");

strcat(e,temp);

}

flag=1;

strcpy(k1,"100000");

ha=perev(k1);

temp[0]=ha;

temp[1]='\0';

strcat(t,temp);

}

if(strcmp(st1,"УСС")==NULL)

{

if(flag==0)

{

strcpy(t,"t");

da=adr;

temp[0]=da;

temp[1]='\0';

strcat(t,temp);

strcat(t,"¶");

strcpy(e,"e");

strcat(e,temp);

}

flag=1;

strcpy(k1,"100001");

ha=perev(k1);

temp[0]=ha;

temp[1]='\0';

strcat(t,temp);

}

if(strcmp(st1,"ОБС")==NULL)

{

if(flag==0)

{

strcpy(t,"t");

da=adr;

temp[0]=da;

temp[1]='\0';

strcat(t,temp);

strcat(t,"¶");

strcpy(e,"e");

strcat(e,temp);

}

flag=1;

strcpy(k1,"100010");

ha=perev(k1);

temp[0]=ha;

temp[1]='\0';

strcat(t,temp);

}

if(strcmp(st1,"ВЫГР")==NULL)

{ if(flag==0)

{ strcpy(t,"t");

da=adr;

temp[0]=da;

temp[1]='\0';

strcat(t,temp);

strcat(t,"¶");

strcpy(e,"e");

strcat(e,temp);

}

flag=1;

strcpy(k1,"100011");

ha=perev(k1);

temp[0]=ha;

temp[1]='\0';

strcat(t,temp);

}

if(strcmp(st1,"ЗАГР")==NULL)

{ if(flag==0)

{ strcpy(t,"t");

da=adr;

temp[0]=da;

temp[1]='\0';

strcat(t,temp);

strcat(t,"¶");

strcpy(e,"e");

strcat(e,temp);

}

flag=1;

strcpy(k1,"100100");

ha=perev(k1);

temp[0]=ha;

temp[1]='\0';

strcat(t,temp);

}

if(strcmp(st1,"В")==NULL)

{

if(flag==0)

{

strcpy(t,"t");

da=adr;

temp[0]=da;

temp[1]='\0';

strcat(t,temp);

strcat(t,"¶");

strcpy(e,"e");

strcat(e,temp);

}

flag=1;

*t1=st2[0];*t2=st3[0];

t1[1]='\0';

t2[1]='\0';

if(strcmp(t1,"R")==NULL)

{ *t3=st2[1];

t3[1]='\0';

n1=atoi(t3);

strcpy(k1,"100101");

switch(n1){

case 0:{strcpy(k2,"000");break;}

case 1:{strcpy(k2,"001");break;}

case 2:{strcpy(k2,"010");break;}

case 3:{strcpy(k2,"011");break;}

case 4:{strcpy(k2,"100");break;}

case 5:{strcpy(k2,"101");break;}

case 6:{strcpy(k2,"110");break;}

case 7:{strcpy(k2,"111");break;}

}

strcpy(k3,st3);

ha=perev(k1);

temp[0]=ha;

temp[1]='\0';

strcat(t,temp);

ha=perev(k2);

temp[0]=ha;

temp[1]='\0';

strcat(t,temp);

strcat(t,k3);

}

}

if(strcmp(st1,"ВЫВ")==NULL)

{ if(flag==0)

{ strcpy(t,"t");

da=adr;

temp[0]=da;

temp[1]='\0';

strcat(t,temp);

strcat(t,"¶");

strcpy(e,"e");

strcat(e,temp);

}

flag=1;

*t1=st2[0];*t2=st3[0];

t1[1]='\0';

t2[1]='\0';

if(strcmp(t2,"R")==NULL)

{ *t3=st3[1];

t3[1]='\0';

n1=atoi(t3);

strcpy(k1,"100110");

switch(n1){

case 0:{strcpy(k3,"000");break;}

case 1:{strcpy(k3,"001");break;}

case 2:{strcpy(k3,"010");break;}

case 3:{strcpy(k3,"011");break;}

case 4:{strcpy(k3,"100");break;}

case 5:{strcpy(k3,"101");break;}

case 6:{strcpy(k3,"110");break;}

case 7:{strcpy(k3,"111");break;}

}

strcpy(k2,st3);

ha=perev(k1);

temp[0]=ha;

temp[1]='\0';

strcat(t,temp);

strcat(t,k2);

ha=perev(k3);

temp[0]=ha;

temp[1]='\0';

strcat(t,temp);

}

}

if(strcmp(st1,"ЗАКР")==NULL)

{ if(flag==0)

{ strcpy(t,"t");

da=adr;

temp[0]=da;

temp[1]='\0';

strcat(t,temp);

strcat(t,"¶");

strcpy(e,"e");

strcat(e,temp);

}

flag=1;

strcpy(k1,"100111");

ha=perev(k1);

temp[0]=ha;

temp[1]='\0';

strcat(t,temp);

}

}

fclose(std);

strcpy(v,args[1]);

v[strlen(v)-3]='o';

v[strlen(v)-2]='b';

v[strlen(v)-1]='j';

obj=fopen(v,"w");

fputs(h,obj);

fputs(t,obj);

fputs(d,obj);

fputs(m,obj);

fputs(e,obj);

fclose(obj);

}}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]