PDA

Tam Sürümünü Görmek İçin : asm


BetulSahin
26/01/2007, 22:30
Arkadaşlar aşağıdaki kodu Borland C++ Builder 6.0 da çalıştırıyorum.Forma buton,edit koyup butonun OnClick olayına kodu yazıyorum.


int a,b,c;
a=StrToInt(Edit1->Text);
b=StrToInt(Edit2->Text);
asm
{
mov al,a
add al,b
mov c,al
}
Edit3->Text=c;


Şu hatayı veriyor "operand size mismatch".Sanırım operandın uygun olmadığını söylüyor.Ne yapmam lazım :(( ?


Mr_MOON
26/01/2007, 22:42
Emin olmamakla birlikte şöyle bir mantık yürütebilirim.
al; ax registerının düşük seviyeli 4 bitini temsil eder yani 4 BİT tir fakat buradaki a int türünden bir değişken ve 4 BYTE büyüklüğünde. 4 Byte=32 bit eder.

Sorun burdan kaynaklanıyor olabilir.

BetulSahin
27/01/2007, 00:32
Tamam arkadaşım dediğin gibiymiş int yerine char tanımladım çalışıyo.

bluekid
27/01/2007, 10:35
al yerine ax kullanman lazım
ax 16 bit 2 byte dır
int de 2 byte dır
al 8 bit 1 bytedır
char da 1 bytedır

programın bu haliyle çalışırsada 256 nın üstünde yalış sonuç verir