انجمن‌های فارسی اوبونتو

کمک و پشتیبانی => برنامه‌سازی => نویسنده: electrical ali در 05 آبان 1400، 07:10 ب‌ظ

عنوان: تولید کد MIPS (حل شد)
ارسال شده توسط: electrical ali در 05 آبان 1400، 07:10 ب‌ظ
سلام به همه
من یه برنامه C یا C++ دارم و میخوام به اسمبلی MIPS ببینم چی میشه.
با دستور پایین میتونم اسمبلی رو به فرم اینتل ببینم:
g++ -S fileName.cpp
ولی نمیدونم چجوری تو فرم ISA MIPS میتونم ببینم.
عنوان: پاسخ : تولید کد MIPS
ارسال شده توسط: َUxmlai-ad در 05 آبان 1400، 10:23 ب‌ظ
منظورتون x86 هست یا یه چیز دیگه؟
عنوان: پاسخ : تولید کد MIPS
ارسال شده توسط: electrical ali در 06 آبان 1400، 09:48 ق‌ظ
منظورتون x86 هست یا یه چیز دیگه؟
منظورم ISA MIPS هستش بنظر کمتر استفاده میشه ولی خب دارن دانشگاه همینو بهمون درس میدن :(
عنوان: پاسخ : تولید کد MIPS
ارسال شده توسط: َUxmlai-ad در 06 آبان 1400، 10:15 ق‌ظ
منظورتون از فرم اینتل چیه؟ همون x86 یا یه چیز دیگه؟
عنوان: پاسخ : تولید کد MIPS
ارسال شده توسط: electrical ali در 06 آبان 1400، 12:14 ب‌ظ
منظورتون از فرم اینتل چیه؟ همون x86 یا یه چیز دیگه؟
آره فرم اینتل x86 هستش
عنوان: پاسخ : تولید کد MIPS
ارسال شده توسط: َUxmlai-ad در 07 آبان 1400، 02:24 ب‌ظ
فکر کنم اگه همین کار رو با یک کامپایلر متقابل (cross compiler) انجام بدید بشه
برای اینکار باید یک کامپایلر متقابل برای معماری mips  بسازید
عنوان: پاسخ : تولید کد MIPS
ارسال شده توسط: Dragon- در 07 آبان 1400، 03:04 ب‌ظ
اینجا رو ببینید.
https://github.com/lorenzo2897/c-mips-compiler
عنوان: پاسخ : تولید کد MIPS
ارسال شده توسط: electrical ali در 07 آبان 1400، 10:49 ب‌ظ
فکر کنم اگه همین کار رو با یک کامپایلر متقابل (cross compiler) انجام بدید بشه
برای اینکار باید یک کامپایلر متقابل برای معماری mips  بسازید
کامپایلر ساختن که بلد نیستم راستش ;D
عنوان: پاسخ : تولید کد MIPS
ارسال شده توسط: َUxmlai-ad در 08 آبان 1400، 08:12 ق‌ظ
فکر کنم اگه همین کار رو با یک کامپایلر متقابل (cross compiler) انجام بدید بشه
برای اینکار باید یک کامپایلر متقابل برای معماری mips  بسازید
کامپایلر ساختن که بلد نیستم راستش ;D
نه فقط باید سورسشو کامپایل کنی توی اینترنت بگردی پیدا میشه
عنوان: پاسخ : تولید کد MIPS
ارسال شده توسط: alitoos23 در 10 آبان 1400، 04:37 ب‌ظ
شما برای MIPS باید بسته ی gcc-mips-linux-gnu و
binutils-mips-linux-gnu رو نصب کنید و با ابزار mips-gcc کدتون رو کاپایل کنید اینکه چه فلگ هایی برای بیلد لازم هست بسته نوع پردازنده و شاید احتملا سند لینکر یا چیزی باشه .‌‌در هر حال زمانی که بلید شد فایل خروجی با پسوند elf دریافت می کنید که می تونید با
mipsel-linux-gnu-objdump -D x.o


تو این آدرس هم توضیحات خوبی هست :
https://stackoverflow.com/questions/9916130/how-do-i-disassemble-raw-mips-code (https://stackoverflow.com/questions/9916130/how-do-i-disassemble-raw-mips-code)
عنوان: پاسخ : تولید کد MIPS
ارسال شده توسط: َUxmlai-ad در 10 آبان 1400، 05:21 ب‌ظ
شما برای MIPS باید بسته ی gcc-mips-linux-gnu و
binutils-mips-linux-gnu رو نصب کنید و با ابزار mips-gcc کدتون رو کاپایل کنید اینکه چه فلگ هایی برای بیلد لازم هست بسته نوع پردازنده و شاید احتملا سند لینکر یا چیزی باشه .‌‌در هر حال زمانی که بلید شد فایل خروجی با پسوند elf دریافت می کنید که می تونید با
mipsel-linux-gnu-objdump -D x.o


تو این آدرس هم توضیحات خوبی هست :
https://stackoverflow.com/questions/9916130/how-do-i-disassemble-raw-mips-code (https://stackoverflow.com/questions/9916130/how-do-i-disassemble-raw-mips-code)
بله همین هم خودش یک کامپایلر متقابل هست بعضی وقتا بسته های نصبی برای این جور چیزا یه خورده قدیمی هست به همین خاطر گفتم سورسش رو کامپایل کنید
عنوان: پاسخ : تولید کد MIPS
ارسال شده توسط: electrical ali در 10 آبان 1400، 07:40 ب‌ظ
اینجا رو ببینید.
https://github.com/lorenzo2897/c-mips-compiler
سلام ممنون این لینک کار رو اکی کرد.
عنوان: پاسخ : تولید کد MIPS (حل شد)
ارسال شده توسط: جعفر فرقانلوژ در 13 آبان 1400، 08:54 ق‌ظ
لطفا کلمات زبان های دیگر را با فارسی ترکیب نکنید
عنوان: پاسخ : تولید کد MIPS
ارسال شده توسط: Dragon- در 13 آبان 1400، 03:05 ب‌ظ
سلام ممنون این لینک کار رو اکی کرد.
با موفقیت کد رو تبدیل به اسمبلی mips کرد؟ من خود کامپایلر رو کامپایل کردم و بعد سعی کردم یه hello world ساده به زبان c رو باهاش تبدیل به اسمبلی mips کنم ولی همش خطا داد.