Menu
CoddyTech

Mẫu hai tệp

Thuộc phần Kiến thức nền tảng trong hành trình Assembly của Coddy. Bài học 5 trên 45.

Trong suốt khóa học này, bạn sẽ viết mọi chương trình bằng hai tệp riêng biệt:

TệpMục đích
data.asmLưu trữ toàn bộ dữ liệu (chuỗi, số, biến)
main.asmLưu trữ toàn bộ code (chỉ thị, logic, luồng)

Trình hợp dịch không yêu cầu điều này. Bạn có thể đặt mọi thứ trong một tệp. Nhưng tách code khỏi dữ liệu giúp chương trình gọn gàng hơn, dễ đọc hơn và dễ gỡ lỗi hơn.

Tại sao lại có hai tệp?

  • Tổ chức: Dữ liệu và code có mục đích khác nhau. Tách riêng chúng giúp bạn suy nghĩ rõ ràng hơn.
  • Tái sử dụng: Bạn có thể dùng cùng một data.asm với các tệp main.asm khác nhau.
  • Dễ đọc: Bạn không cần cuộn qua những chuỗi dài để tìm đoạn code của mình.
  • Thực tiễn trong ngành: Các dự án thực tế tách biệt code và dữ liệu, dù thường theo những cách phức tạp hơn.

Cách hoạt động:

Tệp main.asm bao gồm tệp data.asm bằng chỉ thị %include. Chỉ thị này cho trình hợp dịch biết: "chèn toàn bộ nội dung của data.asm vào đây trước khi hợp dịch."

Hai tệp đặt cạnh nhau:

data.asmmain.asm
section .data%include "data.asm"
(đặt biến ở đây)section .text
 global _start
 _start:
 (đặt câu lệnh ở đây)

Chức năng của từng phần:

PhầnMục đíchTệp nào?
section .dataChứa dữ liệu tồn tại trong bộ nhớ khi chương trình chạydata.asm
section .textChứa các chỉ thị có thể thực thi (code)main.asm
global _startGiúp trình liên kết nhận biết điểm vào chương trìnhmain.asm
_start:Nhãn nơi chương trình bắt đầu thực thimain.asm

Bạn chưa cần ghi nhớ section .data, section .text, global _start hay _start: vào lúc này. Mình sẽ giải thích chi tiết từng lệnh trong các bài học tiếp theo. Trước mắt, bạn chỉ cần nhìn tổng thể và hiểu cấu trúc của hai tệp.

Tự làm thử

Bài học này không có thử thách code.

quiz iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

Tất cả bài học trong Kiến thức nền tảng

Tự luyện tập: Playground Assembly