كيف استعمل case الاسمبلي في الدلفي
#1
في الاسمبلي يعطيك بايتات وعناوين البايتات في 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
هذا مثال
ما احل؟؟
الرد
#2
وعليكم السلام ورمضان كريم
هذا مثال للتوضيح
انضر الى 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
الرد
#3
- عناوين غير ثابتة , كل مرة يتم تحميل البرنامج الى الذاكرة يأخذ va مختلفة !!,إستخدم الـ label .
I'M Fly Like A G6

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


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم