11-05-2024, 03:57 PM
رحلة في عالم الأسمبلي
https://www.youtube.com/playlist?list=PL..._swadKSPga
# الفصل 0 : تمهيد # الفصل 1 : المفاهيم الأساسية في لغة الassembly
عند إضافة عددين ثنائيين binary integers، يجب المتابعة bit by bit،
بدءًا من زوج البتات ذو الترتيب المنخفض (على اليمين) وإضافة كل زوج بت بعد الآخر.
هناك أربع طرق لإضافة بتين ثنائيين، كما هو موضح هنا:
إضافة ثنائية عند إضافة صفر إلى صفر، يكون الناتج صفر.
عند إضافة صفر إلى واحد، يكون الناتج واحد.
عند إضافة واحد إلى صفر، يكون الناتج واحد.
عند إضافة واحد إلى واحد، يكون الناتج عشرة.
عند إضافة 1 إلى 1، يكون الناتج 10 ثنائيًا (فكر فيه كقيمة عشرية 2).
البت الإضافي يُولِّد حمولة إلى البت الأعلى في النقطة.
في الشكل التالي، نضيف 00000100 ثنائيًا إلى 00000111:
بدءًا من البت الأقل في كل رقم (موضع البت 0)، نقوم بالجمع لنحصل على 1 في الصف السفلي.
تحدث نفس الشيء في الموضع التالي بالنسبة للبت الأعلى (موضع البت 1).
في موضع البت 2، نقوم بالجمع لنحصل على مجموع صفر وحمولة 1.
في موضع البت 3، نضيف بت الحمولة إلى 1 لنحصل على 1.
البتات الباقية هي صفر.
يمكنك التحقق من الجمع عن طريق إضافة المكافئات العشرية الموضحة على الجانب الأيمن من الشكل.
أحيانًا يتم إنشاء حمولة من الموضع الأعلى للبت.
عندما يحدث ذلك، يصبح حجم المساحة التخزينية المخصصة مهمًا.
على سبيل المثال، إذا قمنا بإضافة 11111111 إلى 00000001، فإن 1 تحمل من الموضع الأعلى للبت، وأقل 8 بتات للمجموع تساوي الصفر.
إذا كان موقع التخزين للمجموع يحتوي على مساحة لا تقل عن 9 بتات، يمكننا تمثيل المجموع كـ 100000000.
ولكن إذا كان المجموع يمكنه تخزين فقط 8 بتات، سيكون يساوي 00000000، وهو أقل 8 بتات من القيمة المحسوبة.
https://www.youtube.com/playlist?list=PL..._swadKSPga
# الفصل 0 : تمهيد # الفصل 1 : المفاهيم الأساسية في لغة الassembly
- 1.0 مقدمة
- 1.1 مرحبًا بك في لغة الAssembly
- 1.2 تطبيقات لغة الassembly
- 1.3 مفهوم الآلة الافتراضية Virtual Machine
- 1.4 تمثيل البيانات - Data Representation
عند إضافة عددين ثنائيين binary integers، يجب المتابعة bit by bit،
بدءًا من زوج البتات ذو الترتيب المنخفض (على اليمين) وإضافة كل زوج بت بعد الآخر.
هناك أربع طرق لإضافة بتين ثنائيين، كما هو موضح هنا:
إضافة ثنائية عند إضافة صفر إلى صفر، يكون الناتج صفر.
عند إضافة صفر إلى واحد، يكون الناتج واحد.
عند إضافة واحد إلى صفر، يكون الناتج واحد.
عند إضافة واحد إلى واحد، يكون الناتج عشرة.
عند إضافة 1 إلى 1، يكون الناتج 10 ثنائيًا (فكر فيه كقيمة عشرية 2).
البت الإضافي يُولِّد حمولة إلى البت الأعلى في النقطة.
في الشكل التالي، نضيف 00000100 ثنائيًا إلى 00000111:
بدءًا من البت الأقل في كل رقم (موضع البت 0)، نقوم بالجمع لنحصل على 1 في الصف السفلي.
تحدث نفس الشيء في الموضع التالي بالنسبة للبت الأعلى (موضع البت 1).
في موضع البت 2، نقوم بالجمع لنحصل على مجموع صفر وحمولة 1.
في موضع البت 3، نضيف بت الحمولة إلى 1 لنحصل على 1.
البتات الباقية هي صفر.
يمكنك التحقق من الجمع عن طريق إضافة المكافئات العشرية الموضحة على الجانب الأيمن من الشكل.
أحيانًا يتم إنشاء حمولة من الموضع الأعلى للبت.
عندما يحدث ذلك، يصبح حجم المساحة التخزينية المخصصة مهمًا.
على سبيل المثال، إذا قمنا بإضافة 11111111 إلى 00000001، فإن 1 تحمل من الموضع الأعلى للبت، وأقل 8 بتات للمجموع تساوي الصفر.
إذا كان موقع التخزين للمجموع يحتوي على مساحة لا تقل عن 9 بتات، يمكننا تمثيل المجموع كـ 100000000.
ولكن إذا كان المجموع يمكنه تخزين فقط 8 بتات، سيكون يساوي 00000000، وهو أقل 8 بتات من القيمة المحسوبة.