You are on page 1of 4

it09b35

CODE:
it09b44

#includestdio.h~
struct opcode

char opc|20|;
char val|5|;
}op|20|;
struct symbol

char sym|20|;
char loc|8|;
int l;
}s|20|;
main()

FILE *Iin,*Iop,*Is;
int i,start,n|10|,no|10|,t,m0,k,len,r;
int p0,q;
char s1|20|,s2|20|,s3|20|,s4|20|,str1|20|,str2|20|;
n|0|0;
no|0|0;
IinIopen("inter1.txt","r");
IopIopen("op.txt","r");
IsIopen("sym.txt","r");
printI("\nEnter number oI text record");
scanI("d",&t);
Ior(i1;it;i)

printI("\nEnter the length oI TR|d|",i);
scanI("d",&n|i|);
}
Ior(i1;it;i)

no|i|n|i|no|i-1|;
}
while(!IeoI(Iop))

IscanI(Iop,"ss",op|p|.opc,op|p|.val);
p;
}
q0;
while(!IeoI(Is))

IscanI(Is,"ss",s|q|.sym,s|q|.loc);
s|q|.latoi(s|q|.loc);
q;
}
i0;
while(!IeoI(Iin))

it09b35

IscanI(Iin,"ssss",s1,s2,s3,s4);

iI(!strcmp(s3,"START"))

startatoi(s4);
printI("\nH s s\n",s2,s4);
}

else iI(!strcmp(s3,"END"))

printI("\n\nE d",start);
exit(0);
}
else iI(!(strcmp(s3,"RESW") && strcmp(s3,"RESB")))

}
else


iI(!strcmp(s3,"BYTE"))

lenstrlen(s4);
printI(" ");
Ior(r2;rlen-1;r)
printI("c",s4|r|);
mm3;
}

else iI(!strcmp(s3,"WORD"))

printI(" s",s4);
mm3;
}
else

iI(m0)

i;
printI("\nT d d",startno|i-1|,n|i|);
}

iI(mn|i|)

Ior(k0;kp;k)

iI(!strcmp(s3,op|k|.opc))
strcpy(str1,op|k|.val);
}
Ior(k0;kq;k)

iI(!strcmp(s4,s|k|.sym))
strcpy(str2,s|k|.loc);
it09b35

}
printI(" ss",str1,str2);
mm3;
iI(m~n|i|)

m0;
}
}
}
}
}
}

Input file 1: (op.txt)

Opcode Value
LDA 00
LDX 04
TD E0
JEQ 30
RD D8
COMP 28
STCH 54
TIX 2C
JLT 38
STX 10

Input file 2: (sym.txt)

Symbol Loc Value
RDREC 1000
RLOOP 1006
EXIT 1030
INPUT 1033
MAXLEN 1034
ZERO 1037
BUFFER 1040
LENGTH 1296



Input file 3: (inter1.txt)

LOC LABEL OPCODE OPERAND

1000 READ START 1000
1000 RDREC LDX ZERO
1003 NULL LDA ZERO
1006 RLOOP TD INPUT
1009 NULL JEQ RLOOP
1012 NULL RD INPUT
1015 NULL COMP ZERO
it09b35

1018 NULL JEQ EXIT
1021 NULL STCH BUFFER
1024 NULL TIX MAXLEN
1027 NULL JLT RLOOP
1030 EXIT STX LENGTH
1033 INPUT BYTE X'F1'
1034 MAXLEN WORD 1024
1037 ZERO WORD 0
1040 BUFFER RESB 256
1296 LENGTH RESW 2
1302 NULL END RDREC

OUTPUT:

|it09b35IT-SSLAB|$ cc ss3.c

|it09b35IT-SSLAB|$ ./a.out

Enter number oI text record
2
Enter the length oI TR|1|
30
Enter the length oI TR|2|
27

H READ 1000

T 1000 30 041037 001037 E01033 301006 D81033 281037 301030 541040 2C1034
381006
T 1030 27 101296 F1 1024 0

E 1000

RESULT:

Thus the program is executed and the output is veriIied.

You might also like