الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

تحويل كود من السي الى الاسمبلي

مغلق
بدأه الاخير زمانه في 10 مارس 2007 · 7 رد · 1,328 مشاهدة · في أرشيف قسم الـــ Assembly
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

هذا الجزء بلغة سي

كيف احوله الى الاسمبلي

struct change 
	{
		  BYTE P;
		  PROC addr;
		  BYTE R;
		} A,B;

وجزاكم الله كل خير

/index.php/topic/264448-%D8%A7%D9%84%D8%A8%D8%AF%D8%A7%D9%8A%D8%A9-%D9%85%D8%B9-%D8%A7%D9%84%D8%A7%D9%86%D8%AF%D8%B1%D9%88%D9%8A%D8%AF/

 

اني وان كنت الاخير زمانه ---- لأتِ بما لم تستطعه الاوائلُ

#2

وعليكم السلام

كيف الحال اخي الكريم ؟ صار لنا زمان ما شفناك, ان شاء الله تكون بخير..

جواباً على سؤال اولاً كلمة PROC كلمة محجوزة فى مترجمات masm32 لذلك يجب تغيرها

.data?
	  change STRUCT
		  P	byte ?
		  myPROC	DWORD ?
R	byte ?
	  change ENDS
	  A TYPEDEF PTR change
	  B TYPEDEF PTR change

للوصول إلى عناصر الStruct يمكنك عمل التالي

mov eax, A.[myPROC]

والسلام عليكم

لا إله إلا الله محمد رسول الله

busbar : يجب ان تدرك انه هناك حد ادنى للمعرفة المطلوبة قبل البدء في عمل أي شئ.

#3

و عليكم السلام و رحمة الله وبركاته ،

مرحبا اخي احمد ، كيف الحال ؟

انا بخير ولله الحمد ،، و مشغول بمشروع التخرج

انا اخذت بنصيحتك لي وركزت على امر واحد ،

الحمد لله تقريبا انتهيت من المشروع ،

وبالوقت المتبقي لدي سأحاول تحويل البرنامج الى اسمبلي ،

تواجهني بعض الصعوبات .. ولكن الله يعين ويسهل وان شاء الله انتم هنا ايضا ما تقصرون ،

--

جزاك الله خيرا على الرد ،

احمد عندي سؤال صغير ،

انا قمت بكتابة درايفر ،

ولدي برنامج في طبقة ال user يتعامل مع هذا الدرايفر (البرنامج حايا مكتوب بلغة سي)،

اريد ان احول البرنامج الى الاسمبلي هل ممكن ؟؟

يعني ممكن التعامل مع الدرايفر من لغة الاسمبلي ؟

ونفس الشي ،

لو كان لدي ملف dll مكتوب بلغة سي وهو يصدر مجموعة دوال ،

هل ممكن ان اصل الى هذه الدوال واتعامل معها من برنامج اسمبلي ؟

---

و عذرا اذا لم افتح موضوع جديد بهذه الاسئلة ، للسرعة فقط

--

و جزاك الله كل خير

/index.php/topic/264448-%D8%A7%D9%84%D8%A8%D8%AF%D8%A7%D9%8A%D8%A9-%D9%85%D8%B9-%D8%A7%D9%84%D8%A7%D9%86%D8%AF%D8%B1%D9%88%D9%8A%D8%AF/

 

اني وان كنت الاخير زمانه ---- لأتِ بما لم تستطعه الاوائلُ

#4

وعليكم السلام ورحمة الله وبركاته

بالتوفيق إن شاء الله اخي ونحن فى انتظارك بعد التخرج حتى نستفيد من خبراتك فى المنتدي إن شاء الله..

بالنسبة للاسئلة نعم تستطيع بالتاكيد ان تستدعي دوال مكتوبة بلغة السي من خلال الاسمبلي والعكس..

راجع موقع مايكروسفت فهناك عدة امثلة لكيفية عمل ذلك..

http://msdn2.microsoft.com/en-gb/library/t...526(VS.80).aspx

الامثلة سهلة وجيدة جداً ...

والسلام عليكم

لا إله إلا الله محمد رسول الله

busbar : يجب ان تدرك انه هناك حد ادنى للمعرفة المطلوبة قبل البدء في عمل أي شئ.

#6

السلام عليكم

لدي كود اسمبلي في السي ++ كيف يمكن تحويلة الي سي شارب

#ifdef _MSC_VER

#pragma warning(disable:4035) //function doesn't return value
inline ushort i2i(ushort x)
{	__asm mov ax, x
	__asm xchg ah, al
}
inline uint i2i(uint x)
{	__asm mov eax, x
	__asm bswap eax
}
#pragma warning(default:4035)

#else //_MSC_VER

inline ushort i2i(ushort x)
{	__asm("xchgb %b0,%h0" : "=q" (x) : "0" (x));
	return x;
}
inline uint i2i(uint x)
{	__asm("bswap %0" : "=r" (x) : "0" (x));
	return x;
}

#endif //_MSC_VER

وجزاكم الله خيراً

مواضيع متنوعة

#7

حسناً استطعت تحويلة والحمد لله

وهذا الكود بعد التحويل

ushort i2i(ushort x)
{
	//return (ushort)((x & 0x00ff) << 8 | (x & 0xff00) >> 8);
	return (ushort)((x >> 8) | (x << 8));
}

uint i2i(uint x)
{
	 //return (((x & 0xff000000) >> 24) | ((x & 0x00ff0000) >> 8) | ((x & 0x0000ff00) << 8) | ((x & 0x000000ff) << 24));
	return (((x & 0x000000FF) << 24) + ((x & 0x0000FF00) << 8) + ((x & 0x00FF0000) >> 8) + ((x & 0xFF000000) >> 24));
}

تم تعديل هذه المشاركة بواسطة Moudey في 12 مايو 2007 في 03:20

مواضيع متنوعة

#8

الأخ أحمد غريب ..

قرأت في بعض المواقع لتعريف ال struct نقوم بالأتي

لنفرض لدينا:

DATE STRUCT
day db 6
month db 12
year db 1976
DATE ENDS

لماذا في الأسمبلي نستطيع أن نعطي عناصر ال struct قيم بينما لا ينفع ذلك مع C++

كيفية الرجوع الى ال struct كما يلي:

myDate DATE <>

و لتغيير ال قيم عناصر ال struct نقوم بالتالي

myDate DATE <10,3,1925>

و لتغيير قيمه واحده نقوم بالتالي

myDate DATE <,10,>

و للوصول الى أحد عناصر ال struct نقوم بالتالي

mov ex, [myDate.day]

ما الفرق بين هذه الحالتين، (الحالة الأولى التي عرضتها أنت و الحالة الثانيه التي قرأتها في استفساري) اعذرني أخي ربما تكون الأسئله بسيطه و لكني مبتدأ جدا في هذه اللغه ...

جزاك الله خيرا ...

تم تعديل هذه المشاركة بواسطة Yousof في 16 مايو 2007 في 18:40

هذا الموضوع مغلق.

مواضيع مشابهة