سؤال

أعتقد أنني أعرف كيفية التعامل مع هذه القضية، لكني أريد فقط التأكد من أنني على حق.لنفترض أن لديك رمز C التالي:

int myInt = 3;
int* myPointer = &myInt;
int** mySecondPointer = &myPointer;

يحتوي P على عنوان يشير إلى مكان في الذاكرة له عنوان آخر.أود تعديل العنوان الثاني.إذن رمز MIPS:

la $t0, my_new_address
lw $t1, ($a0) # address that points to the address we want to modify
sw $t0, ($t1) # load address into memory pointed to by $t1

هل هذه هي الطريقة التي ستفعل بها ذلك؟

هل كانت مفيدة؟

المحلول

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

لماذا لم تقم ببساطة بتجميع كود c وإلقاء نظرة على ملف القائمة أو مخرجات التجميع؟أفعل ذلك دائمًا عندما تكون في شك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top