256
Subscribers
No data24 hours
No data7 days
+830 days
Posts Archive
256
نجي لسادس واحد الي راح يكون بس بمعالجات ال32-bit
هذا راح ينطيك قيمة الbase والindex والscale والازاحة او الdisplacement
راح تجمع قيمهن وتنقلهن للمكان الي كلك عليه نفس القبله بس الفرق عندك scale هنا بس
256
نجي لخامس وحده
الي هي اخر وحده بالنسبة للمعالجات الي تشتغل ب16-bit وهي الbase relative plus index addressing mode
اسمها شطوله🙂🙂🙂
المهم راح تلكه بيها
Segment+base+index+displacement
يعني شلون راح تنطيك قيم الهن مثلا
تكلك assume ال Bx=1000
DI=2000
DH=10
Displacement=20
يعني شراح تسوي عزيزي الطالب البائس
PA الي هو ال
Physical address العنوان الحقيقي
PA=(seg)0+EA
=BX+DI+20
=1000+2000+20
=3020
هاي القيمة عزيزي الطالب البائس راح تنقلها للDH
256
نجي لرابع وحده الي هي
Register relative addressing mode
هاي راح تكون الsegment ووياها ياما الbase او الindex وحده منهن فقط مو اثنينهم بس وحده!!!!!!!!!!
ونجمع وياهن ازاحة او مايسمى بdisplacement يمكن هيج تنكتب
يعني شلون
Mov Ax,[Bx+4]
هاي الاربعة هي الازاحة
يعني راح ينطيك قيمة الBx مثلا يكلك هي 1000 تجمعها وي ال4 الي هي الازاحة وتوديها للAx
256
الindex هم اثنين فقط
الsource index
والdestination index او مايرمز لهن
بSI والDI هذا الحجي بس بام ال16-bit
وال segment هن 4 فقط
الCode segment الي هي CS
الStack segment الي هي الSS
الData segment الي هي الDS
والاخيرة الي هي اضافية مالها شغل بس من يقبطن هذنيج الي هي
الExtra segment الي هي الES
هسه تشوف بامهات ال32-bit اكو بعد اثنين هذني بالتطور التقني ضافوهن
256
نجي لثالث واحد الي هو Base plus index addressing mode
هذا شنو هذا راح ينطي segment ويجمعها وي الbase ووي الindex
256
يشرح لك الaddresing mode
اول وحده register addressing mode
يعني
Mov Ax,Bx
هذني ريجستر لريجستر
او
Mov Al,Bl
Mov Bh,Cl
نجي للي بعدها الي هي
Immediate addressing mode
هاي شنو ينطي رقم مثل 1234 او 5737 او هيج شي وينقلهن للريجستر
Mov Ax,1234
يعني انقل قيمة 1234 للريجستر الAx
واي ريجستر نكدر نخلي هنا اما انه نسوي العكس مالها معنى يعني شلون
يعني تنقليهن هيج
Mov 1234,Ax
او
MOV 1674,Dx
هذني مالهن اي معنى يعني تنقل قيمة ريجستر لرقم؟ ماتصير
يالله دخلنا بالثالثة الي بيها تفرعات
الي هي Memory addressing mode
هاي بيها عدة افرع
اول واحد الي هو direct addressing mode هذا شنو راح ينطي
Mov Ax,[1234]
او
Mov Al,[0030]
طبعا بالنسبة لثاني وحده هاي شنو هذني الصفرين تخلينهن ما تخلينهن عادي
والي راح يصير هنا انه راح ننقل القيم الموجودة بموقع الذاكرة الي يصير بين هذني القوسين الي ما اعرف اسمهن (طبعا شي اكيد اكو قمية موجودة بموقع الذاكرة هذا) راح ننقلهن للريجستر الي هو الAx او الAl
طبعا الAx
متكون من جزئين وهما الAl,Ah
وكل باقي الريجسترات مثل الBx,Cx,Dx
او ممكن تصير العكس يعني شلون
Mov [6747],Ax
يعني تنقل قيمة الAx المن لموقع الذاكرة
ثاني وحده الي هي الindirect addressing mode
هاي بعد ما ينطيك ارقام بهذني القوسين الي مدري شسمهن راح ينطيك غير شي مثلا ريجستر او بيس بوينتر BP او يكلك بهذا الsource index الي هو SI اكو قيمة او بdestination index اكو قمية انقلها
256
Repost from N/a
Chapter 2 part 1
https://youtu.be/0mMqvwmIP_s
Chapter 2 part 2
https://youtu.be/iIEc7juhae0
Chapter 2 part 3
https://youtu.be/f4kjsdDcB-U
Chapter 2 part 4
https://youtu.be/LsKR9Cd6MsE
256
Repost from N/a
شرح د.دنيا للفصل الثاني من صفحه 7الى 18
https://youtu.be/XP80FczS3Sw?si=ln408BfVTYGgXx4r
256
Repost from N/a
السؤال مكون من جزئين :
- المتمم لعدد 32 بت
- جمع عددين 32 بت
Two's Complement :
كما تعلمنا بالمرحلة الاولى هو عبارة عن
عكس البتات يعني 1 يصير 0 والـ 0 يصير 1
ثم اضيف 1
وهذا بالضبط الّي يقوم بي الأمر
NEG
(طبعا هنا الـ CF راح يتفعل)
الأمر NEG ينفذ هاي العملية على 16 بت
واني اريد انفذه على 32 بت, الحل ؟!
ببساطة أجزء الـ 32 بت الّي عندي الى جزئين
واعمل NEG لكل جزء وبس !
لكن ما انسى ان من انفذ NEG للـ 16 بت الاولى
گلنا راح يصير عندي CF فلازم قبل لا اسوي
للـ 16 بت الثاني NEG اضيفلها الـ CF
شلون ؟ من خلال الأمر ADC R, 0
ليش 0 لان ببساطة اني الـ 16 البت الثاني
اريدها نفسها بس اضيفلها الـ CF
ADC R, 0 = R + 0 + CF = R
وبعدين اسوي NEG له
الكود :
R DS
: 2000
E DS:200 12 34 56 78
A
NEG WORD PTR [200]
ADC WORD PTR [202], 0
NEG WORD PTR [202]
INT 3
G = 100
D 200 203
Add Two 32 bit :
هذا اسهل نسبيًا
فرضًا عندي الرقمين 1234 + 5678
اجمع الجزء Low مع الجزء الـ Low
ثم اجمع الجزء High مع الجزء الـ High مع الـ CF !
على سؤلنا كذا يكون الكود :
E DS:300 87 65 43 21
A
MOV AX, [300]
MOV BX, [302]
ADD [200], AX
ADC [202], BX
INT 3
G = 10E
D 200 203