Hợp_ngữ
Hợp_ngữ

Hợp_ngữ

Trong lập trình máy tính, Hợp ngữ (hay assembly[1]) thường được viết tắt là asm là bất kỳ ngôn ngữ lập trình cấp thấp nào có sự tương ứng rất mạnh giữa các tập lệnh trong ngôn ngữ và tập lệnh mã máy của kiến trúc.[2] Bởi vì hợp ngữ phụ thuộc vào tập lệnh mã máy, mỗi trình biên dịch có hợp ngữ riêng được thiết kế cho chính xác một kiến trúc máy tính cụ thể. Hợp ngữ cũng có thể được gọi là mã máy tượng trưng (symbolic machine code).[3][4]Mã hợp ngữ được chuyển đổi thành mã máy thực thi bằng một chương trình được gọi là assembler. Quá trình chuyển đổi được gọi là assembling. Hợp ngữ thường có một câu lệnh trên một lệnh máy (1:1), nhưng các comment và các câu lệnh là chỉ thị trình biên dịch,[5] macros,[6][7] và các nhãn chương trình và địa chỉ bộ nhớ cũng được hỗ trợMỗi một hợp ngữ là dành riêng cho một kiến trúc máy tính cụ thể và đôi khi cho một hệ điều hành.[8] Tuy nhiên, một số hợp ngữ không cung cấp cú pháp riêng cho lời gọi hệ điều hành, và hầu hết các hợp ngữ có thể được sử dụng phổ biến với bất kỳ hệ điều hành nào, vì ngôn ngữ này cung cấp quyền truy cập vào tất cả các khả năng thực sự của bộ xử lý, theo đó tất cả các cơ chế gọi hệ thống đều dừng lại. Trái ngược với hợp ngữ, hầu hết các ngôn ngữ lập trình bậc cao thường có khả năng di động trên nhiều kiến trúc nhưng yêu cầu thông dịch hoặc biên dịch, một công việc phức tạp hơn nhiều so với assembling.Hợp ngữ đã từng được dùng rộng rãi trong tất cả các khía cạnh lập trình, nhưng ngày nay nó có xu hướng chỉ được dùng trong một số lãnh vực hẹp, chủ yếu để giao tiếp trực tiếp với phần cứng hoặc xử lý các vấn đề liên quan đến tốc độ cao điển hình như các trình điều khiển thiết bị, các hệ thống nhúng cấp thấp và các ứng dụng thời gian thực.