Ôn tập: thoát an toàn
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 34 trên 45.
Bạn đã tìm hiểu về các syscall, syscall thoát và mã thoát. Bây giờ, bạn sẽ kết hợp mọi thứ để viết chương trình hoàn chỉnh đầu tiên có thể chạy.
Một chương trình hoàn chỉnh cần có:
| Thành phần | Chức năng |
|---|---|
section .text | Nơi đặt code của bạn |
global _start | Cho trình liên kết biết chương trình bắt đầu ở đâu |
_start: | Nhãn đánh dấu nơi chương trình bắt đầu thực thi |
| Syscall thoát | Kết thúc chương trình gọn gàng |
Điều gì tạo nên một chương trình hợp lệ:
Chương trình của bạn phải có tất cả những thành phần trên. Syscall thoát dùng mov rax, 60, đặt rdi thành mã thoát, rồi gọi syscall.
Tại sao điều này quan trọng:
Bạn đã chuyển từ việc viết từng câu lệnh riêng lẻ sang viết chương trình hoàn chỉnh. Mọi chương trình bạn viết từ giờ trở đi đều sẽ theo cùng cấu trúc này.
Thử thách
Viết một chương trình assembly hoàn chỉnh để thoát với mã thoát 0 (thành công). Dùng cấu trúc chuẩn: section .text, global _start, _start: và lệnh gọi hệ thống để thoát.
Tự làm thử
; TODO: Viết một chương trình hoàn chỉnh kết thúc với mã thoát 0
; Dùng section .text, global _start, _start: và lời gọi hệ thống exit
Tất cả bài học trong Kiến thức nền tảng
Tự luyện tập: Playground Assembly