Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<string.h>
- typedef struct{
- char Mnemonic[7];
- unsigned code;
- } code;
- typedef struct{
- char Label[7];
- unsigned location;
- } symbolTab;
- /*char * opLook(char * mnemonic)
- {
- for(i)
- }
- */
- void Assemble(char* filename)
- {
- unsigned locctr = 0;
- code Opta[25] = {{"ADD", 0x18},{"AND",0x58},{"COMP",0x28},{"DIV",0x24},{"J",0x3c},
- {"JEQ",0x30},{"JGT",0x34},{"JLT",0x38},{"JSUB",0x48},{"LDA",0x00},
- {"LDCH",0x50},{"LDL", 0x08},{"LDX", 0x04},{"MUL",0x20},{"OR",0x44},
- {"RD",0xd8},{"RSU",0x4c},{"STA",0x0c},{"STCH",0x54},{"STL",0x14},
- {"STX",0x10},{"SUB",0x1c},{"TD",0xe0},{"TIX",0x2c},{"WD",0xdc}};
- symbolTab symTab[500];
- char buffer[255];
- unsigned programLenght;
- FILE * source;
- FILE * interFile;
- interFile = fopen("intermidiateFile.txt", "w+");
- source = fopen("source.txt", "r");
- char * lab; /*label*/
- char * mnemo; /*mnemonic*/
- char * operand;
- while (fgetc(source) != EOF)
- {
- fgets(buffer, 255, source);
- if(buffer[0] != '.') /* if the line is not a comment*/
- {
- if(buffer[0] = ' ')
- {
- mnemo = strtok(buffer, " ");
- if(mnemo != "RSUB")
- {
- operand = strtok(NULL, " ");
- }
- }
- else
- {
- lab =strtok(buffer, " ");
- mnemo =strtok(NULL, " ");
- operand =strtok(NULL, " ");
- }
- }
- fputs(buffer, interFile);
- fprintf(interFile, " %x \n %s \n %s \n %s \n ", locctr, lab, mnemo, operand);
- }
- fclose(source);
- fclose(interFile);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement