LLVM-MC(1) LLVM LLVM-MC(1)

llvm-mc - محیط آزمایش و پردازش کُد ماشین LLVM

llvm-mc [options] [filename]

دستور llvm-mc کُد اسمبلی را برای یک معماری تعیین‌شده به عنوان ورودی دریافت کرده و یک فایل شیء (object file) یا فایل اجرایی تولید می‌کند.

دستور llvm-mc مجموعه‌ای از ابزارها را برای کار با کُد ماشین فراهم می‌آورد؛ از جمله کدگذاری دستورالعمل‌ها و نمایش بازنمودهای داخلی آن‌ها، دیزاسمبل کردن رشته‌ها به بایت‌ها و غیره.

انتخاب معماری برای کُد اسمبلی خروجی به‌طور خودکار از فایل ورودی تعیین می‌شود، مگر اینکه از گزینهٔ --arch برای لغو و جایگزینی مقدار پیش‌فرض استفاده شود.

چنانچه گزینهٔ -o مشخص نشود، در صورتی که ورودی از ورودی استاندارد خوانده شود، llvm-mc خروجی خود را به خروجی استاندارد ارسال خواهد کرد. اگر برای گزینهٔ -o مقدار "-" تعیین شود، خروجی باز هم به خروجی استاندارد فرستاده خواهد شد.

اگر هیچ گزینهٔ -o مشخص نشده باشد و فایلی ورودی غیر از "-" تعیین شده باشد، llvm-mc نام فایل خروجی را از روی نام فایل ورودی، با حذف هرگونه پسوند .s موجود و افزودن پسوند .o ایجاد می‌کند.

سایر گزینه‌های llvm-mc در ادامه شرح داده شده‌اند.

نمایش گزینه‌های موجود (برای گزینه‌های بیشتر از --help-hidden استفاده کنید).
استفاده از <filename> به عنوان نام فایل خروجی. برای جزئیات بیشتر به خلاصهٔ بالا مراجعه کنید.
معماری مقصد برای اسمبل کردن؛ برای مشاهدهٔ اهداف در دسترس -version را ببینید.
اعمال تحلیل‌گر لغوی ("lexer") اسمبلر برای شکستن ورودی به توکن‌ها و چاپ هر یک از آن‌ها. این گزینه برای کمک به توسعه و آزمایش پیاده‌سازی یک اسمبلر در نظر گرفته شده است.
اسمبل کردن فایل اسمبلی (پیش‌فرض) و چاپ نتیجه به صورت اسمبلی. این گزینه برای طراحی و آزمایش پارسرهای دستورالعمل کاربرد دارد و در صورت ترکیب با سایر پرچم‌های llvm-mc می‌تواند ابزار مفیدی باشد. برای مثال، این گزینه برای تبدیل کُد اسمبلی میان گویش‌های مختلف کاربردی است؛ مثلاً در معماری Intel که می‌توانید از -output-asm-variant=1 برای ترجمه از نحو AT&T به نحو اسمبلی Intel استفاده کنید. همچنین می‌توان آن را با --show-encoding ترکیب کرد تا چگونگی کدگذاری دستورالعمل‌ها مشخص شود.
تجزیهٔ یک رشته از بایت‌های هگزادسیمال و چاپ نتیجه به صورت نحو اسمبلی.
دیزاسمبلِ نشانه‌گذاری‌شدهٔ رشته‌ای از بایت‌های هگزادسیمال.
دیزاسمبلِ رنگیِ رشته‌ای از بایت‌های هگزادسیمال.
نوع فایل خروجی را تعیین می‌کند. تنظیم این پرچم روی asm خروجی ابزار را به صورت متن اسمبلی تولید می‌کند. تنظیم آن روی obj موجب ایجاد یک فایل شیء (object file) می‌شود. تنظیم آن روی null مانع از ایجاد هرگونه خروجی می‌شود و می‌تواند برای اهداف زمان‌سنجی استفاده شود. مقدار پیش‌فرض asm است.
تولید اطلاعات اشکال‌زدایی DWARF برای فایل‌های منبع اسمبلی.
دریافت بایت‌های خام هگزادسیمال به عنوان ورودی برای دیزاسمبل. فاصله‌های خالی نادیده گرفته می‌شوند.
ایجاد دستورالعمل‌های CFI با این فرض که حجم کُد ممکن است بیش از ۲ گیگابایت باشد.
مشخص کردن نامی که باید برای فایل ورودی در نظر گرفته شود.
فعال‌سازی مقداردهنده‌های اولیهٔ اعشاری هگزادسیمال به سبک MASM مانند (3F800000r).
ویژگی‌های خاص معماری مقصد (برای جزئیات بیشتر: -mattr=help).
هدف‌گذاری یک نوع پردازندهٔ خاص (برای جزئیات بیشتر: -mcpu=help).
سه‌گانهٔ مقصد (Target triple) برای اسمبل کردن؛ برای اهداف موجود -version را ببینید.
نام فایل خروجی DWO.
نمایش عملوندهای دستورالعمل‌ها به همان صورت که تجزیه شده‌اند.
نمایش بازنمود داخلی دستورالعمل.
نمایش کدگذاری‌های دستورالعمل.
برچسب‌های موقت دور ریخته نشوند.
تولید R_X86_64_GOTPCRELX به جای R_X86_64_GOTPCREL.
ترجیح دادن قالب هگزادسیمال برای مقادیر فوری (immediate values).
حفظ توضیحات (کامنت‌ها) در اسمبلی خروجی.
گونهٔ نحو مورد استفاده برای چاپ در خروجی. برای نمونه، در اهداف x86 گزینهٔ --output-asm-variant=0 خروجی را با نحو AT&T و --output-asm-variant=1 خروجی را با نحو Intel/MASM چاپ می‌کند.
انتخاب نوع فشرده‌سازی بخش‌های اشکال‌زدایی DWARF.

اگر llvm-mc با موفقیت به پایان برسد، با مقدار 0 خارج خواهد شد. در غیر این صورت، در صورت بروز خطا، با مقداری غیر از صفر خارج می‌شود.

توسط تیم LLVM نگهداری می‌شود (https://llvm.org).

2003-2026, LLVM Project

2026-07-15 22