Hướng dẫn lắp ráp là (nói chung) một ánh xạ trực tiếp tới các opcodes, đó là (nhiều) giá trị byte của mã máy có thể được bộ xử lý giải thích trực tiếp. Hoàn toàn có thể viết chương trình trong opcodes trực tiếp bằng cách tra cứu chúng từ một bảng (ví dụ như chương trình này cho bộ vi xử lý 6039 ) liệt kê chúng với các hướng dẫn lắp ráp phù hợp và xác định địa chỉ bộ nhớ / bù cho các thứ như nhảy.
Các chương trình đầu tiên được thực hiện chính xác theo kiểu này - opcodes viết tay.
Tuy nhiên, hầu hết thời gian đơn giản hơn là sử dụng trình biên dịch để "biên dịch" mã lắp ráp, tự động thực hiện các tra cứu opcode này, cũng như hữu ích trong việc tính toán địa chỉ / bù đắp cho nhãn nhảy, et cetera.
Các nhà lắp ráp đầu tiên được viết bằng tay. Những trình biên dịch đó sau đó có thể được sử dụng để lắp ráp các trình biên dịch phức tạp hơn, sau đó có thể được sử dụng để lắp ráp các trình biên dịch được viết cho các ngôn ngữ cấp cao hơn, v.v. Quá trình này lặp đi lặp lại việc viết các công cụ để đơn giản hóa việc tạo ra bộ công cụ tiếp theo được gọi (như David Rabinowitz đã đề cập trong câu trả lời của mình) bootstrapping .