مرحبا اخواني
بصراحه انا حاب اعرف اعمل الكود التالي وهو التست
TEST
وفي كود ثاني برضوا حاب اعرف شو بسوي
BT
وياريت ما يكون اسئلتي ثقيله عليكم وشكرا
مرحبا اخواني
بصراحه انا حاب اعرف اعمل الكود التالي وهو التست
TEST
وفي كود ثاني برضوا حاب اعرف شو بسوي
BT
وياريت ما يكون اسئلتي ثقيله عليكم وشكرا
السلام عليكم
test هى عباره عن cmp لبت معين, مثال على ذالك:
test eax,1
تقوم بمقارنة البت رقم واحد فى المسجل eax , يمكنك بعد ذالك إستخدام je او jne.
مثال اخر:
test eax,eax
jz L1
تقوم بعملية إختبار eax, إذا كانت النتيجه صفر تقوم بعملية قفز .
والسلام
لا إله إلا الله محمد رسول الله
busbar : يجب ان تدرك انه هناك حد ادنى للمعرفة المطلوبة قبل البدء في عمل أي شئ.
كفيت ووفيت اخوي
بس كمل معروفك وشو الامر الثاني والي هو
bt
وسكرا
السلام عليكم
هناك 4 اوامر BT,BTS,BTR,BTC :
BTx تقوم بعملية إختبار لبت معين وتضع النتيجه فى carry flag مثال:
BT eax,3
jc L1
هذا المثال يقوم بعمليه قفز إذا كانت البت رقم 3 تساوى 1.
BTC eax,3
jc L1
هذا المثال يقوم بعمليه قفز إذا كانت البت رقم 3 تساوى 1 , ويغير قيمه البت الى عكس محتواه, يعنى إذا كان 0 يصبح 1 و إذا كان 1 يصبح 0.
BTR eax,3
jc L1
هذا المثال يقوم بعمليه قفز إذا كانت البت رقم 3 تساوى 1 ثم يضع 0 فى الخانه.
BTS eax,3
jc L1
هذا المثال يقوم بعمليه قفز إذا كانت البت رقم 3 تساوى 1 ثم يضع 1 فى الخانه.
اقتباسوسكرا
والحمد لله الذى عافانا من السكر .
والسلام
تم تعديل هذه المشاركة بواسطة احمد غريب في 7 يونيو 2004 في 01:36
لا إله إلا الله محمد رسول الله
busbar : يجب ان تدرك انه هناك حد ادنى للمعرفة المطلوبة قبل البدء في عمل أي شئ.
شكرا اخ احمد
وإن شاء الله كلنا بعدنا عن السكر
بس كمان بدي اثقل دمي عليك
اجانا في الامتحان الفاينال سؤال عن test
وحكولنا فيه شو الي بتأثر من الفلاج فهل test بأثر على الفلاج ريجيستر ؟........؟
وشكرا
السلام عليكم
اكيد اخى ياثر على الفلج, خذها قاعده كل امر تقوم بعده بعملية jmp,jc,jnc,jz الخ ياثر على الفلاج.
BT , BTC , ... كولها تاثر على الفلاج.
test تاثر على 3 فلاج, sign , Parity, Zero.
BT,BTC الخ تاثر على carry flag
والسلام
لا إله إلا الله محمد رسول الله
busbar : يجب ان تدرك انه هناك حد ادنى للمعرفة المطلوبة قبل البدء في عمل أي شئ.
انا موافقك رأي اخ احمد
بس انت حكيت انوا test
عملية مقارنه لا غير صح ولا
يعني انوا نفس الامر ما اثر على الفلاج لانوا قار بين تو ريجستر صح
وهذا فهمي انا ومش عارف اذا كنت انا فاهم غلط ولا
ياريت تفيدني بزياده وشكرا
نعم اخى هى مجرد مقارنه ولكن اين تجد نتيجة المقارنه ؟ النتيجه تجدها فى الفاج
مثال على ذالك:
BT eax,0 jc L1 ; zero do this jmp L2 L1: ;not zero do this L2
كما تلاحظ هنا jz تقوم بعملية قفز إذا كانت البت الاولى فى رجستر eax تساوى 1.
والسلام
تم تعديل هذه المشاركة بواسطة احمد غريب في 7 يونيو 2004 في 02:34
لا إله إلا الله محمد رسول الله
busbar : يجب ان تدرك انه هناك حد ادنى للمعرفة المطلوبة قبل البدء في عمل أي شئ.
معلش اخ احمد انا حاس اني ثقلت عليك
بس انا حكيتلك عن test
انا بدي اعطيك المثال الي اجانا
test ax,bx sub bx,ax
فاهم علي وحكولنا شو الي تاثر في السطر الاول
وانا بعتقد اناوا ما بأثر لانوا مافي امر جنمب هنا صح ولا
استحملني اخ احمد
وشكرا
ولايهمك اخى عادى لا ثقلت ولا شي.
عموماً المسئله مش مسئلة عملت جمب ولا لا , المسئله إن الفلاج بتتاثر على اي حال لانك قمت بعملية test , وظيفة test هى التاثير على الفلاج, إذا لم تاثر على الفلاج إذاً ما الفائده منها ؟
والسلام
لا إله إلا الله محمد رسول الله
busbar : يجب ان تدرك انه هناك حد ادنى للمعرفة المطلوبة قبل البدء في عمل أي شئ.
شكرا اخي احمد
كفيت ووفيت بصراحه مش قادر ومش عارف كيف اشكر
والللف شكر مره ثانيه اخوي
على هذه المناقشه
وتصبح على خير اخوي
وشكرا
العفو حبيبى و إن شاء الله إحنا تحت امرك فى الخير.
وإنت من اهل الخير
والسلام
لا إله إلا الله محمد رسول الله
busbar : يجب ان تدرك انه هناك حد ادنى للمعرفة المطلوبة قبل البدء في عمل أي شئ.
السلام عليكم,
أعلم أني أتيت متأخرا لهذا الموضوع وأريد فقط أن أقول هو يجب علينا أن يكون عندنا كتاب أو ملف لأوامر الأسمبلي وعندها فلكل أمر سنجد وصفه وكذلك كل ما يمكن هذا الأمر من تغييره. ولهذا أضن أن هذا سيصبح يوما ما ضروري حين نتقدم في البرمجة.
إلى اللقاء.
وعليكم السلام اخوي chik
بصراحه انا مافي كتاب او ملف ان كان في الموقع هاذ او غيروا إلا نزلتوا
بس بعض الاحيان الواحد بصتصعب من الكتب او الملفات انوا بالانجليزي
وهي ضعفنا وشكرا اخوي chik على النصيحه
السلام عليكم,
حقيقة مشكل اللغة قد يكون عائقا إذا كنا لا نفهمها . ولكن في بعض الأمور مثل الأوامر مثلا فحتى لو عثرنا على ملف بلغة أجنبية لن يكون مشكلا كبيرا لأنها لا تتطلب مجهودات كبيرة للفهم فحين نقرأها قد نفهم المعنى وأن دليل هذه الأوامر من الضروري أن يكون كمرجع عندنا لأنه يمكن أن نكون يوما ما نريد البرمجة ونقف عند أمر ما وقد لا يكون عندنا الوقت لطرح السؤال وانتضار الإجابة.
أتمنى لك التوفيق وإلى اللقاء.
أخي بالنسبة لأمر test:
قد يكون في الغالب لتأكد من صحة كلمة سرية مثلاً:
test eax, eax :password in the eax register je 0040118D or jne 0040118D
الذي أريد قوله أنه في الغالب وليس دائماً يكون بعد التيست جمب.
What I want to clarify here is that test some times is followed by either je or jne :)
أو جمب بدون شرط:
Or a non conditional jump like so:
jmp
السلام عليكم
الاخ riddler المسجل eax دائماً يساوى eax لذالك إذا اردت المقارنه مثل الباس وورد فلابد ان يكون الباس وورد الاصلى فى مسجل و الاخر فى مسجل اخر :
test eax,ebx je passwordOK jne passwordNotOK
والسلام
لا إله إلا الله محمد رسول الله
busbar : يجب ان تدرك انه هناك حد ادنى للمعرفة المطلوبة قبل البدء في عمل أي شئ.
السلام عليكم,
كما قال الأخ أحمد الرجستر هو دائما هو . والمقصود بالأمر هنا test eax,eax غالبا ما يكون للتأكد إن كان eax يساوي صفر أم لا . وفيما يخص قضية الباسوورد فقد تستعمل هذه الطريقة ولكن من قبل وحين نقارن الباسووردات قد نضع مثلا القيمة 1 أو أي قيمة غير منعدمة في الرجستر eax إذا كان الباسوورد صحيح ونضع فيه قيمة صفر في الحالة الأخرى أو العكس . وحين نقوم ب test eax,eax فإننا بالفعل نتأكد من صحة أو عدم صحة الباسوورد ولكن بطريقة غير مباشرة يعني الرجستر لا يكون فيه الباسوورد نفسه. ولنعلم أن هذه طريقة يمكن استعمالها ولكن ليس كل البرامج التي تقارن الباسووردات تعمل على هذا الشكل بل يبقى كل مبرمج يخترع طريقة قد تكون خاصة به ويحاول التحايل قدر الممكن حتى يحاول يخفي الطريقة التي استعملها حتى لا يتمكن المخترقون من إيجاد طريقته بسهولة.
إلى اللقاء.
كلامك صحيح يااخ chik . الكلمة السرية لاتكون فيه مباشرة بل بطريقة غير مباشرة
شكراً لك.
if eax = 1 then jmp Correct Password else jmp Worng Password meaning eax= 0على سبيل المثال .
هذا الموضوع مغلق.