# Native Code > برنامه نویسی در Delphi >  سوال : میزان کار اسمبلی با دلفی؟

## hp1361

سلام

یکی از دوستام که مخابرات می خونه می خواد زبان برنامه نویسی یاد بگیره

ازم سوال کرد با دلفی چه کارای از نوع اسمبلی یا کلا کار با سخت افزار و میتونه انجام بده .

اون مسره که سی پلاس پلاس رو باید یاد بگیره . اما گویا خیلی براش سخته

کارایی مثل کنترل روبات از طریق وب رو میخاد مثلا انجام بده

ممنون میشم راهنمایی بکنین

----------


## مهران موسوی

دوست عزیز برای مدیریت رباط ها از طریق پورت LPT به راحتی میشه از DLL هایی همچون  WinIO.dll استفاده کرد ... ( فکر کنم خود ویندوز هم یک DLL برای اینکار داشته باشه ( شاید هم اشتباه میکنم) )

البته این کار رو هم با Delphi و هم با C++‎ میشه انجام داد .... با C++‎ دستمون توی اینجور کارا بازتر هستش چون میشه از PortTalk هم استفاده کرد ... ولی در کل اگه یک DLL یا یک کامپوننت برای ارسال بایت به پورت LPT مخصوص دلفی پیدا کنی به راحتی میشه با اون روباط رو  مدیریت کنی ...  ( در ضمن باید بگم نیاز خاصی توی این کار به اسمبلی نیست ... چون تغریبا تمامی کارهایی که اسمبلی میکنه C به خوبی انجام میده ... ولی باید توجه داشت که سرعت اسمبلی به طبع بالاتر و برای برنامه های مقیم در حافظه مناسبتر هستش )

----------


## nouri2015

من برنامه کنترل رباط را با اسمبلی در دلفی از طریق پورت lpt نوشتم

----------


## hp1361

> من برنامه کنترل رباط را با اسمبلی در دلفی از طریق پورت lpt نوشتم


سلام

ممنون میشم اگه بیشتر توضیح بدی چطور این کارو کردی.

اگر کاربر بخواد این کار رو از راه دور و از طریق نت انجام بده چیکار باید کنه ؟

----------


## B-Vedadian

سلام،

من خودم مخابراتی هستم.
*نکته مهم*: فراگرفتن ++c برای کارهای سطح پایین سخت افزاری واجب عینیه! برای کار با DSPها و  سایر کنترلرها هم واجب عینیه.

دلفی و #C و زبانهای از این دست رو برای نوشتن رابط کاربر بیشتر استفاده می کنند و برای کاربردهای سیستمی و سخت افزار مناسب نیستند.

----------


## Arman_1367

برای استفاده از زبان ماشین تو دلفی کافیه به روش زیر عمل کنید :

asm

دستورات 

end;


مثال کاملتر برای یک تابع معمولی 

function sin(x:integer):double;
asm
fld x
fsin
fwait
end;

همین

----------


## مهران موسوی

با سلام ...

دوست عزیز شما برای مدیریت برنامه ی خودتون از روی اینترنت یا شبکه نیاز به یادگیری Indy دارید ... این ابزار طیف عزیم و قدرتمندی از کامپوننت ها را برای برنامه های شبکه در اختیار شما قرار میده ... با استفاده از این ابزار بدون شک میتونید عملیات مورد نظرتون رو انجام بدین ....

اما در رابطه با اسمبلی در دلفی .... دفعه ی اول هم بهتون گفتم برای انجام مدیریت رباط از راه LPT مستقیما نیازی به اسمبلی نیست ... من خودم شخصا محدودیت خاصی توی برنامه نویسی ندارم ... این رو هم قبول دارم که انجام این کار با C++‎ خیلی ساده تر هست ولی من یقین دارم که با دلفی هم میشه این کار رو انجام داد ... ( البته فکر نکنید من طرفدار دلفی هستم و این حرف رو میزنم .... من با VC++‎ و ... هم کار میکنم )

در مورد اسمبلی در دلفی هم دوست خودم اقا ارمان شکل کلی استفاده رو بهت گفت .... 

من برای از بین رفتن ابهامات یک تابع با اسمبلی نوشتم که عملیات تفریق رو شبیه سازی میکنه .... این فقط یک مثال برای از بین رفتن ابهامات شما در رباطه با اسمبلی و دلفی هستش ...

function Sub(x:integer;y:integer):integer;
var
a:integer;
begin
asm
mov ecx,x;
sub ecx,y;
mov a,ecx;
end;
Sub:=a;
end;

نحوه ی فراخوانی تابع 

procedure TForm1.Button1Click(Sender: TObject);
begin
/// ASM Demo in Delphi 32 ( MSoft - Team )
ShowMessage(IntToStr(Sub(10,3)));
end;

یا حق ...

----------


## nouri2015

کتاب مزیدی اطلاعات کامل راجع به پورتها دارد شما کافیه برای خواندن و نوشتن داده روی پورت از دستور اسمبلی در دلفی استفاده بکنید

----------


## mr13668248

این مسئله قبلا بررسی شده

----------


## vahidenglish

سلام به همگی . 
می خواهم مطلبی در مورد برنامه نویسی شیی گرا به زبان اسمبلی تحت دلفی 6 بگویم . اما گویا این تاپیک خیلی قدیمی است و امکان دارد مدیر محترم سایت پست مرا بدلیل انقضای تاریخ حذف کند  و به من هشدار دهد .  اصلا دوست ندارم چنین اتفاقی بیفتد . چون هدف من آموزش است . اگر این پست حذف می شود همین حالا بگویید .

----------


## vahidenglish

سلام . 
من سالها قبل متوجه شدم که دیباگر دلفی 6 دستورات اسمبلی معادل با هر دستور دلفی را علنا به کاربر  نشان می دهد . 
کنجکاو شدم و تصمیم گرفتم  تحت حالتهای مختلف  دستورات اسمبلی معادل با دستورات دلفی را کشف کنم . 
پس  از مدتی توانستم بجای هر دستور زبان  پاسکال دلفی 6  دستورات معادلشان به زبان اسمبلی را بنویسم . 
نتیجه ی ازمایشات خیلی مهیج بود . من از دلفی 6 بعنوان یک ویژوال اسمبلی قدرتمند شی گرای هوشمند اتوماتیک برای تولید برنامه های زبان اسمبلی استفاده می کردم .  متاسفانه شرکت بورلند این خاصیت جالب را در دلفی 7  و 8  از بین برد . الان هم از هیج جای اینترنت نمی توان دلفی 6 را دانلود کرد .  نمی دانم چرا  شرکتهای نرم افزاری  از زبان اسمبلی متنفرند . واقعا اسمبلی مظلومترین زبان برنامه نویسی جهان است . 
شاید این پست ربطی به عنوان تاپیک نداشته باشد ولی امیدوارم مدیران محترم سایت انرا حذف نکنند .

----------


## typeman9

سلام
نمی دونم چرا همه  سعی  می کنند  زبان  اسمبلی  را  بکوبند  و  تحقیر  کنند.  اسمبلی  یک  زبان برنامه  نویسی  همه منظوره و  انعطاف پذیره .  حقیقتا  اسمبلی  بسیار  قویتر  و  کاملتر  از  زبانهای  پاسکال  و  سی  و  سی  پلاس  پلاسه .  همه  ی  زبانهای  سطح  بالای  سیستمی  توسط  اسمبلی  اختراع  شدند.  هنوز  هم  اسمبلی  کاربردهای  فروانی  داره .  من  مخالف  زبانهای  سطح  بالا  نیستم  ولی اسمبلی  در  هیچ  زمینه ای  شما  رو  محدود  نمیکنه و  شما  دستتون  کاملا  بازه . 
در مورد کاربرد  اسمبلی  در  دلفی  میشه راحت  با  دیباگر  دلفی  6   هر  دستور  پاسکال  را  به  همراه  دستورات  معادلش  در  اسمبلی مشاهده کرد و یادداشت کرد و بعدا  بجای  پاسکال  از  دستورات  اسمبلی  که  توی  دیباگر  دیدیم  استفاده  کنیم . 
هیچ نیازی به  زبانهای  سی  و  سی پلاس  پلاس  نداریم .   اسمبلی  هزاران  مرتبه  از  سی و  سی  پلاس پلاس  هوشمندتر  و قویتر  و کاملتره .  
این  رو من که  محقق  زبان  اسمبلی  هستم  و نمونه  کارهای برنامه  نویسان  خارجی  رو  دیدم   میگم . 
به سایت  اسمبلر  FASM  مراجعه  کنید تا  قدرت  اسمبلی  رو  از  نزدیک  ببینید . 

https://flatassembler.net

این  اسمبلر و  همچنین  اسمبلر  معروف  masm32  کتابخانه  های  فراوان  و  استاندارد  دارند و  میتونند  خیلی راحت  جایگزین  زبان    c  و  ++c     بشوند . 
با  وجود  اسمبلر  قابل  حمل  Fasm   ما  هیچ  نیازی  به  زبان  c    نداریم .  
دوری کردن  از  زبان  اسمبلی  کاملا  به  ضرر  خودتونه  وگرنه  برای  من  و  زبان  اسمبلی  هیچ  فرقی  نمیکنه که  شما اسمبلی  رو  بکار  گیرید  یا  بندازید  توی  سطل   آشغال .  هرکس  تو دنیا  علیه  زبان  اسمبلی  گارد  بگیره و به خیال خودش   اسمبلی  رو  تحقیر  کنه و براش نقطه  ضعف بتراشه  عملا  خودش  رو   تحقیر کرده و گرنه  اسمبلی  خدای  زبانهای  برنامه نویسیه   و ککش  هم  نمیگزه و ذره ای  از  ارزشهاش  کم  نمیشه .

----------


## GeneralLeang

> سلام . 
> من سالها قبل متوجه شدم که دیباگر دلفی 6 دستورات اسمبلی معادل با هر دستور دلفی را علنا به کاربر  نشان می دهد . 
> کنجکاو شدم و تصمیم گرفتم  تحت حالتهای مختلف  دستورات اسمبلی معادل با دستورات دلفی را کشف کنم . 
> پس  از مدتی توانستم بجای هر دستور زبان  پاسکال دلفی 6  دستورات معادلشان به زبان اسمبلی را بنویسم . 
> نتیجه ی ازمایشات خیلی مهیج بود . من از دلفی 6 بعنوان یک ویژوال اسمبلی قدرتمند شی گرای هوشمند اتوماتیک برای تولید برنامه های زبان اسمبلی استفاده می کردم .  متاسفانه شرکت بورلند این خاصیت جالب را در دلفی 7  و 8  از بین برد . الان هم از هیج جای اینترنت نمی توان دلفی 6 را دانلود کرد .  نمی دانم چرا  شرکتهای نرم افزاری  از زبان اسمبلی متنفرند . واقعا اسمبلی مظلومترین زبان برنامه نویسی جهان است . 
> شاید این پست ربطی به عنوان تاپیک نداشته باشد ولی امیدوارم مدیران محترم سایت انرا حذف نکنند .


سلام من دلفی 6 دارم کجاش باید برم؟؟؟؟

----------

