سلام خدمت همه دوستان
اگه ممکنه روش و قالب کلی برنامه نویسی اسمبلی در دلفی را توضیح دهید.
متشکرم :wink:
Printable View
سلام خدمت همه دوستان
اگه ممکنه روش و قالب کلی برنامه نویسی اسمبلی در دلفی را توضیح دهید.
متشکرم :wink:
با عرض سلام
اسمبلی که در دلفی استفاده میشود Asm32 است و با اسمبلی داس کمی فرق دارد(از لحاظ متغیر ها و حافظه ها)
Begin
Asm
End;
End;
این هم قالب کلی بین asm و end دستورات اسمبلی مینویسیم.
procedure outToPort(portAddr : smallint ; value : smallint);
var
byteValue : Byte;
begin
byteValue := Byte(value);
asm
push dx
mov dx,portAddr
mov al, byteValue
out dx,al
pop dx
end;
end;
function inFromPort(portAddr : smallint) : smallint;
var
byteValue : byte;
begin
asm
push dx
mov dx, portAddr
in al,dx
mov byteValue,al
pop dx
end;
inFromPort := smallint(byteValue) and $00FF;
end;
این هم تو اینترنت برات پیداکردم.
موفق باشی. :)
با سلام
در این مورد تجربه کمی دارم و تقاضا دارم اساتید راهنمایی کنند ولی اگر اشتباه نکنم توضیح دستورات فوق به صورت زیر است:
push : که موجب میشه مقدار فعلی یک ثبات(registry ) یه جایی ثبت بشه که با فراخانی دستور pop دوباره همون مقدار رو بگیره و این جوری اطلاعات گم نمیشه.
pop: که توضیحش داده شد.
mov: که مقدار یه متغیر را به درون یک ثبات میفرستد و معکوس.
ثبات al : که کارایی خاصی دارد و اطلاعات ورودی خروجی یه گذری از این ثبات همیشه دارند مثلا به محض فشردن کلیدی از کیبورد کد اسکس آن وارد این ثبات میشود.
in و out : که همانجور که پیداست برای ارتباط با پورتها میباشد.
البته این مقدار بسیار بسیار بسیار جزیی در مورد اسمبلی است. اساتید یاری کنند خیلی بهتر میشود. :wink:
دوستانی که با اسمبلی کار کردند یه کمی در مورد اون توضیح بدهند ممنون می شم :flower: