Цитата(SergeyBorshch @ Nov 27 2006, 13:38)

Смотря какой уровень оптимизации кода поставить. Я лично всегда ставлю Low - и все работает нормально. Пробывал ставить Medium - начинают проявлятся глюки, но терпимо. Ну а про High - вообще сплошные глюки.
Я думаю, что лучше пусть больше памяти проект занимает, нежели будет работать с глюками.
Во-первых, мой проект критичен к размеру памяти программ; во-вторых, правильно написанная программа должна правильно работать независимо от уровня выставляемой оптимизации
еще одно дополнение: параметры, передаваемые в вышеупомянутую функцию, не модифицируются в прерываниях. Вот код функции:
void PrintCharA ( int x, int y,char cod,int CS)
{
char dx , bitx, cod_dx, cod_dx1, byte_dx_pred, byte_dx, byte_dx1, byte_dx1_pred;
int cod_dxt,i,temp ;
bitx=0; dx=0;
bitx=x%8;//áèòû
dx=x/8;//êîîðäèíàòà x äëÿ çàïèñè â ðåãèñòð èíäèêàòîðà
for(i=0;i<=7;i++)
{
byte_dx_pred=byte_dx1_pred=0;
SetPos(dx,y+i,CS);
DataRD(CS);
byte_dx_pred=DataRD(CS);
SetPos(dx+1,y+i,CS);
DataRD(CS);
byte_dx1_pred=DataRD(CS);
if ((cod<0xE0)&(cod>0x29))
{
temp=Digit[cod%0x30][i];
}
else
{
temp=Pic[cod%0xE0][i];
};
if(cod==' ') temp=Pic[32][i];
cod_dxt=temp<<bitx-1; //ôîðìèðóåì äâà áàéòà äëÿ çàïèñè â ñîñåäíèå êîîðäèíàòû
cod_dx1=(cod_dxt&0xFF00)>>8;// âûäåëÿåì ïåðâûé áàéò
cod_dx=(cod_dxt&0xFF);//âûäåëÿåì âòîðîé áàéò
byte_dx=byte_dx_pred|cod_dx;//
SetPos(dx,y+i,CS);
DataWR(byte_dx,CS);
byte_dx1=byte_dx1_pred|cod_dx1;//
SetPos(dx+1,y+i,CS);
DataWR(byte_dx1,CS);
вот цикл:
void PrintString(int x,int y,char str[10],int CS)
{
int i;
i=0;
while (str[i]!='\0')
{
PrintCharA(x+6*i+1,y,str[i],CS);
i++;
};
}