Показать сообщение отдельно
Старый 23.12.2007, 23:06   #13   
IGBT
 
Аватар для Pengvin
 
Сообщений: 534
Регистрация: 09.10.2005

Pengvin вне форума Не в сети
Ну вот почитал msdn насчет inline ассемблера, подправил код. Гнилая винда не захотела перывания обрабатывать пришлось printf использовать.
#include <stdio.h>
class UberClass
{
private:
int palata,mesto;
public:
UberClass();
int GetMesto();
int GetPalata();
};

UberClass::UberClass()
{
unsigned char Palati[59]={
1,1,1,1,
1,1,1,1,
1,1,1,1,
1,1,1,1,
1,0,1,1,
1,1,1,1,
1,1,1,1,
1,1,1,1,
1,1,1,1,
1,1,1,1,
1,1,1,1,
1,1,1,1,
1,1,1,1,
1,1,1,1,
1,1,1,1};
int a=0;;
int b=0;
__asm
{
lea ebx,Palati
xor al,al
mov ecx,60
mov edi,ebx
repne scasb
mov eax,edi
sub eax,ebx
lea ebx,a
mov [ebx],eax
shr eax,2
inc eax
lea ebx,b
mov [ebx],eax;palata
}
palata=b;
mesto=a;
}

int UberClass::GetMesto()
{
return mesto;
}

int UberClass::GetPalata()
{
return palata;
}



int main()
{

UberClass c=UberClass();

printf("Mesto %d , Palata %d",c.GetMesto(),c.GetPalata());
while(1) {};
return 0;
}
  Ответить с цитированием