Öncelikle teşekkür ederim :)
Yapılacak işlem çok zor değil sanırım
enum {
OP_BIR1=0, OP_IKI, OP_UC
};
size_t[] optable;// operandlarımızın goto için adresini tutan bir değişken
asm{
call op_bir;
add EAX, 4; // EAX içerisinde operandımızın adresi var
//optable dizisine EAX değeri atacak asm kodu
}
op_bir:
asm{
mov EAX, [ESP];
ret;
}
//operand birin işlemleri ve daha sonra diğer operanda geçmek için bir komut
op_iki:
asm{
mov EAX, [ESP];
ret;
}
//operand ikinin işlemleri ve daha sonra diğer operanda geçmek için bir komut
op_uc:
asm{
mov EAX, [ESP];
ret;
}
//operand üçün işlemleri ve daha sonra diğer operanda geçmek için bir komut
Temel mantığıyla böyle olacak yanlışım olabilir umarım nasıl olacağını anlatabilmişimdir
diğer operanda geçmek içi olan komutu sonra tanımlarız. Ama o fonksiyonda da optable adresindeki adresse goto ile gideceğiz.
Kurduğum mantıkta sorun olabilir ama buna benzer birşey olacak :)
Zekeriya
--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]