نمایش نتایج: از شماره 1 تا 4 از مجموع 4
Like Tree3نفر پسندیدند
  • 1 ارسال توسط Hossein
  • 1 ارسال توسط ناصر آرام نژاد
  • 1 ارسال توسط Hossein

موضوع: Help me about NASM error

  1. #1
    مدیر بازنشسته
    تاریخ عضویت
    2011 June
    محل سکونت
    تهران
    سن
    36
    ارسال ها
    37
    تشکر
    11
    تشکر شده 66 بار در 26 پست


    آيا اين پست براي شما سودمند بود؟ بله | خیر

    Post Help me about NASM error

    سلام

    موقع اسمبل کردن برنامم ، nasm برای همه خط هایی که این کد توش هست میگه Invalid operand type
    ظاهراً با خود bp مشکل داره. کسی میتونه کمک کنه؟


    label1 equ bp-2
    --------------------
    label2 equ bp-4

    -------------------
    اگه حل نشد میشه به جای کد بالا از این کد استفاده کرد؟
    push ax
    -------------------
    label1 dw ?
    move ax,bp-2
    move label1,ax

    label2 dw ?
    move ax,bp-4
    move label2 , ax
    -------------------
    pop ax


    موضوعات مشابه:
    ویرایش توسط ناصر آرام نژاد : 2nd July 2011 در ساعت 07:51 AM

  2. #2
    بنیانگذار
    تاریخ عضویت
    2010 January
    محل سکونت
    زیر سایه خدا
    سن
    37
    ارسال ها
    1,308
    تشکر
    2,923
    تشکر شده 2,205 بار در 886 پست
    نوشته های وبلاگ
    37


    آيا اين پست براي شما سودمند بود؟ بله | خیر
    نقل قول نوشته اصلی توسط ناصر آرام نژاد نمایش پست ها
    سلام

    موقع اسمبل کردن برنامم ، nasm برای همه خط هایی که این کد توش هست میگه Invalid operand type
    ظاهراً با خود bp مشکل داره. کسی میتونه کمک کنه؟


    label1 equ bp-2
    --------------------
    label2 equ bp-4



    اگه حل نشد میشه به جای کد بالا از این کد استفاده کرد؟
    push ax
    -------------------
    label1 dw ?
    move ax,bp-2
    move label1,ax

    label2 dw ?
    move ax,bp-4
    move label2 , ax
    -------------------
    pop ax

    سلام .
    از عنوان فارسی استفاده کنی بهتره .
    ---------------
    باید ارور هم بگیره . EQU ها دایرکتیو هستن . اینا در اصل فقط برای زیبایی کد و خوانایی کدها استفاده میشن و قبل از این که کد ها برای کامپایل فرستاده بشه کامپایلر میاد هر جا از این EQU ها دید معادل جلوش رو توی سورس کد قرار میده و بعد سورس حاصله رو میفرسته برای کامپایل .
    و اینم باید بدونی که جلوی EQU ها فقط و فقط کانستنت ! قرار میگیره ! یعنی یه مقدار ثابت عددی یا رشته ای . فکر کنم دلیل مشکلت رو فهمیدی الان .


    نقل قول نوشته اصلی توسط ناصر آرام نژاد نمایش پست ها
    label1 dw ? move ax,bp-2 move label1,ax label2 dw ? move ax,bp-4
    در مورد دوم برای مقدار دهی کردن متغییر ها هم درست داری پیش میری.
    فقط یه چیزی تو میخوای یه مقداری که bp-2 الان داره بهش اشاره میکنه رو بزاری تو لیبل یا اینکه میخوای فقط bp-2 حاصلش هر عددی میشه رو بزاری تو لیبل؟ اگه مقدارشو میخوای باید bp-2 رو بزاری تو برکت [bp-2] .
    همین .

    پ.ن: حالا چرا از Masm استفاده نمیکنی؟

    NIIT این نویسه را میپسندد.
    توکل بخدا
    http://DeepLearning.ir
    اولین و تنها مرجع یادگیری عمیق ایران


    هرکس از ظن خود شد یار من
    از درون من نجست اسرار من




  3. #3
    مدیر بازنشسته
    تاریخ عضویت
    2011 June
    محل سکونت
    تهران
    سن
    36
    ارسال ها
    37
    تشکر
    11
    تشکر شده 66 بار در 26 پست


    آيا اين پست براي شما سودمند بود؟ بله | خیر
    نقل قول نوشته اصلی توسط Master نمایش پست ها
    سلام .
    از عنوان فارسی استفاده کنی بهتره .
    ---------------
    باید ارور هم بگیره . EQU ها دایرکتیو هستن . اینا در اصل فقط برای زیبایی کد و خوانایی کدها استفاده میشن و قبل از این که کد ها برای کامپایل فرستاده بشه کامپایلر میاد هر جا از این EQU ها دید معادل جلوش رو توی سورس کد قرار میده و بعد سورس حاصله رو میفرسته برای کامپایل .
    و اینم باید بدونی که جلوی EQU ها فقط و فقط کانستنت ! قرار میگیره ! یعنی یه مقدار ثابت عددی یا رشته ای . فکر کنم دلیل مشکلت رو فهمیدی الان .



    در مورد دوم برای مقدار دهی کردن متغییر ها هم درست داری پیش میری.
    فقط یه چیزی تو میخوای یه مقداری که bp-2 الان داره بهش اشاره میکنه رو بزاری تو لیبل یا اینکه میخوای فقط bp-2 حاصلش هر عددی میشه رو بزاری تو لیبل؟ اگه مقدارشو میخوای باید bp-2 رو بزاری تو برکت [bp-2] .
    همین .

    پ.ن: حالا چرا از Masm استفاده نمیکنی؟

    [ASM (NASM)] .model tiny .386 R_UGOL equ 60 L_UGOL equ R_UGOL-17*2 A_VAL equ 20077 C_VA - Pastebin.com تو این سایت یک برنامه هست که دقیقاً از کد بالا استفاده کرده تو همون 4-5 سطر اولش.

    نمیدونم. اون bp-2 رو داخل [] گذاشته. ولی تو NASM سینتکس اررور میده وقتی تو [] میگذارم.

    فکر می کنم NASM این مشکلو داره. MASM فایل Flat-Binary تا جایی که خوندم خروجی نمیده. exe میده. همه اول NASM و بعد TASM رو پیشنهاد میدن.

    البته FASM و YASM هم هستن که از بقیه کاملتر هستند . با YASM هیچ ارروری نمیده ولی فلش هم بوت نمیشه ازش. قاطی کردن دیگه.

    NIIT این نویسه را میپسندد.

  4. #4
    بنیانگذار
    تاریخ عضویت
    2010 January
    محل سکونت
    زیر سایه خدا
    سن
    37
    ارسال ها
    1,308
    تشکر
    2,923
    تشکر شده 2,205 بار در 886 پست
    نوشته های وبلاگ
    37


    آيا اين پست براي شما سودمند بود؟ بله | خیر
    اروری که میگیری رو اینجا بنویس ورژن Nasm یی هم که استفاده میکنی بگو .

    NIIT این نویسه را میپسندد.
    توکل بخدا
    http://DeepLearning.ir
    اولین و تنها مرجع یادگیری عمیق ایران


    هرکس از ظن خود شد یار من
    از درون من نجست اسرار من




 

 

کاربران برچسب خورده در این موضوع

کلمات کلیدی این موضوع

علاقه مندی ها (Bookmarks)

علاقه مندی ها (Bookmarks)

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •  


Powered by vBulletin
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO 3.6.0
Persian Language By Ustmb.ir
این انجمن کاملا مستقل بوده و هیچ ارتباطی با دانشگاه علوم و فنون مازندران و مسئولان آن ندارد..این انجمن و تمامی محتوای تولید شده در آن توسط دانشجویان فعلی و فارغ التحصیل ادوار گذشته این دانشگاه برای استفاده دانشجویان جدید این دانشگاه و جامعه دانشگاهی کشور فراهم شده است.لطفا برای اطلاعات بیشتر در رابطه با ماهیت انجمن با مدیریت انجمن ارتباط برقرار کنید
ساعت 06:09 PM بر حسب GMT +4 می باشد.