Каква е разликата между Асемблер и Компилатор
> Те не правят това сега
В днешно време те обикновено превеждат кода в асемблера на виртуалната машина и след това тази междинна форма в машинния код на определена платформа (GCC, LLVM).
> В днешно време е обичайно да се превежда кодът в асемблера на виртуалната машина и след това тази междинна форма в машинния код на определена платформа (GCC, LLVM).
MiiNiPaa: gcc просто използва реален асемблер и извиква газ, за да го сглоби.
В противен случай ще трябва да правим × преводачи, вместо текущите × .
Превод от представяне в асемблер и след това сглобяването му, за да ускори разработването на преводач за нова платформа: можете да вземете готов асемблер и да не ограждате велосипед.
> Все още се използва междинно представяне
MiiNiPaa: използват се gimple и rtl, но те не се показват никъде по време на нормална работа и съществуват само в изпълняващия компилатор. Резултатът от работата на действителния c/c ++ компилатор от gcc (cc1/cc1plus) е асемблерен файл за целевата машина.
> В противен случай ще трябва да правим × преводачи вместо текущия × .
Имате една и съща стойност отляво и отдясно на „вместо“.
jcmvbkbc:> Имате една и съща стойност отляво и отдясно на „вместо“.
Благодаря. Знакът плюс вдясно е закован на един нокът и случайно се завъртя на 45 градуса.
Да, не можете да стигнете до междинното представяне, без изрично да посочите команди към компилатора. Току-що разбрах предишния пост като "GCC не използва междинно представяне".