Tôi dựa trên cơ sở này chủ yếu là các bộ lắp ráp mà tôi đã sử dụng - chủ yếu là MASM, NASM và (ở mức độ thấp hơn) TASM. Một số phiên bản sau của TASM có (có?) Một số tính năng để hỗ trợ OO, nhưng tôi chưa sử dụng chúng nhiều và tôi không cố gắng nhận xét về chúng.
Thứ nhất: hầu hết các ngôn ngữ đã chuyển sang một cấu trúc ít nhất giống như cây. Cho dù hướng đối tượng, hoặc dựa trên đối tượng, hoặc chính xác là gì, có khá nhiều định nghĩa về mối quan hệ giữa các phần khác nhau của hệ thống. Cũng có khá nhiều thứ để "bảo vệ" một phần của hệ thống khỏi sự "can thiệp" vô tình nhưng các phần khác (mặc dù sự bảo vệ thường có thể được bỏ qua nếu bạn muốn). Ngược lại, ngôn ngữ lắp ráp tương đối "phẳng" - hầu hết các mối quan hệ giữa mã (và dữ liệu) trong các phần khác nhau của hệ thống được thiết lập chủ yếu bằng tài liệu và ở một quy ước đặt tên ở mức độ thấp hơn.
Kết quả của điều này là thường dễ dàng hơn nhiều để ghép mã chặt chẽ hơn nhiều so với lý tưởng. Các yêu cầu thúc đẩy sự lựa chọn ngôn ngữ lắp ráp bắt đầu (hiệu suất cao hơn, kích thước nhỏ hơn, v.v.) thường cũng thưởng cho điều này - bằng cách bỏ qua các giao diện được phê duyệt và như vậy bạn thường có thể nhận được mã nhỏ hơn và nhanh hơn (mặc dù không thường xuyên tốt hơn trong bất kỳ chiều nào). Bản thân ngôn ngữ và công cụ làm ít hơn nhiều để hạn chế những gì bạn làm (tốt hay xấu), điều này đặt ra gánh nặng lớn hơn nhiều cho các nhà quản lý để ngăn chặn các vấn đề. Tôi sẽ không nói nó khác biệt về mặt chất lượng, nhưng về mặt định lượng - nghĩa là, quản lý phải làm việc để ngăn chặn các vấn đề, nhưng trong trường hợp ngôn ngữ lắp ráp, nó thường có nhiều hướng dẫn (và thường chặt chẽ hơn) về những gì đang hoặc không phải là ' t chấp nhận được.
Giảm thiểu điều này phần lớn là vấn đề hướng dẫn cẩn thận hơn, hướng dẫn nhiều hơn từ nhân viên có kinh nghiệm hơn và quy ước đặt tên cụ thể hơn, được thi hành cẩn thận.
Nhân sự là một vấn đề. Tuy nhiên, những vấn đề tôi gặp phải không phải là vấn đề mà tôi mong đợi. Tìm những anh chàng có một chút tính cách "jock jock", người rất vui khi nhảy vào mã ngôn ngữ lắp ráp khá dễ dàng. Hầu hết đã làm một công việc khá hợp lý, mặc dù gần như thiếu kinh nghiệm trước đó trong việc sử dụng ngôn ngữ lắp ráp.
Khó khăn tôi gặp phải là tìm kiếm thêm nhân sự cấp cao - những người có thể giữ dự án dưới ít nhất một số khả năng kiểm soát và không hoàn toàn quen với các ngôn ngữ sẽ cung cấp (và chủ yếu thực thi) các hướng dẫn cần thiết để giữ mã hợp lý duy trì và dễ hiểu
Nhìn lại, tôi có thể đã / gây ra một số vấn đề lớn nhất trong khía cạnh đó. Tôi có thể thấy hai nguồn vấn đề từ phía tôi. Thứ nhất, tính đến thời điểm dự án Tôi đang nghĩ đến việc, tôi đã được mã hóa chủ yếu bằng các ngôn ngữ cấp cao cho khá trong một, và sử dụng lắp ráp ngôn ngữ chỉnhư một phương sách cuối cùng Như vậy, khi tôi đã sử dụng nó, gần như mọi thủ thuật có thể để đạt được hiệu suất không chỉ là trò chơi công bằng, mà còn được mong đợi. Thứ hai, trở lại khi tôi đã làm việc trên một số hệ thống được viết hoàn toàn (hoặc chủ yếu) bằng ngôn ngữ lắp ráp, nó nằm dưới một số nhà quản lý dự án khá sắt. Lúc đó tôi còn khá trẻ, và khá thẳng thắn phẫn nộ với cách họ điều hành mọi thứ, nên có xu hướng làm ngược lại. Nhìn lại, những gì họ đang làm thực sự rất quan trọng và không được thực hiện chỉ vì chúng đã cũ và không linh hoạt (điều mà tôi khá chắc chắn là cách tôi nhìn thấy mọi thứ vào thời điểm đó).