{
cmdbuf[0]=0;
goto macrogets;
}
goto begin;
}
}
else
{
if (flag)
{
fprintf(F1,"\t%10i \t%-s",number,cmdbuf);
flag=0;
if ((index > 0) && (index < macrotab[cmdidx].str_count))
{
cmdbuf[0]=0;
goto ifgets;
}
goto begin;
}
fprintf(F3,cmdbuf);
fprintf(F1,"\t%10i %6.4X %s %.2X \t%-s",number,offs,mnem[opcode],n,cmdbuf);
offs=offs+operandcount[opcode];
if ((index > 0) && (index < macrotab[cmdidx].str_count))
{
cmdbuf[0]=0;
opcode=find_macro(lexbuf);
goto macrogets;
}
goto begin;
}
}
if (op1num % 2)
op2num=op2num+8;
if (flag)
{
fprintf(F1,"\t%10i \t%-s",number,cmdbuf);
flag=0;
if ((index > 0) && (index < macrotab[cmdidx].str_count))
{
cmdbuf[0]=0;
goto ifgets;
}
goto begin;
}
fprintf(F3,cmdbuf);
fprintf(F1,"\t%10i %6.4X %s %c%c \t%-s",number,offs,mnem[opcode],cop1[op1num],cop2[op2num],cmdbuf);
offs=offs+operandcount[opcode];
if ((index > 0) && (index < macrotab[cmdidx].str_count))
{
cmdbuf[0]=0;
goto macrogets;
}
goto begin;
}
while(parsetyp);
printf("\n");
}
fclose(F);
runlist:
fprintf(F1,"\n\n===================table of segment=========================");
for (index=0;index<i;index++)
fprintf(F1,"\n\t %10s %4.4X",segtab[index].name,segtab[index].length);
fprintf(F1,"\n\n====================symbol table=============================");
for (index=0;index<j;index++)
fprintf(F1,"\n\t %10s%10s%10s%.4X",symtab[index].mnem,symtab[index].type,symtab[index].atrib,symtab[index].ef_adr);
for (index=0;index < k;index++)
fprintf(F1,"\n\t %10s%10s%10s%.4X",labeltab[index].mnem,labeltab[index].type,labeltab[index].atrib,labeltab[index].ef_adr);
fprintf(F1,"\n\n=========================macro table===============================");
for (index =0;index < idx ;index++)
fprintf(F1,"\n\t%25s",macrotab[index].name);
fclose(F1);
fclose(F2);
fclose(F3);
}
Висновок: був вивчений принцип роботи препроцесору, а саме робота директив условної компіляції, директив визначення макросів, включення файлів користувача, обробка команд макросів.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.