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

ما معنى هذا التوجيه؟

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

السلام عليكم

اني اعرف ان ملفات com بيكون في اول الكود مكتوب :

ORG 100H

ولكني وجدت في كود في كتاب عندي بالعربي التوجيه:

ORG 17H

وبحثت عن معنى هذا التوجيه في الكتاب ووجدته ولكني لم افهمه

فيا ريت الاقي حد يشرحلي معني هذا التوجيه بالظبط وبالتفصيل؟ وماذا يفعل؟ وما هي القيمة اللي كتبتها بعد التوجيه وايه الفرق اذا كتبت 100h ولا 17h ولا اي رقم آخر؟!

ارجو الإفادة

تحياتي ..........

تم تعديل هذه المشاركة بواسطة Ahmed$oft في 14 يوليو 2005 في 23:09

Web Developer using JSP & Servlet

اللهم انصر الإسلام والمسلمين وأهلك الكفرة أعداء الدين

#2

اخوي على حسب علمي البسيط ان ملفات الCOM مكونه من قسمين data و code

فلما تقول ORG 100h

يعني انت تخبر الاسبملر او اللنكر انه اول تعليمه بتكون في المكان h100 اي بعد 256 بايت اللي قبل التعليمة راح تكون للبيانات

وكذا الحال بالنسبة لل 17h لانها رقم

وهذا والله اعلم

تم تعديل هذه المشاركة بواسطة b.m.s في 15 يوليو 2005 في 01:54

#3
b.m.s كتب:
اخوي على حسب علمي البسيط ان ملفات الCOM مكونه من قسمين data و code

فلما تقول  ORG 100h 

يعني انت تخبر الاسبملر او اللنكر انه اول تعليمه بتكون في المكان h100 اي بعد 256 بايت اللي قبل التعليمة راح تكون للبيانات

وكذا الحال بالنسبة لل 17h لانها رقم

وهذا والله اعلم

السلام عليكم

الف شكر على الرد بس لي استفسار ليه نحطة في المكان 100h ولا 17h هتفرق ايه لو حطيت التعليمات في المكان دا ولا المكان دا ولا اي مكان آخر؟!

تحياتي ..........

Web Developer using JSP & Servlet

اللهم انصر الإسلام والمسلمين وأهلك الكفرة أعداء الدين

#4

ايه تفرق يا اخوي لانه على حسب حجم بيانات راح تغيير الرقم

لان الملف بيكون مقسم الى قسمين

القسم الاول للبيانات

والقسم الثاني الكود او الشفرة

فلو قلت 100h يعني ان حجم البيانات 256 بايت ويأتي الكود بعدها مباشرة

اما لو قلت 17h يعني ان حجم البيانات 23 بايت ويأتي الكود بعدها مباشرة

وهكذا والله أعلم

#5

السبب في كتابة التوجيه على هذا الشكل في ملفات com

هو إخبار المترجم أن من 100 هكسا يبدأ رصف البيانات و الشيفرة

أما لماذا 100 هكسا تحديدا .

لأن 100 == 256

و هي عدد الباتات التي تسبق برنامج exe و برنامج com

و التي يقوم الدوس بتهيئتها و تدعى psp

programe segment prefix

سلام :)

#6

السلام عليكم

الف شكر اخواني على الرد ولكني وجدت التوجيه

org 17h

و

org 100h

في كود واحد

وهذا الكود هم ما يلي:

BIODATA SEGMENT AT 40H ;Locate Bios data area

ORG 17H

KBSTATE DB ?

BIODATA ENDS

CODESEG SEGMENT PARA

ASUME CS:CODESEG,DS:BIODATA

BEGIN:

MOV AX,BIODATA ;Initilize address of

MOV DS,AX ;BIODATA in DS

MOV AL,KBSTATE ;Get Keyboard status byte

TEST AL,00000011B ;test either shift pressed

JNZ xxx

................

هذا هو الكود بالظبط من الكتاب

فما معنى انه وضعها مرة

ORG 17H في مقطع المعطيات DATA SEGMENT

ومرة خرى وضعها وفي نفس الكود

ORG 100H في مقطع الكود او الشفرة CODE SEGMENT ????

تحياتي ....

Web Developer using JSP & Servlet

اللهم انصر الإسلام والمسلمين وأهلك الكفرة أعداء الدين

#7
BIODATA SEGMENT AT 40H;Locate Bios data area
ORG 17H
KBSTATE DB ?

عندما أكتب التوجيه

A DB 00

هون المجمع عم يضع هذا المتحول وين ما بده في مقطع البيانات

بتعبير أخر وين ما بيجي ترتيبه

لكن يلي صار عند التالي

أول عبارة عم تخبر المجمع بوضع مقطع البانات في 40 هكسا

الثانية إخبار المجع بالرصف بدا بالموقع 17 هكسا

يعني 17 : 40 هكسا

هذا العنوان يا صاحبي يحتوي على بايت يسمى حالة معطيات الإزاحة

الخاصة بلوحة المفاتيح

العبارة الثالثة تعرف متحول يشير إلى هذا الموقع

سلام

#8

السلام عليكم

الف شكر على الرد الجميل

تحياتي ...

Web Developer using JSP & Servlet

اللهم انصر الإسلام والمسلمين وأهلك الكفرة أعداء الدين

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

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