بسم الله الرحمن الرحيم
قمت بكتابة هذا الكود منذ فتره
.386 .model flat, stdcall .code ; get BIOS current date ; CH - Century DH - Month ; CL - Year DL - Day getDate PROC ; extern "C" unsigned __stdcall getDate(void) xor eax, eax ; clear eax mov ah , 04h ; put 4 in ah to get RTC date int 1Ah ; call bios 1A interrupt ret getDate ENDP ; get BIOS current time ; CH - Hours DH - Seconds ; CL - Minutes DL - 1 daylight on, 0 daylight off getTime PROC ; extern "C" unsigned __stdcall getTime(void) xor eax, eax ; clear eax mov ah , 02h ; put 2 in ah to get RTC time int 1Ah ; call bios 1A interrupt ret getTime ENDP END
الكود يقوم بالحصول على التاريخ و الوقت الحالى من الـ BIOS ذلك عن طريق استدعاء الأمر 1Ah و مع ان الكود سليم و انا متأكد من ذلك ألا انه لا يتم تنفيذه إلا من داخل الـ real mode.
و عندما ينفذ من داخل protected mode يظهر لى الخطأ التالى
اقتباسUnhandled exception at 0x004113a4 in datetime.exe: 0xC0000005: Access violation reading location 0xffffffff.
و قد قيل لى من قبل (لا اتذكر النص تحديدا و لكن اتذكر المعنى)
اقتباسانت بتحلم انه يتنفذ من جوا الـ protected mode
اريد من هذا الكود ان يعمل بأى وسيله كانت من داخل الويندوز (protected mode)
و الله ولى التوفيق