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

اسئلة عن الرجسترات

مغلق
بدأه زيد العمري في 1 مارس 2005 · 2 رد · 2,859 مشاهدة · في لغة Assembly لأنظمة 16, 32, 64 بت
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

إخواني لدي بعض الأسئلة البسيطة إن شاء الله عن الرجسترات ذات 8bit و 16 bit

متى يستخدم AL و متى AX تحديدا

( هل اكبر قيمة يأخذها AL هي 1111 يعني FF ) .

الحالات التالية

MOV AL,5

MOV AX,5

MOV AL,10000

MOV AX,100000

ماهي قيم كل من AL و AH و AX عند تنفيذ كل من الإيعازات السابقة .

ارجو التوضيح ، ومن كان لديه أي معلومة إضافية فلا يبخل بها .. والله لا يضيع اجر المحسنين

برامج في ال C#

إذا اشتكى مسلم في الهند أرقني -- وإن بكى مسلم في الصين بكاني

ومصر ريحانتي والشام نرجستي -- وفي الجزيرة تاريخي و عنواني

وفي العراق أكف المجد ترفعني -- إلى بساتين عز ذات أفنانِ

أرى بخارى بلادي وهي نائية -- وأستريح إلى ذكرى خراسانِ

#2

السلام عليكم,

إن الرجستر ax مثلا هو رجستر من سعة 16 بت وهو في نفس الوقت مقسم إلى رجستران ah و al وهما رجستران من سعة 8 بت والإثنان معا يكونان ax . و al أو low يكون الثمان بت الأولى للرجستر ax بينما يكون ah الثمان بت العالية أو الباقية. وكما نوقش من قبل في هذا المنتدى فإن أي رجستر من فئة n بت يمكن أن نخزن فيه 2 أس n من الأرقام هذا بدون أن ندخل في الخصائص إذا أردنا الرقم موجبا أو سالبا. فإذن رجستر من فئة 8 بت يمكن أن يحتوي على 2 أس 8 وهي 256 أو نقول يمكن أن نضع فيه الأعداد من 0 إلى 255 - وهي طبعا 256 رقما - . والعدد 255 هو يساوي FF في نضام الهكس وهو يعني أن كل البتات ستكون قيمتها 1 يعني 11111111 في النضام البايناري.

وفيما يخص التعليمات التي وضعتها هل الأرقام التي أعطيتها هي بالبايناري أو النضام العشاري. وعلى ما يبدو ربما كنت تقصد البايناري ولهذا يجب التوضيح . وهنا سأفترض أن الأرقام المكونة من 1 و 0 هي في النضام البايناري.

MOV AL,5

هذه التعليمة ستضع العدد 5 في الرجستر al بدون أن تغير محتوى ah . فمثلا لو نفترض أن AX=1234h فهذا يعني أن الرجستر ah=12h والرجستر al=34h فبعد التعليمة mov al,5 سيكون عندنا ah=12h دائما بينما al=5 والرجستر ax=1205h .

في التعليمة mov ax,5 هنا سيتغير الموقف لأننا سنغير 16 بت في مرة واحدة وبعد هذا سيصبح الرجستر ax كله يساوي 5 وهذا يؤدي إلى أن الرجستر ah =0 بينما al=5 .

MOV AL,10000

هنا إذا كان الرقم المذكور عشاري فهذا غير ممكن لأن الرقم يفوق سعة الرجستر أما إذا كان بيناري فكما سبق سنضع العدد 16 في الرجستر al .

MOV AX,100000

هنا أيضا إذا كان الرقم عشاري فهذا غير ممكن لأن الرقم يفوق سعة الرجستر إما إذا كان بيناري فكما سبق سيضع العدد 32 في الرجستر ax .

إلى اللقاء.

#3

مشكور أخي الكريم

دائما لا ترد سائلا .. جزاك الله خيرا

لو لم يكن بكفه غير نفسه لجاد بها فليتقِ الله سائله

بارك الله فيك

برامج في ال C#

إذا اشتكى مسلم في الهند أرقني -- وإن بكى مسلم في الصين بكاني

ومصر ريحانتي والشام نرجستي -- وفي الجزيرة تاريخي و عنواني

وفي العراق أكف المجد ترفعني -- إلى بساتين عز ذات أفنانِ

أرى بخارى بلادي وهي نائية -- وأستريح إلى ذكرى خراسانِ

هذا الموضوع مغلق.

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