LLVM-MC(1) LLVM LLVM-MC(1) نام (NAME) llvm-mc - محیط آزمایش و پردازش کُد ماشین LLVM خلاصه دستور (SYNOPSIS) llvm-mc [options] [filename] توضیحات (DESCRIPTION) دستور llvm-mc کُد اسمبلی را برای یک معماری تعیین‌شده به عنوان ورودی دریافت کرده و یک فایل شیء (object file) یا فایل اجرایی تولید می‌کند. دستور llvm-mc مجموعه‌ای از ابزارها را برای کار با کُد ماشین فراهم می‌آورد؛ از جمله کدگذاری دستورالعمل‌ها و نمایش بازنمودهای داخلی آن‌ها، دیزاسمبل کردن رشته‌ها به بایت‌ها و غیره. انتخاب معماری برای کُد اسمبلی خروجی به‌طور خودکار از فایل ورودی تعیین می‌شود، مگر اینکه از گزینهٔ --arch برای لغو و جایگزینی مقدار پیش‌فرض استفاده شود. گزینه‌ها (OPTIONS) چنانچه گزینهٔ -o مشخص نشود، در صورتی که ورودی از ورودی استاندارد خوانده شود، llvm-mc خروجی خود را به خروجی استاندارد ارسال خواهد کرد. اگر برای گزینهٔ -o مقدار "-" تعیین شود، خروجی باز هم به خروجی استاندارد فرستاده خواهد شد. اگر هیچ گزینهٔ -o مشخص نشده باشد و فایلی ورودی غیر از "-" تعیین شده باشد، llvm-mc نام فایل خروجی را از روی نام فایل ورودی، با حذف هرگونه پسوند .s موجود و افزودن پسوند .o ایجاد می‌کند. سایر گزینه‌های llvm-mc در ادامه شرح داده شده‌اند. گزینه‌های کاربر نهایی --help نمایش گزینه‌های موجود (برای گزینه‌های بیشتر از --help-hidden استفاده کنید). -o استفاده از به عنوان نام فایل خروجی. برای جزئیات بیشتر به خلاصهٔ بالا مراجعه کنید. --arch= معماری مقصد برای اسمبل کردن؛ برای مشاهدهٔ اهداف در دسترس -version را ببینید. --as-lex اعمال تحلیل‌گر لغوی ("lexer") اسمبلر برای شکستن ورودی به توکن‌ها و چاپ هر یک از آن‌ها. این گزینه برای کمک به توسعه و آزمایش پیاده‌سازی یک اسمبلر در نظر گرفته شده است. --assemble اسمبل کردن فایل اسمبلی (پیش‌فرض) و چاپ نتیجه به صورت اسمبلی. این گزینه برای طراحی و آزمایش پارسرهای دستورالعمل کاربرد دارد و در صورت ترکیب با سایر پرچم‌های llvm-mc می‌تواند ابزار مفیدی باشد. برای مثال، این گزینه برای تبدیل کُد اسمبلی میان گویش‌های مختلف کاربردی است؛ مثلاً در معماری Intel که می‌توانید از -output-asm-variant=1 برای ترجمه از نحو AT&T به نحو اسمبلی Intel استفاده کنید. همچنین می‌توان آن را با --show-encoding ترکیب کرد تا چگونگی کدگذاری دستورالعمل‌ها مشخص شود. --disassemble تجزیهٔ یک رشته از بایت‌های هگزادسیمال و چاپ نتیجه به صورت نحو اسمبلی. --mdis دیزاسمبلِ نشانه‌گذاری‌شدهٔ رشته‌ای از بایت‌های هگزادسیمال. --cdis دیزاسمبلِ رنگیِ رشته‌ای از بایت‌های هگزادسیمال. --filetype=[asm,null,obj] نوع فایل خروجی را تعیین می‌کند. تنظیم این پرچم روی asm خروجی ابزار را به صورت متن اسمبلی تولید می‌کند. تنظیم آن روی obj موجب ایجاد یک فایل شیء (object file) می‌شود. تنظیم آن روی null مانع از ایجاد هرگونه خروجی می‌شود و می‌تواند برای اهداف زمان‌سنجی استفاده شود. مقدار پیش‌فرض asm است. -g تولید اطلاعات اشکال‌زدایی DWARF برای فایل‌های منبع اسمبلی. --hex دریافت بایت‌های خام هگزادسیمال به عنوان ورودی برای دیزاسمبل. فاصله‌های خالی نادیده گرفته می‌شوند. --large-code-model ایجاد دستورالعمل‌های CFI با این فرض که حجم کُد ممکن است بیش از ۲ گیگابایت باشد. --main-file-name= مشخص کردن نامی که باید برای فایل ورودی در نظر گرفته شود. --masm-hexfloats فعال‌سازی مقداردهنده‌های اولیهٔ اعشاری هگزادسیمال به سبک MASM مانند (3F800000r). -mattr=a1,+a2,-a3,... ویژگی‌های خاص معماری مقصد (برای جزئیات بیشتر: -mattr=help). --mcpu= هدف‌گذاری یک نوع پردازندهٔ خاص (برای جزئیات بیشتر: -mcpu=help). --triple= سه‌گانهٔ مقصد (Target triple) برای اسمبل کردن؛ برای اهداف موجود -version را ببینید. --split-dwarf-file= نام فایل خروجی DWO. --show-inst-operands نمایش عملوندهای دستورالعمل‌ها به همان صورت که تجزیه شده‌اند. --show-inst نمایش بازنمود داخلی دستورالعمل. --show-encoding نمایش کدگذاری‌های دستورالعمل. --save-temp-labels برچسب‌های موقت دور ریخته نشوند. --relax-relocations تولید R_X86_64_GOTPCRELX به جای R_X86_64_GOTPCREL. --print-imm-hex ترجیح دادن قالب هگزادسیمال برای مقادیر فوری (immediate values). --preserve-comments حفظ توضیحات (کامنت‌ها) در اسمبلی خروجی. --output-asm-variant= گونهٔ نحو مورد استفاده برای چاپ در خروجی. برای نمونه، در اهداف x86 گزینهٔ --output-asm-variant=0 خروجی را با نحو AT&T و --output-asm-variant=1 خروجی را با نحو Intel/MASM چاپ می‌کند. --compress-debug-sections=[none|zlib|zstd] انتخاب نوع فشرده‌سازی بخش‌های اشکال‌زدایی DWARF. وضعیت خروج (EXIT STATUS) اگر llvm-mc با موفقیت به پایان برسد، با مقدار 0 خارج خواهد شد. در غیر این صورت، در صورت بروز خطا، با مقداری غیر از صفر خارج می‌شود. نویسندگان (AUTHORS) توسط تیم LLVM نگهداری می‌شود (https://llvm.org). کپی‌رایت و تکثیر (COPYRIGHT) 2003-2026, LLVM Project 22 2026-07-15 LLVM-MC(1)