#include<stdio.h> #include<stdlib.h> char line[8][20]; void numtok(); int cur=0; int lth; void main() { FILE *fin; int i=0,m=0,k=0,l,j; int prgstart,prglen,textaddr,disp; char str[70]; struct loccontent { int addr; char content[3]; }mem[200]; // clrscr(); for(i=0;i<200;++i) { mem[i].content[0]='x'; mem[i].content[1]='x'; mem[i].content[2]='\0'; } fin=fopen("loadin.txt","r"); while(!feof(fin)) { fgets(str,70,fin); numtok(str); if(strcmp(line[0],"H")==0) { printf("program name is %s\n",line[1]); prgstart=atoi(line[2]); prglen=atoi(line[3]); j=0; for(i=prgstart;i<=prgstart+prglen;++i) { mem[j].addr=i; j++; } } else if(strcmp(line[0],"T")==0) { textaddr=atoi(line[1]); disp=textaddr-prgstart; for(m=3;m<lth;++m) { for(i=0;i<5;i+=2) { mem[disp].addr=textaddr++; mem[disp].content[0]=line[m][i]; mem[disp].content[1]=line[m][i+1]; mem[disp].content[2]='\0'; disp++; } } } else if(strcmp(line[0],"E")==0) break; } k=0; for(i=0;i<prglen;i+=16) { printf("%d",mem[k].addr); for(l=0;l<4;l++) { for(j=0;j<4;j++) { printf("%c%c",mem[k].content[0],mem[k].content[1]); k++; } printf("\t"); } printf("\n"); } getch(); } void numtok(char str[70]) { int i=0,j=0,k=0; while(str[j]!='\0') { line[i][k]=str[j]; if(str[j]=='^') { line[i][k]='\0'; k=-1; i++; } k++; j++; } line[i][k]='\0'; lth=i+1; }
Input File
LOADIN.TXT
T^1000^12^141033^482039^001036^281030
T^1012^9^345890^581056^454645
T^1000^12^141033^482039^001036^281030
E^1000
No comments:
Post a Comment