delphi4arab منتديات دلفي للعرب
كيف استعمل case الاسمبلي في الدلفي - نسخة قابلة للطباعة

+- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum)
+-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3)
+--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15)
+--- الموضوع : كيف استعمل case الاسمبلي في الدلفي (/showthread.php?tid=3333)



كيف استعمل case الاسمبلي في الدلفي - cargem - 05-08-2011

في الاسمبلي يعطيك بايتات وعناوين البايتات في area
والعناوين كيف با نسوي!!
العنوان هل هو ضروري ام لا؟

كود :
cmp al,$1b movz ebx,byte [ebx+address of byte] jmp adress[ebx*4*address of jmp] jmp adress code jmp adress code jmp adress code jmp adress code jmp adress code jmp adress retn
هذا مثال
ما احل؟؟


كيف استعمل case الاسمبلي في الدلفي - cargem - 06-08-2011

وعليكم السلام ورمضان كريم
هذا مثال للتوضيح
انضر الى 10274AD4
هذا هو المشكلة كيف استبدلة با lable
لاحظ العناوين في الاسفل

كيف اربطهم با (JMP DWORD PTR DS:[EAX*4+10274AD4)jmp
كود :
CMP EAX,8 JA L028 JMP DWORD PTR DS:[EAX*4+10274AD4] L003: MOV DWORD PTR DS:[ECX+650],1 MOV DWORD PTR DS:[ECX+648],EDX RETN 4 L006: MOV DWORD PTR DS:[ECX+650],2 MOV DWORD PTR DS:[ECX+648],EDX RETN 4 L009: MOV DWORD PTR DS:[ECX+650],4 MOV DWORD PTR DS:[ECX+648],EDX RETN 4 L012: MOV DWORD PTR DS:[ECX+650],8 MOV DWORD PTR DS:[ECX+648],EDX RETN 4 L015: MOV DWORD PTR DS:[ECX+650],10 MOV DWORD PTR DS:[ECX+648],EDX RETN 4 L018: MOV DWORD PTR DS:[ECX+650],20 MOV DWORD PTR DS:[ECX+648],EDX RETN 4 L021: MOV DWORD PTR DS:[ECX+650],40 MOV DWORD PTR DS:[ECX+648],EDX RETN 4 L024: MOV DWORD PTR DS:[ECX+650],80 MOV DWORD PTR DS:[ECX+648],EDX RETN 4 L027: MOV DWORD PTR DS:[ECX+650],100 L028: MOV DWORD PTR DS:[ECX+648],EDX RETN 4 DD L003 DD L006 DD L009 DD L012 DD L015 DD L018 DD L021 DD L024 DD L027

eax*4+10274ad4
العنوان 10274ad4 يشير الى قائمة عناوين القفز المشار بالابل

كود :
DD L003 DD L006 DD L009 DD L012 DD L015 DD L018 DD L021 DD L024 DD L027



كيف استعمل case الاسمبلي في الدلفي - TF6M - 06-08-2011

- عناوين غير ثابتة , كل مرة يتم تحميل البرنامج الى الذاكرة يأخذ va مختلفة !!,إستخدم الـ label .


كيف استعمل case الاسمبلي في الدلفي - cargem - 12-08-2011

نعم حليتها باستخدام
label