Çıkış Kodları
Coddy'nin Assembly Journey'sinin Temeller bölümünün bir parçası. Ders 33 / 45.
Programınızdan çıkıldığında, işletim sistemine küçük bir sayı gönderir. Bu sayıya çıkış kodu veya çıkış durumu denir.
Çıkış kodları neden önemlidir:
Betikler, bir programın başarılı olup olmadığını kontrol etmek için çıkış kodlarını kullanır. Örneğin, bir yedekleme betiği yalnızca önceki komut başarılı olduysa devam edebilir.
Çıkış kodları hata ayıklamaya da yardımcı olur. Farklı sorunlar için farklı hata kodları kullanabilirsiniz.
Programları birbirine bağlayarak bir programın yalnızca önceki program başarılı olduysa çalışmasını da sağlayabilirsiniz. Kabuk, sonraki komutu çalıştırmadan önce çıkış kodunu kontrol eder.
Çıkış kodlarının kuralları:
| Çıkış kodu | Anlamı |
|---|---|
| 0 | Success: her şey çalıştı |
| 1-255 | Bir şeyler ters gitti |
Hata kodlarını seçme:
1 ile 255 arasındaki herhangi bir sayıyı kullanabilirsin. Her sayının ne anlama geldiğine programcı olarak sen karar verirsin.
| Çıkış kodu | Ne anlama gelebilir |
|---|---|
| 1 | Genel hata |
| 2 | Girdi dosyası eksik |
| 3 | İzin reddedildi |
| 4 | Ağ hatası |
Bir çıkış kodu ayarlamazsanız ne olur?
Çıkış syscall'ından önce her zaman rdi ayarlamalısın. Bunu unutursan rdi, yazmaçta kalan rastgele veriyi içerir ve programın rastgele bir kodla çıkar.
Görev
"file not found" sinyalini vermek için çıkış kodu 2 ile sonlanan eksiksiz bir assembly programı yaz.
Print kodu senin için sağlanmıştır. Yalnızca exit syscall eklemen gerekiyor.
Kendin dene
section .data
msg db 'Backup complete', 0x0a
msgLen equ $ - msg
section .text
global _start
_start:
; Mesajı yazdır (test harness tarafından sağlanır)
mov rax, 1
mov rdi, 1
mov rsi, msg
mov rdx, msgLen
syscall
; Öğrencinin kodu buraya gelir
%include "solution.asm"Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Temeller bölümündeki tüm dersler
Kendi başına pratik yap: Assembly playground