delphi4arab منتديات دلفي للعرب

نسخة كاملة : كيف استعمل case الاسمبلي في الدلفي
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
في الاسمبلي يعطيك بايتات وعناوين البايتات في 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
هذا مثال
ما احل؟؟
وعليكم السلام ورمضان كريم
هذا مثال للتوضيح
انضر الى 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
- عناوين غير ثابتة , كل مرة يتم تحميل البرنامج الى الذاكرة يأخذ va مختلفة !!,إستخدم الـ label .
نعم حليتها باستخدام
label