تبلیغات :
ماهان سرور
آکوستیک ، فوم شانه تخم مرغی ، پنل صداگیر ، یونولیت
فروش آنلاین لباس کودک
خرید فالوور ایرانی
خرید فالوور اینستاگرام
خرید ممبر تلگرام

[ + افزودن آگهی متنی جدید ]




صفحه 3 از 4 اولاول 1234 آخرآخر
نمايش نتايج 21 به 30 از 32

نام تاپيک: آموزش Assembly

  1. #21
    داره خودمونی میشه Blacklord's Avatar
    تاريخ عضويت
    May 2006
    محل سكونت
    اصفهان
    پست ها
    136

    پيش فرض

    سلام
    راستش من چند وقتیه دنبال اسمبلی هستم ولی چیز خوبی پیدا نکردم ولی با دیدن این تاپیک خیلی خوشحال شدم و خیلی هم دوست دارم یاد بگیرم خیلی خیلی ممنون.
    دوست من شما زیاد ناراحت نشو شاید بعضی از دوستان به دلیل بی حوصلگی پست نمیدن ولی مطمئن باش کارات برای خیلی ها ارزشمند و قابل تقدیره
    از قدیم گفتن کاری که شروع کردی رو هیچ وقت نیمه کاره نذار.
    راستی من یه سوال دارم اگه میشه لطف کنین جواب بدین : راستش من خیلی دوست دارم رو سیستم های موبایل کار کنم ،میشه بگید چجوری باید بفهمم که cpu موایل مورد نظرم چیه و چه نوع اسمبلی لازم دارم؟
    یه چیز دیگه :اگه میشه یکم راجع به disassembler هم توضیح بدین.
    خیلی ممنونم.
    راستی سوالتون راجع به cpu موبایل، میتونی مدل گوشیهای مورد نظرتو همراه با کلمه ی embedded processors روی گوگل سرچ بکنی، ولی اصولا برنامه نویسی موبایل برای سیمبین با ++C هستش و برای بقیه جاوا، مد اسمبلی ندیدم من...

  2. #22
    اگه نباشه جاش خالی می مونه elyass's Avatar
    تاريخ عضويت
    Jan 2007
    پست ها
    209

    پيش فرض

    اين بخشو تا حالا نديده بودم. دروغ چرا يه مدت نبودم . ادامه بديد. منم اگه كاري ازم برومد انجام ميدم.
    ممنون

  3. #23
    داره خودمونی میشه Blacklord's Avatar
    تاريخ عضويت
    May 2006
    محل سكونت
    اصفهان
    پست ها
    136

    11 مبحث ششم: ساختار یک برنامه ی اسمبلی

    ساختار یک برنامه ی اسمبلی:
    در این بخش اول واحدهای حافظه رو بررسی میکنیم، بعدش بخش های یه برنامه ی اسمبلی رو.

    واحد های حافظه:
    انواع متغیر در برنامه نویسی اسمبلی؟ یعنی اسمبلی مثل زبان های سطح بالا انواعی مثل integer, boolean ,float و امثال اینا رو داره؟ نه!!!!!! این سوسول بازیا مال همون زبانای سطح بالاست!! تو اسمبلی شما یه سری حافظه داری که میتونی ازشون استفاده کنی. دو حالت داره، یا از حافظه های خود cpu استفاده میکنی که بهشون ثبات یا Register گفته میشه، یا از RAM استفاده میکنی.

    استفاده از ثبات ها:
    استفاده از ثبات ها خیلی آسونه، هر ثبات یه اسمی داره مثلا Ax و در 8086 ثبات ها 16 بیتی هستند، یعنی هر ثبات 16 تا خونه داره (زشته که بگیم خونه، از این به بعد میگم بیت!!) که توی اونا صفر یا یک ذخیره شده، شما حتی میتونید از هر نصفه ی یک ثبات جداگانه استفاده کنید، به این صورت که برای هر نصفه از یک ثبات اسم جدایی در نظر گرفته شده. مثلا ثبات Ax دو قسمت داره، 8 بیت سمت راست یا کم ارزش که با اسم Al مشخص میشه و 8 بیت سمت چپ یا پر ارزش که Ah نام داره. در مبحث قبل عکسش هست. شما به عنوان برنامه نویس میتونید با هر کدوم از اینا کار کنید. مثلا بنویسید MOV Ax,240 این دستور عدد 240 رو میذاره توی Ax یعنی محتوای Ax به این شکل میشه:
    0000000011110000
    پس 16 بیت به این صورت با صفر و یک پر میشه. میتونید بنویسید MOV Ah,12 در این صورت 8 بیت پرارزش تر 00001100 خواهد شد و 8 بیت کم ارزش مقداری که قبلا توش بوده رو حفظ میکنه.

    استفاده از RAM:

    برای استفاده از RAM باید برای یک قسمت از اون اسم انتخاب کنی و با اون اسم اون قسمت رو فراخوانی کنی. پس شما یه متغیر مثلا x رو تعریف میکنی و بعد ظرفیتش رو مشخص میکنی.
    انواع ظرفیت ها:
    بایت ( Byte ): داده ای به طول 8 بیت
    کلمه ( Word ): داده ای به طول 16 بیت
    کلمه ی مضاعف ( Double Word ): داده ای به طول 32 بیت
    کلمه ی چهارگانه ( Quad Word ): داده ای به طول 64 بیت
    پاراگراف ( Paragraph ): داده ای به طول 128 بیت

    به عنوان مثال با نوشتن دستور زیر متغیر x به طول 8 بیت با مقدار اولیه 12 تعریف میشه:
    x DB 12
    قسمت اول اسم متغیر هستش که نوشته شده x ، قسمت دوم ظرفیت رو مشخص میکنه، DB مخفف Defined Byte هستش یعنی متغیر ما 8 بیت ظرفیتش هست. قسمت آخر هم یک مقدار اولیه به متغیر انتساب میده، در اینجا ما 12 رو انتساب دادیم. میتونستیم بنویسم:

    ? x DB
    این دقبقا همون قبلیه ولی مقدار اولیه انتساب نمیده. ? یعنی مقدار اولیه نامشخص.

    بخش های یک برنامه ی اسمبلی:
    هر برنامه ی اسمبلی اقلا 3 تا بخش یا Segment داره،

    بخش اول: بخش پشته ( Stack Segment ) :

    در این بخش برنامه نویس مشخص میکنه که ظرفیت پشته چقدر باشه.

    مهم: یه نفر راجع به این که پشته چی هست توضیح بده.

    بخش دوم: بخش داده ( Data Segment ):
    در این بخش متغیر ها تعریف میشوند. مثلا دستور x DB 12 رو باید تو این بخش بنویسید.

    بخش سوم: بخش کد ( Code Segment ):
    کدها یا همون دستورات برنامتون رو باید تو ای بخش بنویسید.

    با یک مثال برنامه نویسی به زبان اسمبلی رو شروع میکنیم!

    STKSG SEGMENT PARA STACK 'STACK'
    DW 100 DUP(?)
    STKSG ENDS

    DATASG SEGMENT PARA PRIVATE 'DATA'
    X DW 15
    Y DW 25
    Z DW ?
    DATASG ENDS

    CODESG SEGMENT PARA PRIVATE 'CODE'

    MAIN PROC FAR
    ASSUME DSATASG, CS:CODESG, SS:STKSG

    MOV AX, DATASG ;Move the start address
    MOV DS, AX ;of data segment to DS

    MOV AX, X
    ADD AX, Y
    MOV Z, AX

    MOV AX, 4C00H ;Terminate program
    INT 21H
    MAIN ENDP

    CODESG ENDS

    END MAIN
    یه کم روی این برنامه فکر کنید، بگید این برنامه چه کار میکنه. اولین کسی که گفت جایزه داره! تو مبحث بعد خط به خط این برنامه رو توضیح خواهم داد.
    Last edited by Blacklord; 27-03-2008 at 02:56.

  4. #24
    داره خودمونی میشه Blacklord's Avatar
    تاريخ عضويت
    May 2006
    محل سكونت
    اصفهان
    پست ها
    136

    پيش فرض

    هر جا ابهامی هست بگید تا توضیح بدم.

  5. #25
    داره خودمونی میشه Blacklord's Avatar
    تاريخ عضويت
    May 2006
    محل سكونت
    اصفهان
    پست ها
    136

    پيش فرض

    در ضمن آقایون من یه مدت نبودم، شرمنده. اگر چند نفر پیدا بشن کمک کنند منو در ادامه ی تاپیک خیلی عالی میشه!! من به شدت سرم شلوغ شده نمیرسم زود به زود آپدیت کنم.

  6. #26
    آخر فروم باز symk's Avatar
    تاريخ عضويت
    May 2007
    محل سكونت
    هر جا که اینترنت باشه
    پست ها
    2,017

    پيش فرض

    آقا جان دستت درد نکنه . همین طوری ادامه بده .

  7. #27
    حـــــرفـه ای Ar@m's Avatar
    تاريخ عضويت
    Nov 2006
    پست ها
    3,300

    پيش فرض

    منم اسمبلی رو تازه شروع کردم بعدشم ولش کردم چون اصلا نمی تونستم با asm یا tasm برنامه ها رو اجرا کنم الان یادم نمی یاد چرا
    ولی این برنامه هه توی پست 23 به x مقدار 15 می ده به y مقدار 25 بعد هم جمعشون رو می ریزه توی z
    مثل اینکه خیلی یادم رفته چون نمی فهمم شما چرا توی SS صد تا علامت سوال گذاشتی یا آخرش با این 100 تا ؟ چیکار کردی
    مرسی برای آموزش منم این تاپیک رو تازه دیدم

  8. #28
    داره خودمونی میشه Blacklord's Avatar
    تاريخ عضويت
    May 2006
    محل سكونت
    اصفهان
    پست ها
    136

    پيش فرض

    جوابتون درسته، اگه یه نفر بتونه بگه اصولا پشته چیه معلوم میشه که 100 تا ؟ برای چیه، 2 روز وقت میدم!!!

  9. #29
    حـــــرفـه ای Ar@m's Avatar
    تاريخ عضويت
    Nov 2006
    پست ها
    3,300

    پيش فرض

    پشته فضاییه برای ذخیره موقت داده ها برای افزایش سرعت دسترسی برنامه به اونا
    Ss هم آدرس شروع پشته است
    پس با این حساب با Dw 100 Dup(?) شما فضایی به اندازه 100 کلمه یعنی 1600 بیت تعریف کردین
    اون علامت سواله معنیش این نیست که 100 تا ؟ گذاشتیم یعنی فضا تعریف نشده است و خالیه
    اگه زیاد غلط گفتم برای این بودش که هیچ جا پیدا نکردم این خط یعنی چی!!!

    من درباره Para توی کتاب خوندم اما نفهمیدم یعنی چی می شه شما توضیح بدی؟

  10. #30
    داره خودمونی میشه Blacklord's Avatar
    تاريخ عضويت
    May 2006
    محل سكونت
    اصفهان
    پست ها
    136

    پيش فرض

    به علت وحشتناک شدن وضعیت تحصیلی تا آخر این ترم آپدیت نمیکنم!!!

Thread Information

Users Browsing this Thread

هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)

User Tag List

قوانين ايجاد تاپيک در انجمن

  • شما نمی توانید تاپیک ایحاد کنید
  • شما نمی توانید پاسخی ارسال کنید
  • شما نمی توانید فایل پیوست کنید
  • شما نمی توانید پاسخ خود را ویرایش کنید
  •