Tôi đã có ba hoặc bốn quy trình trình hợp dịch (trong nguồn khoảng 20 MB) trong các nguồn của tôi tại nơi làm việc. Tất cả chúng đều là SSE (2) và liên quan đến các hoạt động trên hình ảnh (khá lớn - hãy nghĩ đến 2400x2048 và lớn hơn).
Vì sở thích, tôi làm việc trên một trình biên dịch, và ở đó bạn có nhiều trình biên dịch hơn. Thư viện thời gian chạy thường khá đầy chúng, hầu hết chúng liên quan đến những thứ bất chấp chế độ thủ tục thông thường (như trình trợ giúp cho các trường hợp ngoại lệ, v.v.)
Tôi không có bất kỳ trình lắp ráp nào cho bộ vi điều khiển của mình. Hầu hết các bộ vi điều khiển hiện đại đều có rất nhiều phần cứng ngoại vi (bộ đếm điều khiển ngắt, thậm chí toàn bộ bộ mã hóa cầu phương và các khối xây dựng nối tiếp) nên việc sử dụng trình hợp dịch để tối ưu hóa các vòng lặp thường không còn cần thiết nữa. Với giá flash hiện tại, bộ nhớ mã cũng vậy. Ngoài ra, thường có nhiều thiết bị tương thích với pin, vì vậy nâng cấp nếu bạn sử dụng hết nguồn cpu hoặc dung lượng flash một cách có hệ thống thường không phải là vấn đề
Trừ khi bạn thực sự xuất xưởng 100000 thiết bị và trình lắp ráp lập trình giúp bạn có thể thực sự tiết kiệm đáng kể bằng cách lắp vào chip flash một loại nhỏ hơn. Nhưng tôi không thuộc loại đó.
Nhiều người nghĩ rằng nhúng là một cái cớ cho trình lắp ráp, nhưng bộ điều khiển của họ có nhiều sức mạnh CPU hơn so với máy Unix được phát triển trên đó. (Vi mạch đi kèm với vi điều khiển MIPS 40 và 60 với giá dưới 10 USD ).
Tuy nhiên, rất nhiều người bị mắc kẹt với di sản, vì việc thay đổi kiến trúc vi mạch không hề dễ dàng. Ngoài ra, mã HLL rất phụ thuộc vào kiến trúc (vì nó sử dụng ngoại vi phần cứng, các thanh ghi để điều khiển I / O, v.v.). Vì vậy, đôi khi có những lý do chính đáng để tiếp tục duy trì một dự án trong trình lắp ráp (tôi thật may mắn khi có thể thiết lập các công việc trên một kiến trúc mới từ đầu). Nhưng thường mọi người tự đùa rằng họ thực sự cần người lắp ráp.
Tôi vẫn thích câu trả lời của một giáo sư khi chúng tôi hỏi liệu chúng tôi có thể sử dụng GOTO hay không (nhưng bạn cũng có thể đọc là ASSEMBLER): "nếu bạn nghĩ rằng đáng để viết một bài luận dài 3 trang về lý do tại sao bạn cần tính năng này, bạn có thể sử dụng nó. . Hãy gửi bài luận cùng với kết quả của bạn. "
Tôi đã sử dụng nó như một nguyên tắc hướng dẫn cho các tính năng cấp thấp. Đừng quá chật chội để sử dụng nó, nhưng hãy đảm bảo rằng bạn thúc đẩy nó đúng cách. Thậm chí, hãy dựng lên một hoặc hai rào cản nhân tạo (như bài luận) để tránh lập luận phức tạp như biện minh.