السلام عليكم ورحمة الله
إخوتي الكرام... أرجو منكم المساعدة ..وكذلك أرجو أن تتحملوني قليلاً... فأنا أعلم أن سؤالي سهل ولكنه بالفعل أعجزني فأنا مازلت مبتدئة
لذلك أفيدوني أفادكم الله .
سؤالي هو كالتالي:
أنا أريد ان أقوم بكتابة برنامج يظهر لي المساحة الإجمالية للذاكرة(RAM) وكذلك المساحة المستخدمة والمساحة الفارغة وكذلك عدد شرائح الرام على
اللوحة الام ؟
ولكن كل محاولاتي الجاهدة بائت بالفشل فلم أستطع التوصل الا لحساب مساحة الBasea memory وحاولت جاهدة ان أبحث عن عناوين تعطيني القيم
السابقة ولكني لم افهم كيف أقوم بإستخدامها او حتى أفهم الغرض منها الفهم الدقيق وذلك لان الشرح الذي لدي عن عناوين الذاكرة مبهم نوعا ما ؟
لذلك ارجو منكم المساعدة العاجلة قدر المستطاع...
ولكن إعذروني فأنا اريد أن اثقل عليكم قليلا بسؤال أخر فأرجوا أن يتسع صدركم لي
و السؤال هو انني قمت بكتابة برنامج لإعطائي عدد المنافذ الserial والparallel مع طباعة عناوين الI\o لهذه المنافذ ولكن المشكلة ان العدد الناتج
لمنافذ الserial=4 و الparallel=3 اما العدد الحقيقي الموجود على جهازي كما هو مدرج في برنامج معلومات النظام في الويندوز أن الserial=2
والparallel=1 فماهي المشكلة ياترى..
وهذا هو كود الserial ports
#include <stdio.h>
#include <dos.h>
#include<conio.h>
void main(void)
{
unsigned int far *ptraddr=(unsigned int far *)0x00400000; /* Pointer to location of Port Addresses */
unsigned int address; /* Address of Port */
int a;
for (a = 0; a < 4; a++)
{
address = *(ptraddr+a+a);
if (address == 0)
printf("No port found for COM%d \n",a+1);
else
printf("Address assigned to COM%d is %Xh\n",a+1,address);
}
}وهذا هو كود parallel ports
#include<conio.h>
#include<stdio.h>
//#include<iostream.h>
void main()
{
unsigned int far *add= (unsigned int far*)0x00400008;
unsigned int padd;
for(int i=0;i<3;i++)
{padd=*(add+i);
if (padd==0)
printf(" NO SEARIAL PORTS FOUND\n");
else
printf(" Assigned address for parallel port%d is %Xh\n",i+1,comadd);}
getch();
}وعفوا على الإطالة
وجزاكم الله خيراً
