PDA

View Full Version : کمک در برنامه تعویض محتویات دو ثبات بدون دستور xchg



rezapoohpooh
دوشنبه 17 آبان 1389, 11:16 صبح
با سلام
من میخواستم یک برنامه در زبان اسمبلی بنویسم که دو مقدار 10 و 20 را در محلهای t1 و t2 قرار بده و محتویات این محلهای t1,t2 بدون دستور xchg عوض بشه نمیدونم چه طوری باید این کار را بکنم لطفا کمک کنید ؟؟؟؟؟؟؟؟!؟!!!!!!!!

ممنون میشم

ironclip
جمعه 21 آبان 1389, 17:09 عصر
سلام دوستان

منم این سوالو داشتم ، کسی می تونه کمک کنه

یه روشی هست از طریق xchg روشی دیگه است بدون این دستور کسی می تونه راهنمای کنه ممنون میشم

tdkhakpur
شنبه 22 آبان 1389, 20:02 عصر
mov bx, 10
mov dx, 23
mov cx, 16
clc
lp1:
shl bx, 1
rcl dx, 1
adc bx, 0
loop lp1

xman_1365_x
سه شنبه 09 آذر 1389, 01:16 صبح
اين روش فقط با mov _از دستور بالا بسيار سريعتر

t1 db 10
t2 db 20

mov al,t1
mov bl,t2

در سه دستور زير جا به جايي صورت ميگيرد!
mov ah,al
mov al,bl
mov bl,ah

mov t1,al
mov t2,bl

tdkhakpur
چهارشنبه 10 آذر 1389, 22:40 عصر
اين روش فقط با mov _از دستور بالا بسيار سريعتر
محض یاد آوری اینکه مزیت xchg این هست که به کاربر امکان میده تا از متغییر سوم جهت جابجایی استفاده نکنه.

xman_1365_x
پنج شنبه 11 آذر 1389, 12:19 عصر
محض یاد آوری اینکه مزیت xchg این هست که به کاربر امکان میده تا از متغییر سوم جهت جابجایی استفاده نکنه.

استاد عزیزم آقای خاکپور اگر محض یاد آوری به من گفتین که باید بگم چون خواسته شده بدون آپکد xchg منم از mov که سریعتر از جابجایی شیفت بیتی که ۱۶ بار اجرا شه است استفاده کردم چون اون خیلی زمان بیشتری پردازنده رو درگیر می کرد
تذکر:باید در ادامه یاد آوری شما بگم وقتی بخواهیم دو متغیر مقیم در حافظه رو جابجا کنیم چاره ای نداریم اجبارا باید از رجیستر کمکی استفاده کنیم پس این دستور و خیلی از دستورات در اسمبلی نمی تونن مستقیم کاری روی دو متغیر حافظه انجام دهند.