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

سؤال أسمبلي

مغلق
بدأه بنت العرب في 13 أبريل 2004 · 8 رد · 1,786 مشاهدة · في لغة Assembly لأنظمة 16, 32, 64 بت
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

أخواني أعضاء المنتدى الكرام أرجو منكم التفضل بالاجابة على هذا السؤال . . .

هل يمكن التحويل بين نظامين عدديين في الأسمبلي ( كالتحويل من سادس عشر الى ثنائي وكيف يتم ذلك لاني حاولت ولم أجد الحل , فاذا كان هناك دروس تشرح هذه المواضيع الرجاء تزويدي بها)

والسؤال الثاني : كيف يمكن أن أعطي مسجلات الأعلام قيماً ابتدائية فاذا اردت مثلا ان اعطي المسجل CF قيمة ابتدائية هل أكتب : MOV CF,1

#2

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

حيا الله بنب العرب

إجابة على السؤال الاول, لاتوجد فرق بين نظام العدد السادس عشر و النظام الثنائى.

نظام السادس عشر هو عباره عن طريقة مركزة للتعبير عن النظام الثنائى, ففى نظام السادس عشر كل اربعة بت يرمز لها برمز كما هو موضح فى القائمه ادناه

  
0000 =0
0001=1
0010=2
0011=3
0100=4
0101=5
0110=6
0111=7
1000=8
1001=9
1010=A
1100=B
1101=C
1110=D
1111=F

اما بالنسبة للتحويل بين الاعداد الثنائية او الستة عشريه فهناك طريقه تدعى BCD(Binary Coded Decimal) , و هذه الطريقة يطول شرحها لذالك نتركها لدرس الاسمبلى و سوف اقوم بشرحها لاحقاُ إن شاء الله تعالى.

اما بالنسبة للمسجلات (General Porpes Registers) فيوجد 8 مسجلات CF ليست وحده منهم, وهم على النحو التالى:

32 bit general Registers
EAX, EBX,ECX,EDX,ESI,EDI,EBP,ESP

كل مسجل من المسجلات الاربع الاولى (EAX,EBX,ECX,EDX) يمكن ان تستخدم ك 23 بت مسجل. و كذالك نستطيع إستخدامها ك 16 بت إذا اخذنا الجزء الاسفل منها, عند إذن يكون إسمها AX,BX,CX,DX , اما إذا اردنا استخدام 8 بت فقط مقسم على سبيل المثال AX الى قسمين وفى هذه الحالة يكون إسمهما AH,AL الجدوال التالى يبين الاقسام المختلفه للمسجلات:

32bit   16bit   8bit   8bit   
  EAX    AX      AH     AL    
  EBX     BX      BH     BL
  ECX    CX      CH     CL
  EDX    DX      DH     DL

الاربعة مسجلات المتبقيه فيمكن تقسيمها الى قسمين فقط, و اليمن الجدول للتوضيح:

 32bit   16bit      
     ESI     SI      
     EDI    DI      
    EBP    BP      
    ESP    SP

بالطبع نستطيع ان نستخدم المسجلات كما نحب ولكن يفضل عدم إستخدام المسجلات الاربع الاخيرة الى للاغراض المخصصة لها, و التى سمقوم بدراستها لاحقاُ إن شاء الله فى درس الاسميلى.

اوضع قيم إبتدائيه نستطيع بالاتي:

mov eax,5                                                      ;put the number 5 in EAX
mov ebx,0                                                                             ;Clean EBX
mov bl,2                                                            ; put the number 3 in BL
mov ecx,eax                              ;put the number which is in EAX in ECX
 add ecx,ebx             ;add the value which is in EBX to the value in ECX

شرح:

ضع الرقم 5 فى EAX نظف EBX من اى رقم قد يحتويه, ضع الرقم 2 فى bl , وهنا لاحظ ان bl هى فقط ال 8 بت الاولى فى EBX . الان ضع محتوى EAX فى ECX وهو كما نعلم الرقم 5 و اخيراً إجمع محتوى EBX و ECX ثم ضع الناتج فى ECX .

الان إذا نظرنا الى محتوى المسجلات نجد التالى:

EAX = 5
EBX = 2
ECX = 7

ارجو ان اكون قد اجبت على الاسئله

والسلام

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

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

#3

السلام عليكم

لا أريد أن أجاوب على السؤال الأول فالأخ أحمد أعطى ما فيه الكفاية وننتظر منه المزيد حتى تعم الفائدة

وفيما يخص سؤالك الثاني فالتعليمة التي ذكرت mov CF,1 غير ممكنة ولجعل CF يساوي 1 نقوم بما يلي

STC

وهذه التعليمة تعني Set Carry تعني إعطاء قيمة 1 للعلم Carry FLAG

وعكس هذه التعليمة هي CLC والتي تعني Clear Carry

وكما أن هناك تعليمة أخرى CMC وهي تقوم بتغيير Carry يعني إذا كانت حالته الأولى 1 يصبح 0 وإذا كان 0 يصبح 1

إلى اللقاء.

#4

أشكر لكم اهتمامكم بالرد على أسئلتي....

فلقد أوفى الاستاذ أحمد غريب في شرحه للمسجلات مما زاد في فهمي لها ...

كما أشكر الأستاذ chik على هذه المعلومات القيمة التي طالما بحثت عنها ولكن لم أجدها ...

فأتمنى لهم المزيد من التقدم ... مع خالص شكري و تقديري ...

#5

السلام عليكم

اخي ومعلمي احمد غريب اعتقد بانك قد سهوت ونحن نعلم بان السهو والنسيان من سيمة البشر

بالنسبة للميزان السادس عشر

A=1010

B=1011

C=1100

D=1101

E=1110

F=1111

وشكرا

#6

السلام عليكم

جزاك الله خير اخونا الحبيب عفيف على التصحيح , فعلاً الاعداد كان فيها خلل و جل من لا يسهو .

والسلام

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

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

#7

السلام عليك اخي احمد

شكرا لك وجعلك وجعلنا الله معك من اهل الخير والمساعدة

#8

اشكركم على اجابتكم على الاجابه على سؤالي واعتذر لاني لم اوضحه بالشكل المطلوب وانا اعتذر منكما وان شاء الله سوف اوضح اسئلتي في المره القادمه بشكل أفضل؟ وسامحوني لاني مازلت مبتدئه في الاسمبليولكم جزيل الشكر**********[

#9

شكرا أخي الكريم

بارك الله فيك

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

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