رموز الخروج (Exit Codes)
جزء من قسم الأساسيات في رحلة Assembly على Coddy. الدرس 33 من 45.
عند انتهاء برنامجك، يرسل رقمًا صغيرًا إلى نظام التشغيل. يُسمّى هذا الرقم رمز الخروج أو حالة الخروج.
لماذا تُعد رموز الخروج مهمة:
تستخدم البرامج النصية رموز الخروج للتحقق مما إذا كان البرنامج قد نجح. على سبيل المثال، قد يستمر برنامج نصي للنسخ الاحتياطي فقط إذا نجح الأمر السابق.
تساعد رموز الخروج أيضًا في تصحيح الأخطاء. يمكنك استخدام رموز خطأ مختلفة لمشكلات مختلفة.
يمكنك أيضًا ربط البرامج معًا بحيث يعمل برنامج واحد فقط إذا نجح البرنامج السابق. تتحقق الصدفة من رمز الخروج قبل تشغيل الأمر التالي.
قواعد رموز الخروج:
| رمز الخروج | المعنى |
|---|---|
| 0 | Success: كل شيء عمل بنجاح |
| 1-255 | حدث خطأ ما |
اختيار رموز الأخطاء:
يمكنك استخدام أي رقم من 1 إلى 255. ويعود تحديد معنى كل رقم إليك بصفتك المبرمج.
| رمز الخروج | ما قد تقصده |
|---|---|
| 1 | خطأ عام |
| 2 | ملف الإدخال مفقود |
| 3 | تم رفض الإذن |
| 4 | خطأ في الشبكة |
ماذا يحدث إذا لم تُعيّن رمز خروج؟
يجب عليك دائمًا تعيين rdi قبل استدعاء النظام exit. إذا نسيت ذلك، فسيحتوي rdi على أي قيمة عشوائية متبقية في السجل، وسينهي برنامجك التنفيذ برمز عشوائي.
التحدي
اكتب برنامج assembly كاملًا ينهي التنفيذ برمز خروج 2 (للإشارة إلى "file not found").
تم توفير كود الطباعة لك. ما عليك سوى إضافة استدعاء النظام للخروج.
جرّب بنفسك
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"يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس الأساسيات
2أنظمة العد
لماذا النظام الثنائي؟الأعداد الثنائيةمن العشري إلى الثنائيلماذا النظام الست عشري؟من الست عشري إلى العشريمن العشري إلى الست عشريASCII والست عشري5استدعاء النظام Exit Syscall
ما هو الـ Syscall؟استدعاء النظام Exit Syscall (60)رموز الخروج (Exit Codes)ملخص: الخروج النظيف (Clean Exit)تدرّب بنفسك: Playground لـ Assembly