Friday 28 September 2012

Pass two of direct link loader with output - Anna Univeristy Lab Experiment No 8

Ex:8 Passs two of direct link loader

#include<stdio.h>
#include<conio.h>
#include<string.h>
#include<stdlib.h>
char sub[10];
struct E1
{
char ctrlname[10];
char sym[10];
int addr;
int length;
}e[10];
void substr(char *inp,int i,int j)
{
int k,x=0;
char str[10];
for(k=i;k<=j;k++)
if(inp[k]!=' ')
sub[x++]=inp[k];
sub[x]='\0';
}
void main()
{
int i,j,n,paddr,csaddr,ctrllen,esptr=0;
char str1[10],str[20][80];
clrscr();
printf("\n enter the program start adress:\n");
scanf("%d",&paddr);
csaddr=paddr;
strcpy(str[0],"HPROGA 0000000000063");
strcpy(str[1],"DLISTA 000040ENDA 000060");
strcpy(str[2],"E001000");
strcpy(str[3],"HPROGB 000000000073");
strcpy(str[4],"DLISTB 000086ENDB 000070");
strcpy(str[5],"E001000");
strcpy(str[6],"HPROGC 000000000053");
strcpy(str[7],"DLISTC 000052ENDC 000085");
strcpy(str[8],"E001000");
strcpy(str[9],"END");
n=10;
for(i=0;i<n;i++)
{
if(str[i][0]=='H')
{
substr(str[i],1,6);
strcpy(e[esptr].ctrlname,sub);
strcpy(e[esptr].sym,"-");
e[esptr].addr=csaddr;
substr(str[i],13,18);
strcpy(str1,sub);
ctrllen=e[esptr++].length=atoi(str1);
while(str[i][0]!='E')
{
if(str[i][0]=='D')

{
for(j=1;j<strlen(str[i]);j=j+12)
{
strcpy(e[esptr].ctrlname,"-");
substr(str[i],j,j+5);
strcpy(e[esptr].sym,sub);
substr(str[i],j+6,j+11);
e[esptr].addr=atoi(sub)+csaddr;
e[esptr++].length=0;
}
}
i++;
}
csaddr=csaddr+ctrllen;
}
}
printf("\nCTRLSECT\tSYMBOL\tADDRESS\tLENGTH\n");
for(i=0;i<esptr;i++)
printf("\n%s\t%s\t%d\t%d",e[i].ctrlname,e[i].sym,e[i].addr,e[i].length);
getch();
}

Output:

enter the program start adress:

4000

CTRLSECT

SYMBOL ADDRESS LENGTH

PROGA -

-

LISTA 4040 0

-

ENDA0 4060 0

PROGB -

-

LISTB 4092 0

-

ENDB0 4076 0

PROGC -

-

LISTC 4131 0

4000 6

4006 73

4079 53

-

ENDC0 4164 0

No comments:

Don't You Think this Awesome Post should be shared ??
| Pass two of direct link loader with output - Anna Univeristy Lab Experiment No 8 |
Back To Top Related Posts Plugin for WordPress, Blogger...