تقييم الموضوع :
  • 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)
-----------



طرح البتات في الموضع 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)



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


 good
أعضاء أعجبوا بهذه المشاركة :


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


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