Я читаю книгу Андрея Александреску о языке программирования D. Он отличный писатель и довольно хорошо объясняет аспекты языка D. Однако я нахожу некоторые конструкции трудными для понимания, когда я не могу представить вывод ASM или последствия определенных ключевых слов (таких как in, out и т. Д. Или другие конструкции). Несмотря на то, что мой ASM довольно плохой, и я никогда не использую его, мне очень помогает понять, как определенные ключевые слова работают на компьютере и выполняемая работа.
Компилятор DMD имеет много интересных функций (покрытие кода, генерация интерфейсов (файлы заголовков), генерация документации, профилирование, ...), но я не видел переключения для вывода кода ASM. Компилятор генерирует файлы .obj, и, прочитав следующую ссылку: http://www.digitalmars.com/ctg/obj2asm.html Я подозреваю, что мне нужен инструмент для преобразования объектных файлов вручную. Я бы предпочел переключатель компилятора, есть ли один?
Внизу этой страницы я получаю ссылку на страницу, где я могу заплатить за упоминание продуктов, содержащих этот инструмент. Исходя из истории GNU, я сильно нахмурился по этому поводу. Это только для C / C ++, или это также относится к компилятору D?
Есть ли другой способ преобразовать эти файлы .obj в читаемый код ASM, или я должен прибегнуть к другим компиляторам D (таким как GDC или LDC) для получения вывода ASM? Я предпочитаю не DMD создан самим основателем, я уверен, что он реализовал большинство функций правильно / в значительной степени оптимизировано.
Итак, как я могу взглянуть на код ASM?
Спасибо.