PDA

View Full Version : اسمبلی در C#



esrafilnl
شنبه 31 مرداد 1388, 00:58 صبح
با سلام

کسی میدونه چطوری یک قطعه کد به زبان اسمبلی رو میشه تو سی شارپ اجرا کرد یا بهتر بگم دستورات سطح پایین رو انجام داد مثلا تغییر مقدار یک ثبات و یا پیدا کردن مقدار یک حافظه مثلا مقدار داخل حافظه با آدرس 348H

mehdi.mousavi
یک شنبه 08 آبان 1390, 13:01 عصر
با سلام کسی میدونه چطوری یک قطعه کد به زبان اسمبلی رو میشه تو سی شارپ اجرا کرد

سلام.
برای انجام این امور، شما می تونید یک Native DLL ایجاد کنید (فرضا در C++) و با استفاده از _asm کد اسمبلی مورد نظر رو در C++ تحت قالب یک یا چند تابع بنویسید.
سپس، با لینک کردن اون DLL به برنامه C# خودتون، میتونید اون توابع رو Call کنید (در این مقاله (http://www.codeproject.com/KB/cs/unmanage.aspx) می تونید با Call کردن توابع Native در محیط Managed آشنا بشید).
البته روش های دیگه (http://blogs.msdn.com/b/devinj/archive/2005/07/12/438323.aspx) ای هم وجود داره، اما هرگز اونها رو توصیه نمی کنم.

موفق باشید.

hadidan
دوشنبه 09 آبان 1390, 07:29 صبح
سلام.
برای انجام این امور، شما می تونید یک Native DLL ایجاد کنید (فرضا در C++) و با استفاده از _asm کد اسمبلی مورد نظر رو در C++ تحت قالب یک یا چند تابع بنویسید.
سپس، با لینک کردن اون DLL به برنامه C# خودتون، میتونید اون توابع رو Call کنید (در این مقاله (http://www.codeproject.com/KB/cs/unmanage.aspx) می تونید با Call کردن توابع Native در محیط Managed آشنا بشید).
البته روش های دیگه (http://blogs.msdn.com/b/devinj/archive/2005/07/12/438323.aspx) ای هم وجود داره، اما هرگز اونها رو توصیه نمی کنم.

موفق باشید.

خیلی ممنون که سوال ما رو جواب دادیند.
ولی اینکه فقط فراخوانی هستش! این رو هم با وارد کردن کتابخانه System.ReflectionL (http://msdn.microsoft.com/en-us/library/system.reflection.assembly(v=VS.85).aspx) هم میشه انجام داد.
منظور ما نوشتن مستقیم دستورات اسمبلی(مثل C++) در C# بود .
یعنی هیچ راهی وجود نداره.:افسرده:

mehdi.mousavi
دوشنبه 09 آبان 1390, 11:29 صبح
منظور ما نوشتن مستقیم دستورات اسمبلی(مثل C++) در C# بود . یعنی هیچ راهی وجود نداره.:افسرده:

خیر، روشی برای انجام این کار (به اون شکلی که مد نظر شماست) وجود نداره، چون زبان C# با اهداف دیگه ای طراحی شده...

موفق باشید.

omid14
جمعه 20 آبان 1390, 13:23 عصر
سلام
ببخشین میشه بگید روشهای دیگه منظورتون کدوماس ؟
و چرا توصیه نمیکنید ؟

Amir Oveisi
جمعه 20 آبان 1390, 13:33 عصر
سلام
ببخشین میشه بگید روشهای دیگه منظورتون کدوماس ؟
و چرا توصیه نمیکنید ؟

لطفا پاسخ ها رو با دقت بیشتری مطالعه بفرمایید. لینکش رو قرار دادند آقای موسوی.
http://blogs.msdn.com/b/devinj/archive/2005/07/12/438323.aspx

omid14
شنبه 21 آبان 1390, 19:46 عصر
معذرت میخوام ولی اگه من انگلیسیم خوب بود که دیگه اینجا نمی اومدم مگه واسه مشکلات تاریخ و زبان !!
ممنون میشم اگه جواب خوبی بدید
:متفکر::گیج:

omidh2007
یک شنبه 22 آبان 1390, 07:25 صبح
برنامه ای که توی این سایت بود رو اجرا کردم . http://blogs.msdn.com/b/devinj/archive/2005/07/12/438323.aspx
ولی System.AccessViolationException دریافت میکنم .
توی فروم ها گشتم چیزی پیدا نشد .. آیا این اتفاقا فقط روی ویندوز 64 بیتی میفته ؟
آیا لازمه تغییرات این صفحه رو بدم تا بتونم روی Protected Memory چیزی Read/Write کنم ؟
http://jtstroup.net/post/Attempted-to-read-or-write-protected-memory-This-is-often-an-indication-that-other-memory-is-corrupt.aspx
خواهش میکنم جواب بدین . چون مدت ها سوال منم بود این قضیه .