Menu
CoddyTech

Mã thoát

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 33 trên 45.

Khi chương trình kết thúc, nó gửi một số nhỏ về hệ điều hành. Số này được gọi là mã thoát hoặc trạng thái thoát.

Vì sao mã thoát quan trọng:

Script dùng mã thoát để kiểm tra chương trình có chạy thành công hay không. Ví dụ, một script sao lưu có thể chỉ tiếp tục nếu lệnh trước đó chạy thành công.

Mã thoát cũng giúp gỡ lỗi. Bạn có thể dùng các mã lỗi khác nhau cho những vấn đề khác nhau.

Bạn cũng có thể nối các chương trình với nhau để một chương trình chỉ chạy nếu chương trình trước đó chạy thành công. Shell kiểm tra mã thoát trước khi chạy lệnh tiếp theo.

Quy tắc về mã thoát:

Mã thoátÝ nghĩa
0Thành công: mọi thứ đều hoạt động
1-255Đã xảy ra lỗi

Chọn mã lỗi:

Bạn có thể dùng bất kỳ số nào từ 1 đến 255. Ý nghĩa của từng số do bạn quyết định với tư cách là lập trình viên.

Mã thoátÝ nghĩa có thể là
1Lỗi chung
2Thiếu tệp đầu vào
3Bị từ chối quyền truy cập
4Lỗi mạng

 

Điều gì xảy ra nếu bạn không đặt mã thoát?

Bạn phải luôn đặt rdi trước lời gọi hệ thống thoát. Nếu quên, rdi sẽ chứa giá trị rác còn lại trong thanh ghi, và chương trình sẽ thoát với mã ngẫu nhiên.

challenge icon

Thử thách

Viết một chương trình assembly hoàn chỉnh và thoát với mã thoát 2 (để báo hiệu "file not found").

Đoạn code in ra đã được cung cấp. Bạn chỉ cần thêm lời gọi hệ thống để thoát.

Tự làm thử

section .data
    msg db 'Backup complete', 0x0a
    msgLen equ $ - msg

section .text
    global _start

_start:
    ; In ra thông báo (do bộ kiểm thử cung cấp)
    mov rax, 1
    mov rdi, 1
    mov rsi, msg
    mov rdx, msgLen
    syscall

    ; Viết code của bạn ở đây
    %include "solution.asm"
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