الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مشكلة فى جلب معلومات من عنوان بالذاكرة

بدأه _- محمد نور -_ في 7 مايو 2009 · 6 رد · 421 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

أحاول أن أقوم بجلب بيانات عن عناوين مافذ التوازى المتوفرة

فوجدت هذا الكود هنا

http://www.beyondlogic.org/spp/parallel.htm

و لكنه يعطينى خطأ حينما يصل إلى address = *ptraddr;

برجاء لمن لديه خلفية أن يجرب هذا الكود و يقل لى النتيجة

#include <stdio.h>
#include <dos.h>
#include <windows.h>

void main(void)
{
 unsigned int far *ptraddr;  /* Pointer to location of Port Addresses */
 unsigned int address;	   /* Address of Port */
 int a;

 ptraddr=(unsigned int far*)0x00000408;

 for (a = 0; a < 3; a++)
   {
	address = *ptraddr;
	if (address == 0)
		printf("No port found for LPT%d \n",a+1);
	else
		printf("Address assigned to LPT%d is %Xh\n",a+1,address);
	*ptraddr++;
   }
}

لا إله إلا الله محمد رسول الله

アッラー以外に神はなし。ムハンマドはアッラーの使徒である

#2

السلام عليكم

جرب أخى الكود بعد التعديل

#include <stdio.h>
 #include <dos.h>
 #include <windows.h>

 void main(void)
 {
 unsigned int far *ptraddr;  /* Pointer to location of Port Addresses */
 int a;
 ptraddr=(unsigned int far*)0x00000408;

 for (a = 0; a < 3; a++)
	{
	 if (ptraddr == 0)
		 printf("No port found for LPT%d \n",a+1);
	 else
		 printf("Address assigned to LPT%d is %xh\n",a+1,ptraddr);
	 ptraddr++;
	}
 }

ولكنه أعطى عناوين متتاليه

وأعتقد انك تريد ما تحتويه تلك العنواين من قيم

؟

يعنى العنوان الأول يحتوى على عنوان البورت وانت تريد ذلك العنوان

هل فهمى صحيح للموضوع؟

سلام

تم تعديل هذه المشاركة بواسطة amin_mu123 في 7 مايو 2009 في 18:56

اللهم صل على سيدنا محمد وعلى آله وصحبه وسلم

#3

هذا الكود يعمل فقط في real-mode وليس protected-mode ، تكلمنا في هذا الموضوع كثيرا اخي نور :)

mov eax, dword ptr ds:[0xffdf0308]

jmp dword ptr [eax+0xfc]

#4

السلام عليكم

@GM

انا أخر مرة قرأت عن هذه المواضيع يا محمد كان من عدة أعوام و صدقنى لم أعد أذكر عنهم أى شئ

فهلا أرشدتى إلى ما يذكرنى بهما و أيضا أريد أن أعرف ما هى العلاقة بين هذا الموضوع و الكود الخاص بى حيث أننى كما قلت لك لم أعد أذكر عنهم أى شئ الأن

و الذى كنت قرأته عنهما كان فى معالجات إنتل الأولى و لم يكن له علاقة بالبرمجة حينها

برجاء وضع بعض الوصلات لكى أتذكر الأمر

@amin_mu123

نعم أخى الأمر كما فهمت

و لكنى لست أدرى لا يوجد فارق كبير بين كودى و كودك

و أيضا المفروض أن هذا الكود سوف يذهب إلى المنطقة 0x00000408 و يجلب منها عنواين منافذ التوازى

جربت الكود على حاسب محمول و على حاسب عادى و أتى بنفس النتيجة مع العلم أن الأول ليسه فيه أى منفذ لا توازى و ال توالى

لا إله إلا الله محمد رسول الله

アッラー以外に神はなし。ムハンマドはアッラーの使徒である

#5

لرفع

لا إله إلا الله محمد رسول الله

アッラー以外に神はなし。ムハンマドはアッラーの使徒である

#7
GamingMasteR كتب:

لم أفهم بعد يا محمد الفكرة التى لم تجعل الكود لا يعمل

بارك الله فيك مزيد من التوضيح

و الكلام الموجود فى الوصلة أنا بالفعل أعرفه منذ عدة سنوات لكنى لم أفهم قصدك بعد

لا إله إلا الله محمد رسول الله

アッラー以外に神はなし。ムハンマドはアッラーの使徒である

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…