종료 코드
Coddy Assembly 여정의 기초 섹션에 포함된 레슨 — 45개 중 33번째.
프로그램이 종료될 때, 운영 체제에 작은 숫자를 반환합니다. 이 숫자를 종료 코드 또는 종료 상태라고 합니다.
종료 코드가 중요한 이유:
스크립트는 종료 코드를 사용하여 프로그램의 성공 여부를 확인합니다. 예를 들어, 백업 스크립트는 이전 명령이 성공한 경우에만 계속 진행될 수 있습니다.
종료 코드는 디버깅에도 도움이 됩니다. 서로 다른 문제에 대해 서로 다른 오류 코드를 사용할 수 있습니다.
또한 프로그램을 서로 연결하여 이전 프로그램이 성공한 경우에만 다음 프로그램이 실행되도록 할 수 있습니다. 쉘은 다음 명령을 실행하기 전에 종료 코드를 확인합니다.
종료 코드의 규칙:
| 종료 코드 | 의미 |
|---|---|
| 0 | 성공 — 모든 것이 정상적으로 작동함 |
| 1-255 | 문제가 발생함 |
에러 코드 선택하기:
1에서 255 사이의 어떤 숫자든 사용할 수 있습니다. 각 숫자가 무엇을 의미하는지는 프로그래머인 여러분에게 달려 있습니다.
| 종료 코드 | 의미 |
|---|---|
| 1 | 일반 오류 |
| 2 | 입력 파일 없음 |
| 3 | 권한 거부 |
| 4 | 네트워크 오류 |
종료 코드를 설정하지 않으면 어떻게 되나요?
exit syscall을 호출하기 전에 항상 rdi를 설정해야 합니다. 만약 잊어버린다면, rdi에는 레지스터에 남아있던 쓰레기 값이 포함될 것이며, 프로그램은 무작위 코드로 종료될 것입니다.
챌린지
종료 코드 2("file not found"를 신호하기 위함)와 함께 종료되는 완전한 어셈블리 프로그램을 작성하세요.
출력 코드는 이미 제공되어 있습니다. 여러분은 exit syscall만 추가하면 됩니다.
직접 해보기
section .data
msg db 'Backup complete', 0x0a
msgLen equ $ - msg
section .text
global _start
_start:
; 메시지 출력 (테스트 하네스에서 제공됨)
mov rax, 1
mov rdi, 1
mov rsi, msg
mov rdx, msgLen
syscall
; 학생의 코드가 여기에 들어갑니다
%include "solution.asm"이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.