#

Assembly là gì? Cách thức hoạt động của ngôn ngữ Assembly

 19/09/2022 - 14:30 Trịnh Duy Thanh

Việc dịch tự động các code của ngôn ngữ lập trình cấp cao thành một loại ngôn ngữ dễ hiểu không còn là vấn đề nan giải khi ngôn ngữ Assembly ra đời. Nếu bạn muốn tìm hiểu và học tập Assembly đừng bỏ qua khái niệm, tầm quan trọng, cách thức hoạt động của nó ở bài viết sau. Hãy cùng BKHOST theo dõi.

Assembly là gì?

Assembly la gi

Assembly là loại ngôn ngữ lập trình giúp máy tính hiểu và đọc được, gồm các ký tự nhị phân hoặc thập lục phân. Trong khi đó những nhà lập trình lại sử dụng ngôn ngữ lập trình cấp cao – ngôn ngữ mà con người dễ đọc và thao tác.

Đăng ký chứng chỉ SSL tại BKHOST

Chứng chỉ SSL giúp bảo vệ các giao dịch trực tuyến, nâng cao độ uy tín của website với khách hàng, bằng cách đảm bảo tính riêng tư tất cả các dữ liệu được truyền giữa các máy chủ và các trình duyệt.

BKHOST cam kết giá tốt nhất thị trường, mua ngay:

mua chứng chỉ ssl

Assembly Language là ngôn ngữ gần gũi với ngôn ngữ máy tính và nó có khả năng điều khiển phần cứng thực hiện những tác vụ theo yêu cầu của nhà lập trình. Như vậy có thể xem Assembly chính là cầu nối giữa ngôn ngữ máy của phần cứng với các ngôn ngữ lập trình bậc cao. Quá trình lập trình sẽ trở nên dễ dàng, linh hoạt, nhanh chóng hơn bao giờ hết khi ngôn ngữ Assembly ra đời.

Tại sao Assembly lại quan trọng?

Khi các lập trình viên sử dụng code để tạo nên các lệnh, Assembly sẽ dịch các lệnh này để máy tính hiểu và thực hiện theo. Một điều đặc biệt là bản dịch đó được sử dụng cho nhiều máy tính khác nhau bởi nó được tạo ra từ cùng một phần mềm.

Hợp ngữ rất quan trọng vì chúng dịch các lệnh được viết bằng mã bởi các lập trình viên máy tính thành các lệnh mà máy tính có thể hiểu và thực thi. Bản dịch này cho phép các máy khác nhau do nhiều lập trình viên tạo ra sử dụng cùng một phần mềm.

Để xử lý các tác vụ như nhận đầu vào từ bàn phím hoặc từ chuột, hiển thị thông tin trên màn hình…mỗi máy sẽ có code nội bộ riêng. Ngôn ngữ máy chính là phương tiện để giúp máy tính hoàn thành các yêu cầu một cách chỉn chu. Tuy nhiên nếu viết chương trình phức tạp bằng ngôn ngữ này phải bỏ thời gian, công sức nhiều.

Để giải quyết vướng mắc đó, nhà thiết kế phần mềm đã dùng ngôn ngữ lập trình cấp cao với cú pháp tiếng anh và các phép toán logic như and, or, else để thay thế ngôn ngữ máy. Tuy nhiên máy tính chỉ đọc được ngôn ngữ này khi chúng được Assembly dịch thành ngôn ngữ máy.

Tóm lại chính nhờ có Assembly mà nhà lập trình tiết kiệm thời gian viết chương trình đồng thời điều khiển được máy tính thực hiện những tác vụ phức tạp mà mình mong muốn.

Assembly hoạt động như thế nào?

Những bộ phận của kiến trúc một máy tính gồm thành phần máy, phần cứng, bộ xử lý và những vấn đề liên quan giữa nó và máy khác. Assembly sẽ được thiết lập tương ứng với từng kiến trúc của từng máy cụ thể.

Riêng với Assembly của phần cứng lại có thể tương thích với rất nhiều hệ điều hành khác nhau. Điều này có nghĩa là Assembly được dùng để dịch nhiều ngôn ngữ lập trình bậc cao. Assembly được cấu tạo từ những bộ phận như:

  • Cú pháp: là tập hợp hệ thống quy tắc để code của Assembly hoạt động. Cụ thể mỗi code sẽ có 255 ký tự và bắt đầu bằng một ký hiệu, nhãn hoặc chỉ thị. Các phần tử của một code như nhãn, lệnh sẽ được tách biệt với nhau bằng một ký tự khoảng trắng.
  • Label (nhãn): có hai loại nhãn đó là số và ký hiệu, chúng được đặt ở đầu câu lệnh với chức năng là dẫn dắt máy tính đến vị trí của mã nguồn.
  • Command (lệnh): thay vì sử dụng ký hiệu thì lệnh và toán tử lại sử dụng các biểu thức, những giá trị của chúng sẽ thể hiện rõ ràng cho các nhiệm vụ cụ thể.
  • Instruction (hướng dẫn): trình hợp dịch của Assembly sẽ chuyển một lệnh thành một hoặc nhiều byte mã máy. Mỗi thao tác của bộ xử lý sẽ có một lệnh phù hợp.
  • Directive (chỉ thị): mặc dù không được chuyển thành lệnh để yêu cầu phần cứng hoạt động nhưng directive sẽ có chức năng tự động hóa việc lắp ráp và giúp nâng cao quy trình đọc code. Nhà lập trình thường dùng directive ở thời điểm trước khi xử lý để sắp xếp code logic.
  • Macro: một chuỗi các lệnh và directive sẽ được đại diện bởi macro. Assembly nhận diện được macro và phân tích, mở rộng để hiểu được tất cả các lệnh mà nó đại diện.
  • Mnemonic: đây là tên viết tắt của một phép toán biểu thị cho duy nhất một tác vụ nào đó được ngôn ngữ máy xử lý.

Ví dụ về Assembly

Dưới đây là một đoạn code ở dạng code nhị phân thông báo cho bộ xử lý biết để thêm các số 3, 4 – ví dụ điển hình cho Assembly:

1: MOV eax, 3
MOV ebx, 4
ADD eax, ebx, ecx

Ở vị dụ trên “1” là nhãn giúp máy tính nhận biết được vị trí mà nó sẽ hoạt động. Trong khi đó số 3 sẽ được thêm vào bộ xử lý nhờ vào các lệnh “MOV” và “ADD”. Quan sát đoạn code trên ta sẽ thấy dòng của mã tải 3 sẽ được thêm vào “eax”, dòng thứ 2 của mã tải 4 được thêm vào “ebx”. Riêng với dòng cuối của code ADD “eax”, “ebx” và kết quả của phép cộng là 7 sẽ được lưu vào “ecx”.

Tổng kết về Assembly

Nếu bạn có đam mê với lập trình thì không nên bỏ qua bài viết về ngôn ngữ Assembly mà BKHOST đã cung cấp ở trên. Việc nắm rõ ngôn ngữ lập trình này sẽ giúp bạn có nền tảng cơ bản để học hỏi những kiến thức nâng cao hơn.

Nếu bạn có thắc mắc về Assembly hay muốn tìm hiểu những ngôn ngữ lập trình khác, hãy để lại ở bên bình luận bên dưới, BKHOST sẽ trả lời bạn trong thời gian sớm nhất.

P/s: Bạn cũng có thể truy cập vào Blog của BKHOST để đọc thêm các bài viết chia sẻ kiến thức về lập trình, quản trị mạng, website, domain, hosting, vps, server, email,… Chúc bạn thành công.


  • lập trình assembly
  • ngôn ngữ assembly
  • assembly là gì

Đăng ký dịch vụ Hosting tại BKHOST

BKHOST cung cấp dịch vụ Hosting với nhiều mức giá và cấu hình khác nhau, đáp ứng nhu cầu của tất cả khách hàng.

Cam kết hoàn tiền lên đến 100% nếu Quý khách không hài lòng với chất lượng sản phẩm, dịch vụ.

Rất nhiều chương trình khuyến mãi cực hấp dẫn đang chờ bạn. Đăng ký ngay hôm nay!

hosting website

Tôi là Trịnh Duy Thanh, CEO & Founder Công ty Cổ Phần Giải Pháp Mạng Trực Tuyến Việt Nam - BKHOST. Với sứ mệnh mang tới các dịch vụ trên Internet tốt nhất cho các cá nhân và doanh nghiệp trong nước và quốc tế, tôi luôn nỗ lực hết mình nâng cấp đầu tư hệ thống phần cứng, nâng cao chất lượng dịch vụ chăm sóc khách hàng để đem đến những sản phẩm hoàn hảo nhất cho người tiêu dùng. Vì vậy, tôi tin tưởng sẽ đem đến các giải pháp CNTT mới nhất, tối ưu nhất, hiệu quả nhất và chi phí hợp lý nhất cho tất cả các doanh nghiệp.
Bình luận

Thanh toán linh hoạt

Chúng tôi chấp nhận thanh toán như ATM, Visa, Internet Banking, Paypal, Baokim, Ngân lượng

Gọi ĐT tư vấn ngay
Chat ngay qua Zalo
Chat ngay qua Messenger
Góp ý cho chúng tôi