Mengapa kompiler menghasilkan kode rakitan?

Bahasa assembly diubah menjadi bahasa mesin oleh assembler. Mengapa kompiler akan mengkonversi bahasa tingkat tinggi ke perakitan? Tidak bisakah itu secara langsung mengkonversi dari bahasa tingkat tinggi ke kode