حساب التعبير في المجمع


لا بد لي من cacluate التعبير المعطى
و= (أ+ب)^2*كاليفورنيا
على جهاز عنوان 0،1،2،3.
أحتاج إلى مساعدة بخصوص جهاز عنوان 0، وهل رمز الأجهزة الأخرى صحيح؟

ما حاولت:

0 address machine
     Need help ??????

   1 address machine
       LOAD A
       ADD B
       STORE TEMP
       MUL TEMP
       MUL C
       SUB A
       STORE F

   2 address machine
       MOVE F, A
       ADD F, B
       MUL F, F
       MUL F, C
       SUB F, A

     3 address machine
       ADD F, A, B
       MUL F, F, F
       MUL F, F, C
       SUB F, F, A

الحل 1

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

لذلك نحن بحاجة إليك للقيام بهذا العمل، وسنساعدك عندما تواجهك مشكلة. هذا لا يعني أننا سنقدم لك حلاً خطوة بخطوة يمكنك تسليمه!
ابدأ بشرح موقعك الحالي، وما هي الخطوة التالية في العملية. ثم أخبرنا بما حاولت تنفيذه في الخطوة التالية، وماذا حدث عندما فعلت ذلك.

في الوقت الحالي، علينا أن نضع افتراضات حول “أجهزتك” المختلفة والتي قد تكون صحيحة أو لا – أنا أفهم العديد من المجمعات المختلفة في العالم الحقيقي والتي تستهدف معالجات محددة (أو عائلات المعالجات) وتعمل جميعها بطرق مختلفة: الكود الذي يعمل مع أحدهم سوف يفشل بشدة في الآخر. أنت بحاجة إلى قراءة ما قدمه لك معلمك باعتباره “تعريف رمز الجهاز” لكل نوع من “أنواع أجهزتك” حتى تحصل على رمز العمل الخاص بها. على الرغم من أنه يبدو أن التعليمات البرمجية الثلاثة الخاصة بك يجب أن تعمل، إلا أن ذلك يتضمن بعض الافتراضات الكبيرة جدًا والتي قد لا تكون صالحة بأي شكل من الأشكال لأجهزتك الافتراضية.
على سبيل المثال، لا تحتوي اثنتين على الأقل من عائلات المعالجات في العالم الحقيقي التي يمكنني البرمجة لها على تعليمات مضاعفة على الإطلاق، وواحدة منها لديها تنفيذ مشروط لكل تعليمات على حدة! سيكون رمز التجميع لهذه العناصر مختلفًا تمامًا عن الأمثلة الخاصة بك!

إذا كنت تواجه مشكلات في البدء على الإطلاق، فقد يساعدك هذا: كيفية كتابة التعليمات البرمجية لحل مشكلة، دليل المبتدئين[^]

الحل 2

نظرًا لأن لديك بالفعل إجابة جزئية لحالة جهاز العناوين الثلاثة، فهذا ما أتوقعه منك (تم تكييفه ليناسب بنية المعالج المعنية):

أسم
LOAD A, R1
LOAD B, R2
ADD R1, R2, R3
MUL R3, R3, R4
LOAD C, R5
MUL R4, R5, R6
SUB R6, R1, R7

1) LOAD A, R1: تحميل قيمة A في التسجيل R1.
2) LOAD B, R2: تحميل قيمة B في التسجيل R2.
3) ADD R1, R2, R3: أضف القيم في السجلات R1 و R2 وتخزين النتيجة في التسجيل R3.
4) MUL R3, R3, R4: اضرب القيمة في التسجيل R3 في حد ذاته وتخزين النتيجة في التسجيل R4.
5) LOAD C, R5: تحميل قيمة C في التسجيل R5.
6) MUL R4, R5, R6: اضرب القيم في السجلات R4 و R5 وتخزين النتيجة في التسجيل R6.
7) SUB R6, R1, R7: طرح القيمة في التسجيل R1 من القيمة الموجودة في التسجيل R6 وتخزين النتيجة في التسجيل R7.

コメント

タイトルとURLをコピーしました