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

[ تمت الإجابة ]اريد مساعدة فى فهم البرامج الاتية

بدأه احمد م حجازي في 14 مايو 2009 · 1 رد · 511 مشاهدة · في أرشيف قسم الـــ Assembly
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

هذا الكود لبرنامج عداد تنازلي من 0 الى 10

اريد معرفة ماذ تعنى

begin

فى هذة البرامج

mov cl,10

mov si,2000

begin: mov [si],cl

inc si

loop begin

brk

برنامج عداد تصاعدي يعد الأعداد الزوجية من 0 إلى 20 لعناصر

mov cx,0002

mov si,2000
mov bx,0000
begin : mov [si+bx],bx
add bx,cx
cmp bx,0020
jnz begin
brk

تم تعديل هذه المشاركة بواسطة Xacker في 15 مايو 2009 في 14:57 — السبب: إضافة تنسيقات على المشاركة

#2

begin هي لافتة label بما معناه..

في المثال الأول:

عندما يتم تنفيذ تعليمة loop يتم إنقاص قيمة المسجل CX بمقدار 1 فإن لم تصبح القيمة مساوية 0 يتم القفز إلى موضع begin ليعاد تكرار هذه الحلقة من التعليمات وهكذا إلى أن تصبح قيمة CX = 0 حينها يتم إهمال loop ولا يتم القفز وتصل إلى brk.

في المثال الثاني:

هي أيضاً لافتة لكن هنا تعتمد على مقارنة شرطية باستخدام JNZ، لاحظ أنها مسبوقة بتعليمة CMP والتي تقوم بمقارنة قيمة BX بالقيمة 20 فــلو لم تتطابق (وهذا هو معنى JNZ) يتم نقل التنفيذ إلى موضع begin ليعاد تكرار هذه الحلقة من التعليمات إلى أن تصبح قيمة BX = 20 حينها يتم إهمال JNZ وتصل إلى brk.

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

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

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

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

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

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