نمایش نتایج 1 تا 16 از 16

نام تاپیک: چطوری می تونم محتوای یک حافظه 8 بیتی یا al رو توی 16 بیتی ax بریزم؟

  1. #1

    چطوری می تونم محتوای یک حافظه 8 بیتی یا al رو توی 16 بیتی ax بریزم؟

    چطوری می تونم محتوای یک حافظه 8 بیتی یا al رو توی 16 بیتی ax بریزم؟

  2. #2

    نقل قول: چطوری می تونم محتوای یک حافظه 8 بیتی یا al رو توی 16 بیتی ax بریزم؟

    بادستور mov al,ax میشه این کار رو کرد.

  3. #3
    کاربر دائمی آواتار hoax3r
    تاریخ عضویت
    مهر 1386
    محل زندگی
    تهران
    پست
    171

    نقل قول: چطوری می تونم محتوای یک حافظه 8 بیتی یا al رو توی 16 بیتی ax بریزم؟

    چون ثبات al و ax هم اندازه نیستن برای منتقل کردن محتوایشون باید از دستور movzx یا movsx استفاده بشه


    movzx ax, al
    movsx ax, al

  4. #4

    نقل قول: چطوری می تونم محتوای یک حافظه 8 بیتی یا al رو توی 16 بیتی ax بریزم؟

    نقل قول نوشته شده توسط fazlnet مشاهده تاپیک
    بادستور mov al,ax میشه این کار رو کرد.
    خوب عزیزم این کار خطا است.

  5. #5

    نقل قول: چطوری می تونم محتوای یک حافظه 8 بیتی یا al رو توی 16 بیتی ax بریزم؟

    نقل قول نوشته شده توسط hoax3r مشاهده تاپیک
    چون ثبات al و ax هم اندازه نیستن برای منتقل کردن محتوایشون باید از دستور movzx یا movsx استفاده بشه


    movzx ax, al
    movsx ax, al
    من اینو شنیدم اما من از برنامه ای به نام emulator 8086 استفاده می کنم این دستورات رو نمی شناسه.

  6. #6
    کاربر دائمی آواتار hoax3r
    تاریخ عضویت
    مهر 1386
    محل زندگی
    تهران
    پست
    171

    نقل قول: چطوری می تونم محتوای یک حافظه 8 بیتی یا al رو توی 16 بیتی ax بریزم؟

    خوب اگر از این برنامه می خواین استفاده کنین میتونین این مثال رو ببینیند

    اگه مقدار تو al هست و حالا می خواین از ax استفاده کنین، کافیه ثبات ax رو با مقدار 0FFh عمل and رو انجام
    بدین

    and ax, 0FFh


    اگر می خواین ثبات al رو در ثبات دیگه مثلا bx بریزین، اینجور میشه

    mov bl, al
    and bx, 0FFh

    مقدار ثبات al رو در ثبات همسایز خودش bl میریزیم بعد مثل مثال قبل عمل میکنیم
    آخرین ویرایش به وسیله hoax3r : چهارشنبه 30 مرداد 1387 در 16:26 عصر

  7. #7

    نقل قول: چطوری می تونم محتوای یک حافظه 8 بیتی یا al رو توی 16 بیتی ax بریزم؟

    نقل قول نوشته شده توسط hoax3r مشاهده تاپیک
    خوب اگر از این برنامه می خواین استفاده کنین میتونین این مثال رو ببینیند

    اگه مقدار تو al هست و حالا می خواین از ax استفاده کنین، کافیه ثبات ax رو با مقدار 0FFh عمل and رو انجام
    بدین

    and ax, 0FFh


    اگر می خواین ثبات al رو در ثبات دیگه مثلا bx بریزین، اینجور میشه

    mov bl, al
    and bx, 0FFh

    مقدار ثبات al رو در ثبات همسایز خودش bl میریزیم بعد مثل مثال قبل عمل میکنیم
    مرسی از راهنماییتون اما جواب غلطه
     (177) operands do not match: 16 bit register and 8 bit effective address (EA)   

    این زمانیه که می خوام al یا متغیری که جنسش از db هست رو توی ax بریزم

    این دستوری رو هم که شما گفتید اجرا کردم اما غلطه جوابش.
    من می خوام دستور تقسیم رو انجام بدم زمانی که عدد 8 رو به صورت مستقیم می ریزم توی ax بهم مقسوم علیه 0 می ده چون تقسیم بر 10 اما زمانی که 0ffh رو با ax اند می کنم c رو نشون می ده.

  8. #8

    نقل قول: چطوری می تونم محتوای یک حافظه 8 بیتی یا al رو توی 16 بیتی ax بریزم؟

    فکر کنم تا حدودی مشکل رو حل کردم ، چون توی ah صفر ریختم توی al هم که همون مقدار بود و بعد با 1 and کردم . هر بیتی که صفر باشه صفر می شه دیگه. مرسی از کمک همه، اما بازم یه مشکلی داره اما تا حدودی رفع شده.

  9. #9

    Talking نقل قول: چطوری می تونم محتوای یک حافظه 8 بیتی یا al رو توی 16 بیتی ax بریزم؟

    نقل قول نوشته شده توسط hoax3r مشاهده تاپیک
    خوب اگر از این برنامه می خواین استفاده کنین میتونین این مثال رو ببینیند

    اگه مقدار تو al هست و حالا می خواین از ax استفاده کنین، کافیه ثبات ax رو با مقدار 0FFh عمل and رو انجام
    بدین

    and ax, 0FFh


    اگر می خواین ثبات al رو در ثبات دیگه مثلا bx بریزین، اینجور میشه

    mov bl, al
    and bx, 0FFh

    مقدار ثبات al رو در ثبات همسایز خودش bl میریزیم بعد مثل مثال قبل عمل میکنیم
    متشکر حالا متوجه منظورتون شدم ، شرط اولیش اینه که ah رو قبل and صفر بدیم و با دستور
     mov ax, and ax,0000000011111111b  

    و یا همون 0ffh اند کنیم.

    متشکر، مشکل کاملاً رفع شد.

  10. #10

    نقل قول: چطوری می تونم محتوای یک حافظه 8 بیتی یا al رو توی 16 بیتی ax بریزم؟

    البته به نظرم زمانی لازم بود ah رو صفر کنیم که بخوایم با 1 اند رو انجام بدیم. با دستور بالا احتیاج به مقدار دهی ah هم نیست چون طرف ah با صفر and میشه که نتیجه ش هم صفره.

  11. #11

    نقل قول: چطوری می تونم محتوای یک حافظه 8 بیتی یا al رو توی 16 بیتی ax بریزم؟

    البته به نظر درست هگز 00ffh باشه.

  12. #12
    کاربر دائمی آواتار hoax3r
    تاریخ عضویت
    مهر 1386
    محل زندگی
    تهران
    پست
    171

    نقل قول: چطوری می تونم محتوای یک حافظه 8 بیتی یا al رو توی 16 بیتی ax بریزم؟

    هر دوی 0FFh و 00FFh یه مقدارن هر چه قدر صفر قبل FFh باشه بازم یه مقدار هست ولی چون کامپایلر با
    FFh مشکل داره شاید بخاطر این که با عدد شروع نشده من مجبور بودم یه صفر قبلش بزارم
    برای اینکه فقط ثبات al رو تو ax قرار بگیره باید ثبات ah رو صفر کنیم و این عمل رو همین دستور انجام میده

    and ax, 0FFh

    احتیاجی نیست دیگه قبلش هم ah رو صفر کنیم

    شاد باشید

  13. #13

    نقل قول: چطوری می تونم محتوای یک حافظه 8 بیتی یا al رو توی 16 بیتی ax بریزم؟

    چرا از عملگر ptr استفاده نمیکنید؟؟؟

  14. #14
    کاربر جدید آواتار rezasprit
    تاریخ عضویت
    مرداد 1387
    محل زندگی
    ساری
    پست
    19

    نقل قول: چطوری می تونم محتوای یک حافظه 8 بیتی یا al رو توی 16 بیتی ax بریزم؟

    سلام .
    اولا: اگر al داراي يه محتوايي باشه خود به خود اون محتوا در ax قرار مي گيرد . فقط بايستي ah برابر 0 باشه تا جواب غلط نشه.
    در ثاني: اگر عدد در حافظه باشه اونو به al انتقال بديد
    mov al,[store] و ah=0

  15. #15

    نقل قول: چطوری می تونم محتوای یک حافظه 8 بیتی یا al رو توی 16 بیتی ax بریزم؟

    mov var,al
    movzx ax,var

  16. #16
    کاربر دائمی آواتار Delphi Coder
    تاریخ عضویت
    آذر 1386
    محل زندگی
    c:\windows\system32
    پست
    579

    نقل قول: چطوری می تونم محتوای یک حافظه 8 بیتی یا al رو توی 16 بیتی ax بریزم؟

    mov al,byte ptr [xxxx]
    cbw

قوانین ایجاد تاپیک در تالار

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