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

معنى db في الكود في قسم ال data

مغلق
بدأه fafe0 في 22 مارس 2006 · 4 رد · 1,527 مشاهدة · في لغة Assembly لأنظمة 16, 32, 64 بت
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

قرأت مقال الأخ xacker حول بناء أول تطبيق 32 في أسمبلي بmasm

وكذلك درس الأخ أحمد غريب " درس مبسط جداً في الأسمبلي "

طبقت الشرح وكل شي تمام والحمد لله

وكذلك قرأت درس لشخص اسمه ciezolen أو شيء مثل هذا، لا أذكر الاسم بالضبط

المهم، لم يتطرق أي شرح من الشروحات الماضية لمعنى db في الكود في قسم الـ data

أرجو إعطاء رابط، او ذكر " على السريع " لأهم أنواع البيانات في masm32

أرجو منكم شرح هذا الرمز، وشكراً لكم مقدماً.

تم تعديل هذه المشاركة بواسطة fafe0 في 22 مارس 2006 في 11:17

#2

تقصد Iczelion

db = define byte

في Assembly تكتب:

delta  db "Hell world!", "$"

مثلما تكتب في pascal

const delta:string='Hell world!';

تم تعديل هذه المشاركة بواسطة DeltaAziz في 22 مارس 2006 في 15:48

d4baa0.gif
#3

شكرا جزيلاً أخي delta

مثالك بالباسكال وضح الصورة بشكل ممتاز :)

نعم، أقصد Iczelion

بس، على ما أذكر في الأمثلة التي ذكرتها لكم في المشاركة الأولى لا يوجد رمز "$"

ولكن يوجد بدلها صفر 0

وهل أفهم من كلامك أنه في قسم data? لا أكتب db والتي هي define byte ؟

عموماً، أعيد الطلب مرة أخرى إذا ما كان فيه مانع:

أريد أي رابط، أو أي شخص يذكر ( باختصار ) أهم أنواع البيانات في masm32

وشكراً لكم :)

#4

بخصوص تعريف المعطيات (وليس نوع البيانات فالبيانات رقمية تمثل اما عشريا او ست عشريا, او نصية "حرفية") فهي,

db -> define byte (1byte long, or a set of bytes like "Hello World!" shown above)
dw -> define word (2 bytes)
dd -> define doubleword (4bytes)
dt -> define ten (10 bytes, DOH :p)
dq -> define quadword (as far as i can remember, 4 dwords)

$ تستخدم في انهاء سلسلة بايتات في بيئة 16بت, الصفر في بيئة 32بت.

اقتباس
وهل أفهم من كلامك أنه في قسم data? لا أكتب db والتي هي define byte ؟

بالعكس, انت مضطر لكتابتها, لكن اعتقد انه تهت في مسالة اللافتة delta, هذه تسمح بتعريف البايت بلافتة معينة لاستخدامه لاحقا في الكود.. بمعنى انك ستستخدم delta في استخدام هذه السلسلة من البايتات.

أيضاً يمكنك استخدام اللافتات في أمور أخرى مثل حساب طول سلسلة بايتات معينة قمت بكتابتها مباشرة في برنامجك دون الحاجة إلى حساب طولها من خلال حلقة وهاك مثال

arrData	  db	 1,5,6,2,6,7,1,5,7,2,5,8,0,34
arrEnd:

mov	ax,offset (arrEnd-arrData)

Do as I say, not as I do

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

#5

شكراً جزيلاً أخي xacker على سرعة الرد :)

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

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