PDA

View Full Version : درس 2: Assembly



Best Programmer
یک شنبه 07 دی 1382, 00:44 صبح
ما معمولا اعداد را بر پایه ده نشان می دهیم . یعنی اعداد پایه ده. زیرا بعد از شمردن از 0 تا عدد 9 ، اعداد دو رقمی شده و یا به عبارت دیگر یکی به دهگان عدد اضافه می شود .بطور مثال عدد 128 را در نظر بگیرید. این عدد یعنی

128=8*10^0+2*10^1+1*10^2

همانطور متوجه شدید رتبه دهگان و صدگان و هزارگان در واقعه معرف توان ده در رابطه بالا می باشد.بعلت استفاده 10 به عنوان پایه توان این مبنا را ده دهی می گویند.
اعداد در پایه های دیگر هم دارای رابطه ای شبیه رابطه بالا می باشند مثلا رابطه عدد 128 در پایه x بصورت زیر نوشته می گردد:

128(x)=8*x^0+ 2*x^1 +1*x^2

بعد از آشنایی به پایه اعداد و پایه های دیگر بصورت اجمالی حال به بررسی مبناهایی پرداخته می شود که در کامپیوتر کاربرد بسیار دارد.

پایه دو دوبی: ( Binary)

همانطور که از اسم این پایه معلوم است مبنا اعداد در این پایه دو بوده و اعداد تشکیل دهنده این مبنا عبارتند از 0،1(اعداد کوچکتر از پایه با انضمام 0 )یک عدد در این مبنا بصورت مینیمم 1 بیت را مورد استفاده قرار می دهد.2^0=1 ماکزیمم عدد تشکیل دهنده

پایه هشت هشتی یا اکتال

شبیه پایه دو بوده ولی اعداد بکار رفته در آن عبارت است از: 0،1،2،3،4،5،6،7. هر عدد در این مبنا حداقل 3 بیت مورد مصرف قرار
می دهد
2^0+2^1+2^2=7
( هر کدام از جواب به توان رساندن یک بیت را اشغال می نمایید )

پایه هگزا دسیمال (Hex)

اعداد بکار رفته در آن عبارت است از:F،E،D،C،B،A،9،8، 0،1،2،3،4،5،6،7. که در آن A معرف 10و B معرف 11 و ... E معرف 15
می باشد هر عدد در این مبنا حداقل 4 بیت مورد مصرف قرار می دهد
2^0+2^1+2^2+2^3=15

چگونگی تبدیل پایه های دیگر به ده دهی:

برای تبدیل هر عدد در مبنای x به مبنای ده دهی از روش زیر استفاده می کنیم: ( فرض کنید عدد ما در مبنا x برابر QWER می باشد )

QWER(x)=R*x^0+E*x^1+W*x^2+Q*x^3+….

حاصل جمع ما همان عدد در پایه ده دهی (مثلا TYUIO) یعنی

TYUIO(10)=QWER(x)

حال می رسیم به تبدیل اعداد پایه 10 به پایه های دیگر

برای این کار از روش تقسیمهای متوالی استفاده می نماییم عدد را بر پایه مورد نظر ( x ) تقسیم نموده .باقی مانده را در بجای اولین عدد معادل قرار می دهیم حال خارج قسمت را بر x تقسیم نموده و باقی مانده را در کنار باقی مانده قبلی در سمت چپ آن قرار می دهیم آنقدر این کار را انجام داده تا خارج قسمت از x کمتر گردد .حال آخرین خارج قسمت را نیز دز سمت چپ باقی مانده ها قرار می دهیم ( آخرین باقیمانده را نیز قبل از اضافه کردن خارج قسمت به اعداد اضافه می نماییم) عدد حاصله معادل عدد ده دهی در پایه x می باشد.
الگوریتم آن عبارت است از:

1- عدد را بگیر
2- اگر عدد کوچکتر از x است به مرحله6 بپر
3- عدد را بر x تقسیم کن باقیمانده را در سمت چپ عدد معادل کنار اعداد دیگر بنویس اگر عددی نبود آن را یاد داشت کن
4- خارج قسمت را جای عدد بگذار
5- به مرحله 2 برو
6- عدد را به سمت چپ اعداد اضافه کن
7- نمایش رشته

nicolas_vires
پنج شنبه 10 اسفند 1385, 17:08 عصر
چگونه می‌توان از روشی به غیر از روش معمول تبدیل مبنای 16 به 8 و بالعکس
به طور مستقیم این دو را به هم تبدیل کرد؟