Nội dung bài viết
#

Assembly là gì? Assembler là gì? Cách thức hoạt động?

Nội dung bài viết

    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.

    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:

    {{EJS0}}

    Ở 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ì
    • assembler là gì

    Dịch vụ Server Riêng BKHOST

    Giảm giá cực sâu, chất lượng hàng đầu. Đăng ký ngay hôm nay:

    mua server riêng

    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
    Trượt lên đầu trang
    Miễn phí cước gọi
    Bạn đã hài lòng với trải nghiệm trên Bkhost.vn?
    Cảm ơn lượt bình chọn của bạn, Chúc bạn 1 ngày tốt lành !