15-05-2024, 12:46 PM
رحلة في عالم الأسمبلي
https://www.youtube.com/playlist?list=PL..._swadKSPga
# الفصل 0 : تمهيد # الفصل 1 : المفاهيم الأساسية في لغة الassembly
طرح الأرقام الثنائية الصغيرة غير الموقّعة من الأرقام الكبيرة من السهل إذا تبعت نفس الطريقة التي تتبعها في طرح الأعداد العشرية. إليك مثال:
طرح البتات في الموضع 0 مباشرة:
في الموضع التالي (1 - 0)، يجب علينا استعارة 1 من الموضع التالي إلى اليسار. إليك نتيجة طرح 1 من 2:
في الموضع التالي، يجب علينا مجدداً استعارة بت من العمود الذي يساره وطرح 1 من 2:
وأخيرًا، البتان الأكثر أهمية هما صفران ناقص صفران:
طريقة أبسط للتعامل مع الطرح الثنائي هي عكس علامة القيمة التي يتم طرحها، ثم إضافة القيمتين. تتطلب هذه الطريقة أن يكون لديك بت فارغ إضافي لاحتواء علامة العدد. لنجربها مع نفس المشكلة التي قمنا بحسابها للتو: (01101 ناقص 00111). أولاً، نقلب عدد 00111 بعكس بتاته (11000) ونضيف 1، لنحصل على 11001. بعد ذلك، نقوم بجمع القيم الثنائية ونتجاهل حمل البت الأعلى:
النتيجة هي بالضبط ما توقعناه.
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
- 1.4.1 الأعداد الصحيحة الثنائية - Binary Integers
- 1.4.2 ترجمة الأعداد الثنائية غير الموقعة unsigned binary integer إلى العشرية Decimal
- 1.4.3 ترجمة الأعداد العشرية غير الموقعة Unsigned Decimal إلى البيناري Binary
- 1.4.4 الجمع الثنائي - Binary Addition
- 1.4.5 أحجام تخزين الأعداد الصحيحة Integer Storage Sizes
- 1.4.6 الأعداد الست عشرية - Hexadecimal Integers
- 1.4.7 تحويل العدد الست عشري غير الموقع Unsigned Hexadecimal الى عشري Decimal
- 1.4.8 تحويل العدد العشري غير الموقع Unsigned Decimal إلى الست عشرية Hexadecimal
- 1.4.9 الجمع الست عشري - Hexadecimal Addition
- 1.4.10. الأعداد الصحيحة الثنائية الSigned التمثيل بالمكملين الاثنين Two’s-Complement
- 1.4.11 الbinary intervals للأعداد الsigned و unsigned
- 1.4.12. شرح معمق ل Signed Binary Integers
- 1.4.13 المكملين الاثنين للعدد في النظام الست عشري Hexadecimal Two’s Complement
- 1.4.14 القيم القصوى والدنيا - Ranges and Sizes of Signed Integer Types
- 1.4.15 الطرح الثنائي - Binary Subtraction
- 1.4.1 الأعداد الصحيحة الثنائية - Binary Integers
طرح الأرقام الثنائية الصغيرة غير الموقّعة من الأرقام الكبيرة من السهل إذا تبعت نفس الطريقة التي تتبعها في طرح الأعداد العشرية. إليك مثال:
0 1 1 0 1 (decimal 13)
- 0 0 1 1 1 (decimal 7)
-----------
طرح البتات في الموضع 0 مباشرة:
0 1 1 0 1
- 0 0 1 1 1
-----------
0
في الموضع التالي (1 - 0)، يجب علينا استعارة 1 من الموضع التالي إلى اليسار. إليك نتيجة طرح 1 من 2:
0 1 0 0 1
- 0 0 1 1 1
-----------
1 0
في الموضع التالي، يجب علينا مجدداً استعارة بت من العمود الذي يساره وطرح 1 من 2:
0 0 0 1 1
- 0 0 1 1 1
-----------
1 1 0
وأخيرًا، البتان الأكثر أهمية هما صفران ناقص صفران:
0 0 0 1 1
- 0 0 1 1 1
-----------
0 0 1 1 0 (decimal 6)
طريقة أبسط للتعامل مع الطرح الثنائي هي عكس علامة القيمة التي يتم طرحها، ثم إضافة القيمتين. تتطلب هذه الطريقة أن يكون لديك بت فارغ إضافي لاحتواء علامة العدد. لنجربها مع نفس المشكلة التي قمنا بحسابها للتو: (01101 ناقص 00111). أولاً، نقلب عدد 00111 بعكس بتاته (11000) ونضيف 1، لنحصل على 11001. بعد ذلك، نقوم بجمع القيم الثنائية ونتجاهل حمل البت الأعلى:
0 1 1 0 1 (+13)
1 1 0 0 1 (-7)
---------
0 0 1 1 0 (+6)
النتيجة هي بالضبط ما توقعناه.