Professional Documents
Culture Documents
Code
Code
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.