اطلاعیه

Collapse
No announcement yet.

سوال اسمبلی

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    سوال اسمبلی

    سلام دوستان .

    دو تا سوال دارم .ممنون میشم اگه جوابمو بدین .
    1) چرا بجای stseg segment عبارت stseg segment stack 'stack' استفاده میشود؟
    2) حرف R در فایل LST. در جلوی هگز کد بعضی دستور العملها به چه مفهومی است؟
    بازم ممنونم .
    لطفا سریعتر بگین خیلی بهشون نیاز دارم .
    اگرم جایی در بارش توضیح دادین ادرسش رو بهم بگین. :angry:برای مثال
    l 0000 B8 ---- R mov ax,dtseg
    0003 8E D8 mov ds,ax
    0005 B9 0004 mov cx,04h
    0008 BF 0000 R mov di,offset data_in
    000B BB 0000 mov bx,00h
    000E 03 1D add_lp: add bx,[di]
    0010 47 inc di
    0011 47 inc di
    0012 B4 4C mov ah,4ch
    0014 CD 21 int 21h
    0016 main endp
    0016 cdseg ends
    end main
    ن هم برنامه و هم هگز کد که Rدر هگز کد به وجود امده.



    برای سوال دیگر:در عبارت stseg segment (که تعریف stack segmentدر کد نویسی است) چه خطایی رخ می دهد؟
    که با نوشتن stack 'stack'در ادامه عبارت بالا رفع می شود؟در واقع stack 'stack'چه کاربردی دارد؟

    #2
    پاسخ : سوال اسمبلی

    در مورد R فکر میکنم به این خاطر هست که این دستور باعث تولید relocation میشه. یعنی در زمان ترجمه به کد ماشین نمیشه آدرس رو تشخیص داد. احتمال بسیار زیاد فایل نهایی شما بایستی یک فایل exe باشه. در این صورت معلوم نیست که این برنامه در چه آدرسی از حافظه بار میشه و نتیجتا در این موقعیت از کد نمیشه یک آدرس مطلق (حتی داخل سگمنت) قرار داد. پس این آدرس بطور relocated قید میشه. در هدر فایل آدرس این دستور به همراه یک سری اطلاعات جنبی ذخیره میشه تا loader بتونه در زمان بارگذاری برنامه آدرس حقیقی رو در این محل ها قرار بده.

    در مورد stack فکر میکنم به این خاطر هست که وقتی فایل com داریم SP در انتهای 64 کیلوبایت سگمنت ست میشه ولی برای فایل exe باید مشخص باشه که stack کجای حافظه هست. شما این رو قید میکنین که سگمنت پیش فرض استک مشخص بشه. فکر میکنم اگر این عبارت رو قید نکنین فقط یک warning بگیرین.

    دیدگاه


      #3
      پاسخ : سوال اسمبلی

      ممنونم از راهنمایی که کردین ...
      یک سوال دیگه هم داشتم ...
      مدهای آدرسدهی مختلف که می توان در آنها از ( sp (stack pointer را بررسی کنید .
      و در ادامه لطفا یک نمونه برنامه ای برای test و debug بنویسید .
      plz زود جواب بدین .
      پیشاپیش ممنونم :mrgreen:

      دیدگاه


        #4
        پاسخ : سوال اسمبلی

        احیانا" شما با استاد اغازاریان کلاس ندارید :mrgreen:

        دیدگاه

        لطفا صبر کنید...
        X