تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
1.4.15 الطرح الثنائي - Binary Subtraction
#1
[صورة مرفقة: dark.jpg]
 رحلة في عالم الأسمبلي   dance
 
https://www.youtube.com/playlist?list=PL..._swadKSPga

# الفصل 0 : تمهيد # الفصل 1 : المفاهيم الأساسية في لغة الassembly
 



طرح الأرقام الثنائية الصغيرة غير الموقّعة من الأرقام الكبيرة من السهل إذا تبعت نفس الطريقة التي تتبعها في طرح الأعداد العشرية. إليك مثال:

  0 1 1 0 1   (decimal 13)
- 0 0 1 1 1   (decimal 7)
-----------

Plain text


طرح البتات في الموضع 0 مباشرة:

  0 1 1 0 1
- 0 0 1 1 1
-----------
          0
          
Plain text


في الموضع التالي (1 - 0)، يجب علينا استعارة 1 من الموضع التالي إلى اليسار. إليك نتيجة طرح 1 من 2:

  0 1 0 0 1
- 0 0 1 1 1
-----------
        1 0
        
Plain text


في الموضع التالي، يجب علينا مجدداً استعارة بت من العمود الذي يساره وطرح 1 من 2:

  0 0 0 1 1
- 0 0 1 1 1
-----------
      1 1 0
      
Plain text


وأخيرًا، البتان الأكثر أهمية هما صفران ناقص صفران:


  0 0 0 1 1
- 0 0 1 1 1
-----------
  0 0 1 1 0   (decimal 6)

Plain text


طريقة أبسط للتعامل مع الطرح الثنائي هي عكس علامة القيمة التي يتم طرحها، ثم إضافة القيمتين. تتطلب هذه الطريقة أن يكون لديك بت فارغ إضافي لاحتواء علامة العدد. لنجربها مع نفس المشكلة التي قمنا بحسابها للتو: (01101 ناقص 00111). أولاً، نقلب عدد 00111 بعكس بتاته (11000) ونضيف 1، لنحصل على 11001. بعد ذلك، نقوم بجمع القيم الثنائية ونتجاهل حمل البت الأعلى:


0 1 1 0 1   (+13)
1 1 0 0 1   (-7)
---------
0 0 1 1 0   (+6)

Plain text


النتيجة هي بالضبط ما توقعناه.


 good


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم