صفحة 1 من 3 123 الأخيرةالأخيرة
النتائج 1 إلى 15 من 34

الموضوع: لغة الاسمبلي

  1. #1
    تاريخ التسجيل
    Feb 2004
    المشاركات
    360

    Talking لغة الاسمبلي

    بسم الله الرحمن الرحيم

    السلام عليك
    الاخوة الاعضاء والمشرفين

    في الحقيقة لرغبة مني بأن يكون الانسان العراقي بالخصوص والاسلامي بالعموم الافضل في مجال التكنولوجيا والمعلوماتية ولذلك قررت ان .

    اكتب هنا في المنتدى ما تعلمته في دوراتي التي عملتها ومستمر بها ولم انهيها لحد الان في لغة الاسمبلي ( لغة التجميع ) وهي لغة من اهم اللغات ومن خلالها تتعلم عزيزي العضو كيف يعمل الكمبيوتر وقطعه كافة وا نشاء الله ستكون وافية وارغب بأن يشاركني الاخوة بالاسئلة وانا انشاء الله بالخدمة ولا ننسى ان هذا علم ولا اريد ان اتكلم حول فضيلة العلم ولا ننسى بأن هذا المنتدى الجميل يستحق بأن يكون من افضل المنتديات فأرجو المشاركة ولكم جزيل الشكر

    ملا حظة : ستكون الدروس من عشرون حلقة دراسية او اكثر انشاء الله تعالى

    منتصر



    اجمل لعبة متصفح للعب عبر الانترنت اضغط على الرابط


    أو

  2. #2
    تاريخ التسجيل
    Nov 2003
    المشاركات
    281
    شكرا لك وبارك الله بك


    :=
    تحياتي

  3. #3
    تاريخ التسجيل
    Feb 2003
    الدولة
    الــكويــت
    المشاركات
    1,184

    افتراضي

    [align=center]ههههههههههههههههههههههههههههههههههههههههه
    أهم شي دوراتك و دروسك مجانا
    :D::

    و ان شاء الله أنا راح ادرس التصميم الآلي في الكبيوميوتر
    و عسى أقدر أفيدكم مستقبلا
    و شكرا مقدما على الدروس اللي ما شرحتها و مؤخرا على الدرس الأول
    تحياتي [/align]

  4. #4
    تاريخ التسجيل
    Feb 2004
    المشاركات
    360

    افتراضي الدرس الاول

    المعالج

    المعالج عبارة عن القلب النابض للحاسوب فهو يقوم بتنفيذ الاوامر والبرامج المكتوبة بلغة الماكنة فقط. هنالك عدة شركات تنتج معالجات منها شركة انتل التي انتجت معالجات 8086 وغيرها. في هذه الدروس سوف يتم التعامل مع المعالج 8086.



    الذاكرة

    تستخدم الذاكرة لتخزين البيانات بها . وتقسم الذاكرة الى عدة اقسام اهمها ذاكرة القراءة فقط (ROM) بحيث يمكن القراءة منها ولا يمكن الكتابة عليها وعند انقطاع التيار الكهربائي تبقى البيانات مخزنة فيها.

    ملاحظة: هنالك انواع من هذه الذاكرة التي تسمح بالكتابة عليها بمساعدة اجهزة خاصة ومنها من يسمح بالكتابة عليها بمساعدة برامج خاصة.



    ذاكرة الوصول العشوائي (RAM): هي ذاكرة للتخزين المؤقت وعند انقطاع التيار الكهربائي عنها تمحى البيانات الموجودة فيها.



    تتكون الذاكرة من خلايا. لكل خلية عنوان (address ) وفحوى وكل خلية تتكون من 8 بتات أي بطول بايت واحد ويمكن تخزين رمزا واحدا فقط في كل خلية. عنوان الخلية الاولى في الذاكرة هو صفر (0)





    وحدات الذاكرة

    1-البت (bit) وهي اصغر وحدة تخزين بحيث تسمح بتخزين 1 أو 0 (1 , 0)

    2-النيبل (nibble): وهي 4 بتات

    3-بايت (byte): وهو عبارة عن 8 بتات ويمكن تخزين رمزا واحدا فقط . الرموز هي كل ما يمكن كتابته على لوحة المفاتيح ورؤيته على الشاشة. ولكل رمز يوجد قيمة عددية تقابله واذا اردنا معرفة قيمة رمز معين ننظهر في جدول ASCII فهو يحتوي على الرموز والقيم العددية المقابلة لكل رمز

    4-كلمة (word) وهي عبارة عن 16 بتا (16 bits)

    5-الكلمة المزدوجة (Double word) وهي عبارة عن 32 بتا (32 bits)

    6-كيلو بايت (kilo byte): وهي عبارة عن 1024 بايت (1024 byte)

    7-ميجا بايت (mega byte): وهي عبارة عن 1024 كيلو بايت

    وهنالك وحدات اخرى ولكن لا نريد ان نتطرق اليها لانها ليست مهمة في تدريس هذا الموضوع





    الناقل bus

    الناقل: هو عبارة عن مجموعة من الاسلاك التي تقوم بنقل بيانات بين المعالج والذاكرة ووحدات الادخال والاخراج

    وحدات الادخال :بمساعدتها يمكن ادخال البيانات للمعالج مثل لوحة المفاتيح الفارة وغيرها

    وحدات الاخراج: بعد معالجة البيانات في المعالج يقوم المعالج باخراج النتائج على وحدات الاخراج ومنها الشاشة والطابعة وغيرها



    1-ناقل العناوين (Address bus): بمساعدتها يختار المعالج خلية الذاكرة او وحدة الادخال او وحدة الاخراج المطلوبة .

    2-ناقل البيانات (Data bus): بمساعدتها يتم ارسال او استقبال البيانات

    3-خطوط السيطرة (control lines): تستخدم لتنظيم العمليات في الحاسوب مثل اختيار عملية القراءة او اختيار عملية الكتابة وغيرها



    مكونات المعالج

    1-وحدة الحساب والمنطق (ALU) Arithmetic –loic unit : وهي احدى مكونات المعالج وهي تقوم بجميع العمليات الحسابية (جمع ، طرح، ضرب، قسمة) وجميع العمليات المنطقية مثل او ، وايضا وغيرها (OR , AND) والعمليات الخاصة بالتعامل مع البتات



    2-مسجل الرايات (flags register): هو من مكونات المعالج ويحتوي على 16 بتا وكل بت يحتوي على القيمة 0 او 1 وهذه القيمة تعطي معلومة اضافية عن العملية الاخيرة التي قام بها المعالج



    3-المسجلات (registers):وظيفة المسجلات الحفظ المؤقت للبيانات لكل مسجل اسم ووظيفة خاصة به

    ملاحظة هنالك مكونات اخرى للمعالج مثل (command decoder) ، (instruction queue) , (address buffer)



    لغات البرمجة

    يمكن تقسيم لغات البرمجة الى عدة اقسام منها

    -لغة الماكنة (machine language): وهي اللغة الوحيدة التي يفهما المعالج وهي تتكون من (0 , 1) تمتاز هذه اللغة بالسرعة ولكنها صعبة للبرمجة



    -لغة التجميع (assembly language): وهي عبارة عن اختصارات خاصة يستعملها المبرمج لبرمجة المعالجات تمتاز بالسرعة وايضا اقل صعوبة من لغة الماكنة. على المبرمج ان يعرف اقسام واسماء مكونات المعالج. لكل عائلة من المعالجات لها اختصارات خاصة بها.



    -لغات عليا (high level language): وهي تتكون من كلمات قريبة على لغة الانسان تمتاز بسهولة البرمجة ولكنها بطيئة بالنسبة للغة الماكنة والتجميع. مثل اللغات C , C++ , visual basic



    ملاحظة: عند كتابة برنامج بلغة التجميع او بلغة عليا نحتاج الى مترجم (compiler) يقوم بترجمة البرنامج الى لغة الماكنة حتى يفهمها المعالج



    لغة اسمبلي ، اسمبلر و اسمبلي

    لغة اسمبلي (assembly language) : هي لغة التجميع

    -اسمبلر (assembler): هو المترجم (compiler) وهو عبارة عن برنامج يقوم بتحويل البرامج التي تكتب بلغة التجميع الى لغة الماكنة

    -اسمبلي (assembly): وهي عملية تحويل برنامج مكتوب بلغة التجميع بمساعدة الاسمبلر الى لغة الماكنة





    الموازين

    في لغة التجميع نتعامل مع 3 موازين

    1-الميزان الثنائي: يتكون من الرموز 0 , 1 فقط ومن هنا الاسم ثنائي بقدر عدد الرموز التي يحق استعمالها

    امثلة:

    11011100 , 10001000

    لكل بت توجد قيمة مثل الميزان العشري خانة الاحاد خانة العشرات خانة المئات وغيرها هنا القيم كما يلي:

    البت القيمة
    الاولى 1
    الثانية 2
    الثالثة 4
    الرابعة 8
    الخامسة 16
    السادسة 32
    السابعة 64
    الثامنة 128



    نرى ان قيمة البت في الميزان العشري تساوي 2 للقوة (مكان البت ناقص 1)

    البت الموجودة في جهة اليمين هي البت ذات القيمة الصغرى والبت الموجودة في اقصى اليسار تدعى البت ذات القيمة الكبرى



    2-الميزان العشري : يتكون من الرموز 0,1,2,3,4,5,6,7,8,9 اذا هنا نرى ان عدد الرموز هو 10 ومن هنا الاسم

    امثلة: 123 ,234, 567

    3-ميزان السادس عشر (hexa): يتكون من الرموز 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F

    امثلة



    1A2 , 111, DE1



    قيم خانات العدد

    الخانة القيمة
    الاولى 1
    الثانية 16
    الثالثة 256



    القانون العام:

    قيمة الخانة في الميزان العشري=16 للقوة (مكان الخانة ناقص 1)

    امثلة

    الميزان الثنائي
    الميزان العشري

    10001000
    136

    101
    5




    وهنا شرح الربط بين الموازين

    العشري
    الثنائي
    السادس عشر

    0
    0000
    0

    1
    0001
    1

    2
    0010
    2

    3
    0011
    3

    4
    0100
    4

    5
    0101
    5

    6
    0110
    6

    7
    0111
    7

    8
    1000
    8

    9
    1001
    9

    10
    1010
    A

    11
    1011
    B

    12
    1100
    C

    13
    1101
    D

    14
    1110
    E

    15
    1111
    F





    كتابة الاعداد في لغة التجميع

    1-الثنائي: العدد المسجل في الميزان الثنائي يكتب عن يمينه الرمز B

    امثلة 10111B , 110B

    2-السادس عشر: العدد المسجل في الميزان السادس عشر يكتب عن يمينه الرمز H

    امثلة: 11H , 12AH , 10H

    3-العشري: يكتب عن يمينه الرمز D او يترك بدون اضافات

    امثلة: 11D , 102 , 100 , 100D





    ملاحظة: اي سؤال اني حاضر ولاتضوجون ترى سهل بس شوي يراد تفكير



    اجمل لعبة متصفح للعب عبر الانترنت اضغط على الرابط


    أو

  5. #5
    تاريخ التسجيل
    Mar 2004
    الدولة
    سوريا
    المشاركات
    66

    افتراضي اخي منتصر

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

    اخي منتصر في الحقيقة سمعت كثيرا عن الاسمبلي لكن لم اتصور انها بهذه الصعوبة فهل بالامكان تسهيلها لنا قليلا وعذرا لك وتمنياتنا لك بالتوفيق .


    ( الله يساعدك يمكن شعرك مشيب مو )


    [align=center]الله لو انت الماني[/align]

    §¤~¤§¤~¤§[move=down][align=center]اتق شر من احسنت اليه .... والاقارب عقارب[/align][/move]§¤~¤§¤~¤§

  6. #6
    تاريخ التسجيل
    Feb 2004
    المشاركات
    360

    افتراضي شكرا اخي الكرخي والاخوة مشرف واحة الرياصة والصور والكمبيوتر

    السلام عليكم

    في الحقيقة اخي الكرخي هذه اللغة صعبة قليلة وكما شرحت في الدرس الاول تحتاج الى تركيز وجد وستتعلمها وشكرا مجددا لك .

    الاخوة المشرفيين :

    شكرا جزيلا لكم وبارك الله فيكم في الحقيقة انا دائم السعي لكي يكون هذا المنتدى منتدى معرفة وشكرا مجددا



    اجمل لعبة متصفح للعب عبر الانترنت اضغط على الرابط


    أو

  7. #7
    تاريخ التسجيل
    Feb 2004
    المشاركات
    360

    افتراضي الدرس الثاني

    بسم الله الرحمن الرحيم

    والصلاة والسلام على اشرف الكائنات محمد وعلى اله الطيبين الطاهرين وعلى بعض اصحابه المنتجبين

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

    ساشرح الدرس الثاني من هذه اللغة الان انشاء الله


    في الحقيقة اسهل معالج للعمل للدراسة هو المعالج 8086 وسندرسه في درسنا هذا وفي الدروس السابقة

    المعالج 8086

    لهذا المعالج 16 ناقل بيانات (data bus) بحيث يسمح بقراءة/كتابة كلمة كاملة 16 بت وايضا يمكن
    قراءة /كتابة نصف كلمة 8 بت
    لهذا المعالج 20 ناقل عناوين (address bus) بحيث يسمح بالتوجه ل- 1 ميغا عناوين.
    وبما ان لكل خلية عنوان خاص اذا يمكن التوجه الى 1 ميغا خلايا ذاكرة
    يوجد في هذا المعالج 14 مسجلا. كل مسجل بطول 16 بت.



    المسجلات

    تقسم المسجلات الى عدة اقسام حسب الوظائف



    المجموعة الاولى: المسجلات العامة وتسخدم هذه المسجلات في العمليات الحسابية والمنطقية والتخزين
    المؤقت للبيانات. تتكون هذه المجموعة من 4 مسجلات. طول كل مسجل 16 بت.


    يمكن تقسيم كل مسجل منها الى قسمين بحيث يكون كل جزء بطول 8 بت. يمكن التوجه الى المسجل باكمله
    او الى جزء من المسجل.


    في حالة التوجه الى المسجل بأكمله فان المسجل باكمله يتأثر واذا توجهنا الى جزء واحد منه فهو
    الذي يتاثر ولكن الجزء الاخر لا يتأثر.



    المسجل الاول يدعى ACCUMULATOR ويرمز له في AX . يقسم هذا المسجل الى قسمين AH و AL.
    كل قسم بطول 8 بت

    Ah Al




    مثال : نفرض ان AX=2030H

    اذا AH=20H و AL=30H

    لو عوضنا 50H في المسجل AL نحصل على AX=2050H أي ان التأثير فقط على AL

    ولكن لو عوضنا 402H في AX

    نحصل على AL=02H و AH=04H

    هنا نرى ان التأثير كان على الجزئين لاننا توجهنا الى AX



    هذه مسجلا ت المجموعة الاولى:

    AX :Accumulator

    BX :Base

    CX: Count

    DX : Data

    ويقسم كل مسجل الى جزئين كالتالي:

    Ah Al

    BH BL

    CH CL

    DH DL



    المجموعة الثانية:

    هي مجموعة تتكون من خمسة مسجلات وطول كل مسجل 16 بت . لا يمكن تقسيم المسجلات الى اجزاء بل نتعامل مع المسجل باكمله والسبب ان هذه المسجلات تحتوي على عناوين وطول كل عنوان 16 بت

    SP

    Bp

    SI

    DI

    IP




    Sp: Stack pointer يؤشر على اخر معطى تم ادخاله الى ال stack . stack هو عبارة عن منطقة في ذاكرة القراءة والكتابة RAM تستخدم للتخزين المؤقت سوف نتطرق لها في دروس قادمة.



    BP: Base pointer يستخدم للتأشير على معطى في داخل ال stack

    SI:Source index يحتوي على عنوان معطى في مقطع البيانات

    DI: Destination Index يحتوي على عنوان معين في مقطع البيانات

    IP: Instruction Pointer يحتوي على عنوان الامر التالي الذي يجب ان ينفذه المعالج بعد انهاء الامر الحالي أي الامر الذي ينفذه حاليا

    ملاحظات:

    -لا يمكن تقسيم أي من هذه المسجلات

    -المقطع هو عبارة عن مكان في الذاكرة طوله الاكبر هو 64 كيلوبايت. يمكن ان يحتوي البرنامج على 4 مقاطع ويمكن اقل حسب الحاجة. المقاطع هي كما يلي:

    1_مقطع ال stack segment

    2-مقطع البيانات Data segmentيحتوي على المتغيرات والثوابت

    3-مقطع البيانات الاضافية extra segment يستخدم لتخزين البيانات الاضافية في حالة اذا لم يكن هنالك مكانا في مقطع البيانات ويمكن ايضا استخدامه حتى ولو كان هنالك اماكن فارغة في مقطع البيانات. سوف نرى ذلك في الدروس المقبلة

    4-مقطع الاوامر code segment يحتوي على اوامر البرنامج



    المجموعة الثالثة:

    مجموعة مسجلات المقاطع وهي تحتوي على عناوين بداية المقاطع وطول كل مسجل 16 بت ولا يمكن تقسيمه أي يجب التعامل معه باكمله.وهي 4 مسجلات (registers)

    CS

    DS

    SS

    ES




    CS: code segment DS:data segment ES: extra segment SS:stack segment



    المجموعة الاخيرة:

    تحتوي على مسجل واحد وهو مسجل الرايات flags registers . وهو بطول 16 بت يمكن التوجه لكل بت على حدة . كل بت تعطي معلومة معينة عن اخر عملية قامت بها وحدة الحساب والمنطق في المعالج .



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



    -رايات غير مستعملة أي انها لا تفيد في الحكم على اخر عملية وهي موجودة فقط في حالة تطوير المعالج ربما يحتاجون الى رايات اضافية فيمكن استغلال هذه الرايات. في الوقت الحالي نحن لسنا بحاجة اليها



    -رايات الوضع: وهي الرايات التي تتأثر وتتغير حسب وضع العمليات التي تقوم بها وحدة الحساب والمنطق في المعالج



    -رايات السيطرة: وهي رايات المبرمج يتحكم بوضعها فاذا وضع بداخلها القيمة 1 تبقى هذه القيمة حتى يغيرها المبرمج في البرنامج عن طريق اوامر برمجة خاصة بها



    مسجل الرايات في المعالج 8086 يحتوي على 7 رايات غير مستخدمة 6 رايات وضع و 3 رايات سيطرة

    X X X X OF DF IF TF SF ZF X AF X PF X CF



    كل راية تحتوي على الاشارة X فهي غير مستخدمة


    وهنا لصعوبة رسم الحدول سندرج البيانات كل الاتي
    الرمز
    اسم الراية
    النوع
    ملاحظات

    CF
    Carry flag
    وضع
    يأخذ 1 اذا اعطت البت الاخيرة عن اليسار 1 الى الخارج او اخذت 1 من الخارج والا يأخذ صفر

    PF
    Parity flag
    وضع
    اذا كان عدد ال 1 في اول 8 بتات من النتيجة زوجي تأخذ هذه الراية 1 والا تأخذ صفر

    AF
    Auxiliary flag
    وضع
    اذا اعطت البت الرابعة البت الخامسه 1 او اخذت البت الرابعة من البت الخامسة 1 تأخذ هذه الراية 1 والا صفر

    ZF
    Zero flag
    وضع
    اذا كانت النتيجة صفر تأخذ هذه الراية 1 والا تأخذ صفر

    SF
    Sign flag
    وضع
    اذا كانت النتيجة سالبة تأخذ هذه الراية القيمة1 والا تأخذ القيمة صفر

    TF
    Trap flag
    سيطرة
    اذا وضع المبرمج بها القيمة 1 يتم تنفيذ امر واحد فقط من الاوامر وبعدها تأخذ القيمة صفر

    IF
    Interrupt flag
    سيطرة
    نضعه 1 للسماح لعمليات interrupt في مدخل interrupt للمعالج

    DF
    Direction Flag
    سيطرة
    لتحديد اتجاه الحركة في حالة قراءة النصوص

    OF
    Overflow flag
    وضع
    تأخذ 1 اذا كانت النتيجة اكبر من المكان المخصص لحفظها والا تأخذ صفر

    وصلى الله على محمد وعلى اله الطاهرين

    وكما قلت بالمشاركات يكون العلم اسهل وافضل



    منتصر



    اجمل لعبة متصفح للعب عبر الانترنت اضغط على الرابط


    أو

  8. #8
    تاريخ التسجيل
    Feb 2004
    المشاركات
    360

    افتراضي الدرس الثالث من الاسمبلي

    [align=center]بسم الله الرحمن الرحيم
    والصلاة والسلام على سيد الكائنات والمرسلين محمد واله الطاهرين .
    السلام عليكم
    ارفق لكم الدرس الثالث من الاسمبلي متمني منكم المشاركة وبارك الله فيكم [/align]



    الموازيين الثلاث الرئيسية

    هنالك العديد من الموازين ولكن ما يهمنا الان هو

    1-الميزان الثنائي: رموز هذا الميزان 1 , 0 وبمساعدة هذه الرموز يتم تكوين الاعداد في هذا الميزان

    مثلا: هذه اربعة اعداد في الميزان الثنائي

    1001 0101 1100110 101010




    الاعداد التالية غير صحيحة لان بها رموز لا تنتمي لرموز الميزان

    العدد السبب

    102 لان الرمز 2 ليس من رموز الميزان

    11013 بسبب الرمز 3 فهذا الرمز لا يتبع لرموز الميزان




    2-الميزان العشري : رموز هذا الميزان 0,1,2,3,4,5,6,7,8,9 وكما نلاحظ عددها 10 رموز

    امثلة: 201 , 100 , 532 , 1234



    الاعداد التالية غير صحيحة لان بها رموز لا تنتمي لرموز الميزان

    العدد السبب

    10A2 لان الرمز A ليس من رموز الميزان

    11013F بسبب الرمز F فهذا الرمز لا يتبع لرموز الميزان






    3-الميزان السادس عشر: رموز هذا الميزان 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F

    امثلة:

    217 , 2A3 , 5FA1 , FF , 101



    الاعداد التالية غير صحيحة لان بها رموز لا تنتمي لرموز الميزان

    العدد السبب

    102G لان الرمز G ليس من رموز الميزان

    1101K3 بسبب الرمز K فهذا الرمز لا يتبع لرموز الميزان






    التحويل بين الموازين

    لتحويل أي عدد في أي ميزان الى الميزان العشري نعمل ما يلي:

    1-نحول العدد المراد تحويله الى صورة مجموع القوى

    2-نجمع القيم للحصول على القيمة المطلوبة



    القانون العام لصورة قانون مجموع القوى

    X=an*bn-1+an-1*bn-2+….+a1*b0



    ملاحظة:أي عدد للقوة صفر = واحد

    ما عدا الصفر

    لذلك b0=1

    مثال: حول العدد 1101)) في الميزان الثنائي الى الميزان العشري

    الحل: هنا n=4 b=2

    X=1*23+1*22+0*21+1*20

    X=1*8+1*4+0*2+1*1

    X=8+4+0+1

    X=13

    اذا

    الميزان الثنائي

    العشري

    (1101)2=(13)10











    مثال اخر معطى العدد 1A في الميزان السادس عشر جد قيمة هذا العدد في الميزان العشري.

    هنا: b=16 n=2

    X=1*161+A*160

    X=1*16+10*1

    X=16+10

    X=26

    ملاحظة:

    العشري السادس عشر

    10 A

    11 B

    12 C

    13 D

    14 E

    15 F




    مثال اخر

    حول العدد 2F الى الميزان العشري

    X=2*161+F*160

    X=2*16+15*1

    X=32+15

    X=47

    (2F)16=(47)10

    التحويل من الميزان 16 الى الميزان 2

    كل خانة في ميزان السادس عشر عبارة عن 4 خانات في الميزان الثنائي

    لفهم عملية التحويل يجب ان نعرف ما يلي:

    لكل خانة يوجد وزن ووزنها هو الاساس للقوة المكان ناقص واحد

    أي bn-1

    في الجدول التالي قيم الخانات في الميزان الثنائي b=2

    الاولى الثانية الثالثة الرابعة الخامسة السادسة السابعة الثامنة
    1 2 4 8 16 32 64 128




    في الجدول التالي قيم الخانات في الميزان العشري b=10

    الاولى الثانية الثالثة الرابعة الخامسة السادسة السابعة الثامنة

    1 10 100 1000 10000 105 106 107




    في الجدول التالي قيم الخانات في الميزان السادس عشر b=16

    الاولى الثانية الثالثة الرابعة الخامسة السادسة السابعة الثامنة

    1 16 256 4096 164 165 166 167


    الجدول التالي يربط بين الميزان السادس عشر والثنائي

    تذكر كل خانة في الميزان السادس عشر عبارة عن 4 خانات في الميزان الثنائي

    العشري ا لميزان الثنائي السادس عشر


    الخانة الاولى الخانة الثانية الخانة الثالثة الخانة الرابعة



    1 2 4 8

    0 0 0 0 0 0

    1 1 0 0 0 1

    2 0 1 0 0 2
    3 1 1 0 0 3
    4 0 0 1 0 4
    5 1 0 1 0 5

    6 0 1 1 0 6

    7 1 1 1 0 7

    8 0 0 0 1 8

    9 1 0 0 1 9

    10 0 1 0 1 A

    11 1 1 0 1 B
    12 0 0 1 1 C
    13 1 0 1 1 D
    14 0 1 1 1 E
    15 1 1 1 1 F



    معطى العدد 12 في الميزان السادس عشر جد قيمته في الميزان الثنائي

    1 2


    0001 0010





    اذا الجواب النهائي هو 00010010

    (12)16=(00010010)2

    الجدول السابق يصلح للتحويل من السادس عشر الى الميزان الثنائي وبالعكس

    مع مراعاة الملاحظة الاولى الا وهي ان كل 4 خانات في الميزان الثنائي عبارة عن خانة في الميزان السادس عشر



    امثلة:

    معطى العدد 10110011 في الميزان الثنائي جد العدد في الميزان السادس عشر

    الحل:

    نعمل مجموعة كل مجموعة عبارة عن 4 خانات نبدأ دائما من اليمين

    المجموعة الاولى: 0011 وحسب الجدول هي الرقم 3

    المجموعة الثانية: 1011 وحسب الجدول هي B

    الحل النهائي:

    (10110011)2=(B3)16

    ملاحظة مهمة: اذا كان عدد الخانات اقل من 4 نضيف اصفار على يسار العدد حتى نكمل المجموعة الى 4 خانات

    مثال:

    معطى العدد التالي في الثنائي 1010110 جد العدد في السادس عشر

    المجموعة الاولى: 0110 وحسب الجدول هذه 6

    المجموعة الثانية : 101 وهي تتكون من 3 خانات لذا علينا ان نضيف 0 على يسار المجموعة لنحصل على 4 خانات

    المجموعة الجديدة: 0101 وحسب الجدول هي 5

    الحل النهائي

    1010110)2=(53)16)



    التحويل من العشري الى الميزان الثنائي

    لفهم الطريقة علينا الاتفاق على الاشياء التالية:

    -الخانة الاولى هي الخانة اليمنى وهي ذات القيمة الصغرى وقيمتها 20=1

    الخانة التي تليها هي الخانة الثانية وهي تقع على يسارها وهكذا

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

    نقوم الان بكتابة الألغوريثم

    1. عوض n=1

    2. عوض المقسوم عليه b=2

    3. عوض العدد العشري في المقسوم x

    4. طالما x اكبر او يساوي b نفذ

    4.1 قسم x على b

    4.2 ضع الباقي في الخانة n

    4.3 ضع في x الناتج الصحيح

    4.4 اضف 1 لرقم الخانة n

    5.ضع X في الخانة n



    مثال:

    معطى العدد 12 عشري حول العدد الى الميزان الثنائي

    الحل:

    العدد الناتج الصحيح الباقي هل X>=b العدد الثنائي رقم الخانة n
    1
    12
    نعم
    6 0 0 2
    6 نعم


    3 0 00 3
    3 نعم


    1 1 100 4
    1 لا

    1100




    طريقة اخرى نقسم على 2 حتى يكون الناتج صفر

    مثال:

    معطى العدد العشري 57 حول العدد الى الثنائي

    المقسوم المقسوم عليه الناتج الصحيح الباقي

    57 2 28 1
    28 2 14 0
    14 2 7 0
    7 2 3 1
    3 2 1 1
    1 2 0 1






    الان نكتب العدد نبدأ من الاسفل

    111001

    ملاحظة اذا اردنا تحويل عدد عشري الى الميزان السادس عشر نعمل نفس الشيء ولكن بدلا من b=2 يكون b=16

    مع مراعاة الجدول السابق

    A=10 b=11 C=12 D=13 E=14 F=15

    مثال :

    حول العدد 254 الى الميزان السادس عشر



    المقسوم المقسوم عليه الناتج الصحيح الباقي

    254 16 15 14
    15 16 0 15




    عند تسجيل العدد نتذكر الجدول E=14 F=15

    الجواب النهائي

    (254)10=(FE)16



    طريقة اخرى هي الانتقال من الميزان العشري الى الثنائي وبعدها من الثنائي الى السادس عشر

    طريقة اخرى لتحويل العدد من العشري الى الثنائي هي كما يلي:

    نحن نعرف ان لكل خانة قيمة حسب قانون bn-1

    اذا نظرنا بتمعن نجد ان قيمة الخانة التالية هي دائما قيمة الخانة الحالية مضروبة بالعدد 2

    عند تحويل عدد عشري نبدأ بتسجيل القيم حتى الحصول على قيمة خانة تساوي العدد المطلوب او اكبر منه مثال:

    حول العدد 104 الى الميزان الثنائي

    الاولى الثانية الثالثة الرابعة الخامسة السادسة السابعة الثامنة

    1 2 4 8 16 32 64 128


    نحن هنا بحاجة الى 8 خانات لان 104 اكبر من 64 واصغر من 128

    الحل الان كما يلي:

    نبدأ من اليسار ونسأل السؤال هل قيمة الخانة اقل او تساوي العدد الذي معنا اذا كان الجواب نعم نضع القيمة 1 تحت الخانة ونطرح من العدد قيمة الخانة وننتقل الى الخانة التي عن يمينها والا نضع 0 تحت الخانة ولا نطرح شيء وننتقل الى الخانة التي عن يمينها وهكذا

    الاولى الثانية الثالثة الرابعة الخامسة السادسة السابعة الثامنة

    1 2 4 8 16 32 64 128


    -هل 128 اصغر او تساوي 104 الجواب كلا اذا نضع صفر

    -هل 64 اصغر او تساوي 104 الجواب نعم اذا نضع 1 ونطرح 64 يبقى معنا 40

    - هل 32 اصغر او تساوي 40 الجواب نعم اذا نضع 1 ونطرح 32 يبقى معنا 8

    -هل 16 اصغر او تساوي 8 الجواب الجواب لا اذا نضع صفر

    -هل 8 اصغر او تساوي 8 الجواب نعم اذا نضع 1 ونطرح 8 يبقى معنا صفر

    -هل 4 اصغر او تساوي 0 الجواب كلا اذا نضع صفر

    -هل 2 اصغر او تساوي 0 الجواب كلا اذا نضع صفر

    -هل 1 اصغر او تساوي 0 الجواب كلا اذا نضع صفر

    الحل النهائي

    الاولى الثانية الثالثة الرابعة الخامسة السادسة السابعة الثامنة

    1 2 4 8 16 32 64 128

    0 0 0 1 0 1 1 0



    الحل النهائي

    (104)10=(01101000)2

    ملاحظة: جميع الطرق التي تم شرحها في هذا الدرس تناسب الاعداد الموجبة فقط

    الاخوة الاعزاء يرجى المشاركةفي الدروس واي سؤال انا حاضر



    اجمل لعبة متصفح للعب عبر الانترنت اضغط على الرابط


    أو

  9. #9
    تاريخ التسجيل
    Feb 2004
    المشاركات
    360

    افتراضي الدرس الرابع

    بسم الله الرحمن الرحيم

    والسلام عليكم ورحمة الله
    وتكلمة لوعدي اضع الدرس الرابع ارجوا القبول


    الاعداد الموجهة ( السالبة والموجبة )

    تقسم الاعداد الى قسمين اعداد موجبة واعداد سالبة والسؤال هو كيف يمكن
    ان نفرق بين هذه الاعداد. من المعروف ان العدد في الميزان الثنائي يتكون
    من بتات . البت الاولى الموجودة في الجهة اليمنى هي البت ذات القيمة
    الصغرى واما البت الموجودة في الجهة اليسرى فهي بت الاشارة . اذا كانت
    قيمتها 1 فالعدد سالب واذا كانت قيمتها 0 فالعدد موجب.

    اذا لمعرفة نوع العدد يجب تحويله الى الميزان الثنائي. ولكن هنالك طرق
    اخرى يمكن بمساعدتها معرفة نوع العدد . في البداية نركز على الطريقة
    الاولى.

    مثال: معطى المتغير X من نوع byte . x=7DH هل قيمة المتغير قيمة موجبة
    ام سالبة؟ الرمز H يدل على الميزان السادس عشر

    الحل :

    اولا علينا ان نحول العدد الى الميزان الثنائي

    7DH=011111012

    اذا نظرنا الى البت الاخيرة في الجهة اليسرى نرى ان قيمتها 0 لذلك قيمة
    المتغير موجبة.

    مثال اخر

    X=92H

    92H=10010010 القيمة سالبة لان البت الاخيرة المسؤلة عن الاشارة
    قيمتها 1 استنتاج : اكبر قيمة موجبة للمتغير x هي 01111111 وهي تساوي
    7FH وهي تساوي 127 عشري



    الاعداد السالبة

    معطى ان المتغير x= -6 في الميزان العشري سجل العدد في الميزان الثنائي
    والميزان السادس عشر

    الحل:

    حسب المعطيات فان المتغير x من نوع byte اذا سوف نستخدم 8 بتات

    الخطوة الاولى: نكتب القيمة المطلقة (العدد الموجب) للمتغير في الميزان
    الثنائي حسب ما تعلمناه في الدروس السابقة:

    الاولى الثانية الثالثة الرابعة الخامسة السادسة السابعة الاشارة
    1 2 4 8 16 32 64 0

    1 1 0 0 0 0 0




    اذا

    6)10=(00000110)2)



    الخطوة الثانية : نبدأ بكتابة العدد من جهة اليمين كما هو حتى ان نصادف
    خانة قيمتها واحد فنسجلها ونعكس كل الخانات التي بعدها (أي نسجل بدلا
    من 1 صفر وبدلا من صفر 1)

    (-6)10=111110102=(FA)16


    طريقة اخرى هي كما يلي:

    -نحول القيمة المطلق للقيمة السالبة في الميزان السادس عشر

    610=(06)16 لقد سجلنا 06 لاننا بحاجة الى 8 بتات

    -الخطوة الثانية نطرح 06 من الصفر والسبب هو

    -6=0-6

    اذا:


    00
    -
    06
    -----


    0 ناقص 6 لا يجوز تأخذ الصفر الاولى 16 من الصفر الثانية 16 ناقص 6
    تساوي 10 عشري وهي A في الميزان السادس عشرالصفر الثانية اعطت الصفر
    الاولى لهذا السبب هي الان -1 فتأخذ 16 الان 16-1 يبقى معها 15 الان 15-0=15 وهي تساوي F في الميزان السادس عشر

    الجواب النهائي

    -6=(FA)16=(11111010)2


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



    اجمل لعبة متصفح للعب عبر الانترنت اضغط على الرابط


    أو

  10. #10
    تاريخ التسجيل
    Jul 2003
    الدولة
    طائر لا أرتضي الأرض مسكنا
    المشاركات
    4,759

    افتراضي

    أحسنت أخي منتصر على هذه المعلومات القيمة و المفيدة.
    نرجو منك الأستمرار لتعم الفائدة.
    و شكراً جزيلاً لك
    =X:

  11. #11
    تاريخ التسجيل
    Feb 2004
    المشاركات
    360

    افتراضي عفوا

    بسم الله الرحمن الرحيم

    السلام عليكم

    الاخ صفاء عفوا وانا خدام الطيبين

    منتصر



    اجمل لعبة متصفح للعب عبر الانترنت اضغط على الرابط


    أو

  12. افتراضي كتب حول لغة الاسمبلي

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

    الكتاب العربي:
    الجزء الاول

    http://www.al-waeli.com/Books/Asm/assemply_part1.rar

    الجزء الثاني

    http://www.al-waeli.com/Books/Asm/assemply_part2.rar

    الكتاب الانكليزي

    http://www.al-waeli.com/Books/Asm/Th...f_Assembly.rar

    مع امنياتي القلبية لكم بالموفقية

  13. #13
    تاريخ التسجيل
    Feb 2004
    المشاركات
    360

    افتراضي شكرا

    بسم الله الرحمن الرحيم

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

    الاخ وادي السلام المحترم

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

    منتصر



    اجمل لعبة متصفح للعب عبر الانترنت اضغط على الرابط


    أو

  14. افتراضي

    السلام عليكم ورحمة الله وبركاته
    اغاتي منتصر انا بالخدمة، ولا داعي للشكر فزكاة العلم نشره عيوني انته.
    اتمنى عليكم ان تخبروني عن اي كتاب تحتاجون اليه وساكون بخدمتكم انشاء الله دوما وابدا.
    اقترح عليكم وعلى الاخوة في المنتدى انشاء واحة للكتب سواء العلمية منها ام الدينية او اي نوع اخر من الكتب لكي نفتح الافاق امام احبتنا في الاطلاع عليها، او يمكن لطالب العلم من توجيه نداء الى الاخوة الزائرين حول اسم الكتاب الذي يحتاج اليه.
    كذلك يمكننا واياكم في المستقبل القريب انشاء الله فتح ما يسمى بال HUB في برنامج ال DC++ لكي نقوم بنشر ليس فقط الكتب وانما افلام البرامج التعليمية، على سبيل المثال فلم تعليم الفوتوشوب وغيرها من الافلام التعليمية الجيدة جدا والتي تختصر الوقت على طالب العلم.

    ارجو دراسة الاقتراحات واعلامي، وانا بخدمتكم انشاء الله.

    اخوكم / وادي السلام

    [align=center]أعلمتم أن التشيع مذهبي * إني أقول به ولست بناقض
    إن كان رفضا حب آل محمد * فليشهد الثقلان أني رافضي [/align]

  15. #15
    تاريخ التسجيل
    Jul 2004
    الدولة
    هناك
    المشاركات
    28,205

    افتراضي

    جهد مبارك اخي منتصر

    بالحقيقة انا درست مادة assembly language وهي من أصعب مواد البرمجة. حتى حصلت على c+ :) دوختني

    آمل أن تعم الفائدة ويفهم الجميع . وعندي إقتراح اذا سمحتوا . من الواضح انكم متخصصين في مواد البرمجة من الشرح فيا حبذا تشرحوا كذلك برنامج oracle لأنه المنتشر الان تقريباً وتستخدمه الشركات للبرمجة وخصوصا في مواقع الانترنت والاسيمبلي لا يستخدم الان.

    ولكن الذي يريد تعلم مواد البرمجة لا بد له من تعلم الاساسيات مثل البرنامج الذي تشرحه الان وغيره منpascal , c++ ,visual basiv

    بارك الله في جهودكم وفي خدمتكم ان شاء الله
    يا محوّل الحول والاحوال ، حوّل حالنا إلى أحسن الحال......








صفحة 1 من 3 123 الأخيرةالأخيرة

ضوابط المشاركة

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