|
IGBT
Сообщений: 534
Регистрация: 09.10.2005
Не в сети
|
Ну вот почитал 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;
}
|