آموزش زبان اسمبلی
زکات علم نشر آن است .





در این وبلاگ به آموزش زبان اسمبلی خواهم پرداخت .

به نام خدا

درود

تبدیل مستقیم اعداد مبنای 2 به اعداد مبنای 8 (Binary To Octal) :

از سمت راست عدد در مبنای 2 آغاز کرده و سه رقم سه رقم از هم جدا می کنیم . پس از این تقسیم بندی معادل سه رقم را در مبنای هشت به دست می آوریم و به همان ترتیب اولیه یادداشت می کنیم تا به انتهای عدد برسیم .

از این روش برای اعداد اعشاری نیز می توان بهره جست تنها با این تفاوت که نقطه اعشاری ، نقطه ی محوری کار است و ارقام از سمت چپ به راست را به همان شیوه ای که در بالا شرح آن رفت تقسیم بندی می شوند و معادل آن را به دست می اورید . ارقام سمت راست اعشار را از سمت چپ به راست  سه رقم سه رقم جدا می کنید و همانند روش بالا تبدیل را انجام می دهید .

 



 نگاشته شده توسط حسین صادقی در جمعه 24 خرداد 1392  ساعت 8:37 PM دیدگاه 6 | لینک مطلب

به نام خدا 

درود

تبدیل مستقیم  اعداد مبنای 8 به اعداد مبنای 2 :

هر رقم در مبنای 8 را باید به مبنای 2 تبدیل کرد و آن را در سه بیت نمایش داد .

همان گونه که متوجه شدید در مبنای 8 ما بازه ی عددی ( 0 تا 7 ) را در اختیار داریم ،

که توسط سه بیت می توان تمام این اعداد را نمایش داد و هیچ محدودیتی وجود ندارد .

 



 نگاشته شده توسط حسین صادقی در جمعه 17 خرداد 1392  ساعت 10:48 AM دیدگاه 1 | لینک مطلب

به نام خدا 

درود

تبدیل مبنای 8 به مبنای دو ( Octal To Binary ) :

برای تبدیل اعداد در مبنای 8 به مبنای دو می توان به چند روش اقدام کرد مانند 

1 - تبدیل اعداد در مبنای 8 به مبنای 10 و سپس تبدیل عدد مبنای 10 به مبنای 2 با توجه به روشهایی که پیشتر گفته شده است .

2 - تبدیل مستقیم اعداد مبنای 8 به مبنای 2

با توجه به روش اول متوجه خواهید شد که بسیار زمان بر بوده و بهینه نیست .

 



 نگاشته شده توسط حسین صادقی در جمعه 17 خرداد 1392  ساعت 10:40 AM دیدگاه 0 | لینک مطلب

به نام خدا 

درود

مبنای 16 ( Hexadecimal ) :

همانگونه که پیشتر گفته شد در مبناها بازه ی عددی که در اختیار داریم از عدد 0 شروع و به ( r-1 ) ختم می شود . حالا مبنای 16 در بازه ی عددی ( 0 تا 15 ) قرار می گیرد و اعداد را باید به وسیله ی این اعداد نمایش دهیم .حال این مورد را تصور کنید که دنباله ای از اعداد را در اختیار داریم ، چگونه می توان بین این اعداد تمایز قایل شد و مبنای 16 را نمایش داد؟

به یقین چونین چیزی امکان پذیر نیست . 

 



 نگاشته شده توسط حسین صادقی در پنج شنبه 16 خرداد 1392  ساعت 11:04 AM دیدگاه 0 | لینک مطلب

به نام خدا 

درود

مبنای هشت - ( Octal (Base 8 : 

مبنای هشت یکی از مبناهایی است که در زبان اسمبلی کاربرد دارد .برای نمایش مقادیر در این مبنا ، بازه ی عددی 0 تا 7 را در اختیار داریم.

 

 



 نگاشته شده توسط حسین صادقی در یک شنبه 8 اردیبهشت 1392  ساعت 9:11 AM دیدگاه 0 | لینک مطلب

به نام خدا

درود

روش مکمل دو :

1 -ابتدا عدد را به صورت بدون علامت (unsigned) فرض کرده و آن را به مبنای دو تبدیل کنید .

2 - تعداد ارقام را شمارش می کنیم ، بایستی تعداد ارقام مضربی از عدد هشت باشد (8 ،16 ، 24 ،...) در صورتی که تعداد ارقام کمتر از مضارب 8 باشد به تعداد لازم صفر در سمت چپ ارقام قرار می دهیم تا تعداد ارقام تبدیل به مضربی از هشت شود .

 



 نگاشته شده توسط حسین صادقی در چهارشنبه 10 آبان 1391  ساعت 10:35 AM نظرات 4 | لینک مطلب

به نام خدا 

درود

مقادیر منفی در مبنای دو :

برای نمایش اعداد منفی در مبنای دو می توان از روش مکمل دو استفاده کرد .

 



 نگاشته شده توسط حسین صادقی در چهارشنبه 10 آبان 1391  ساعت 10:32 AM دیدگاه 0 | لینک مطلب

به نام خدا 

درود

دوستان گرامی برای بستن بخش مبنای دو چند تمرین قرار می دهم تا دوستان خود را بیازمایند .در صورت تمایل پاسخهای خود را در بخش دیدگاه ها قرار دهید تا من نیز آنها را ببینم .

با تشکر

1 - عدد 1981 را به مبنای دو ببرید.

2 - 1011010011001 برابر چه عددی در مبنای ده است؟

3 - عدد 965.8432 را به مبنای دو تبدیل کنید.

4 - عدد 11100101.10101 برابر چه عددی در مبنای ده است ؟

5 - 7/8 ( هفت هشتم ) را به مبنای دو ببرید.

 



 نگاشته شده توسط حسین صادقی در یک شنبه 7 آبان 1391  ساعت 3:38 PM دیدگاه 1 | لینک مطلب

به نام خدا 

درود

روش بسط اعداد اعشاری :

برای تبدیل یک کسر به مبنای دو ما نیاز به جدولی با پنج ستون داریم  ( از سمت چپ به راست ) 

1 - شمارنده ی گام ها

2 - عدد کسری

3 - دو برابر عدد کسری

4 - جز صحیح دو برابر عدد

5 - تفاضل ستون سوم  از ستون چهارم

 

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

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

برای درک بهتر به مثال توجه کنید .



 نگاشته شده توسط حسین صادقی در جمعه 5 آبان 1391  ساعت 8:10 PM دیدگاه 1 | لینک مطلب

به نام خدا 

درود

تبدیل اعداد کسری به مبنای دو :

ممکن است از شما بخواهند که اعداد کسری را به مبنای دو ببرید و این را می دانیم که همیشه تقسیم صورت بر مخرج نمی تواند عددی قطعی به دست بدهد پس باید چه کاری انجام داد ؟

سه روش به نظر من می رسد 

1 - روش گرد کردن

2 - روش قطع کردن

3 - روش بسط اعداد اعشاری



 نگاشته شده توسط حسین صادقی در جمعه 5 آبان 1391  ساعت 7:59 PM دیدگاه 0 | لینک مطلب

به نام خدا

درود

برای تبدیل اعداد اعشاری مبنای ده به مبنای دو می توان از روش زیر استفاده کرد :

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

برای درک بهتر به مثال توجه کنید .



 نگاشته شده توسط حسین صادقی در پنج شنبه 4 آبان 1391  ساعت 4:14 PM دیدگاه 3 | لینک مطلب

به نام خدا 

درود

در این روش با استفاده از فرمول مبنا که پیشتر معرفی شد می توان به سادگی عدد را به مبنای دو برد .

an.rn + an-1.rn-1 + an-2.rn-2 + a0.r0 + a-1.r-1 + a-2.r-2 + a-m.r-m

 

an.2n + an-1.2n-1 + an-2.2n-2 + a0.20 + a-1.2-1 + a-2.2-2 + a-m.2-m

 

برای درک بهتر به مثال توجه کنید .



 نگاشته شده توسط حسین صادقی در پنج شنبه 4 آبان 1391  ساعت 5:35 AM دیدگاه 0 | لینک مطلب

به نام خدا 

درود

روش تقسیم های متوال به عدد دو

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



 نگاشته شده توسط حسین صادقی در چهارشنبه 3 آبان 1391  ساعت 2:58 PM دیدگاه 1 | لینک مطلب

به نام خدا 

درود

تبدیل مبنای ده به مبنای دو به چند روش امکان دارد . 

1 - تقسیم های متوالی به عدد دو

2 - استفاده از فرمول مبنا ها

البته روش اول تنها در مواردی که اعداد صحیح مد نظر هستند کاربرد دارد .

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

 



 نگاشته شده توسط حسین صادقی در چهارشنبه 3 آبان 1391  ساعت 2:31 PM دیدگاه 0 | لینک مطلب

به نام خدا 

درود

مبنای دو - (Binary (Base 2 :

این مبنا در رایانه های امروزی بیشترین کاربرد را دارد . رایانه ها برای تبادل داده و پردازش از دو سطح ولتاژ بهر می برند .

1 - Low (صفر ولت) = صفر

2 - High (پنج ولت) = یک

پس می توان فهمید که چرا رایانه ها از مبنای دو استفاده می کنند ، برای رایانه تنها چیزی که معنا دارد سطح ولتاژ (0 یا 5) است . داده های ورودی به رایانه باید تبدیل به مبنای دو شوند تا رایانه قادر به پردازش داده شود .

در مبنای دو ما از دو عدد صفر و یک می توانیم استفاده کنیم .

 



 نگاشته شده توسط حسین صادقی در چهارشنبه 3 آبان 1391  ساعت 5:38 AM دیدگاه 0 | لینک مطلب

به نام خدا 

درود

در این پست اندکی درباره ی مبناهای عددی شرح خواهم داد .

برخی از مبناهای پرکاربرد : 

1 - مبنای دو

2 - مبنای چهار

3 - مبنای هشت

4 - مبنای ده

5 - مبنای شانزده

 

به وسیله ی فرمول زیر می توان مبناهای فوق را نمایش داد :

an.rn + an-1.rn-1 + an-2.rn-2 + a0.r0 + a-1.r-1 + a-2.r-2 + a-m.r-m

 

از بخش مثبت برای نمایش قسمت صحیح اعداد و از بخش منفی برای نمایش قسمت اعشاری اعداد می توان بهره برد .

0 <= a <= r-1

توجه : با استفاده از فرمول بالا می توان اعداد با مبناهای مختلف را به مبنای ده تبدیل کرد .

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

مثال : 

(123)8

(845)4

مثال : 4(3221) را به مبنای ده تبدیل کنید .

3*43 + 2*42 + 2*41 + 1*40 =233



 نگاشته شده توسط حسین صادقی در سه شنبه 2 آبان 1391  ساعت 5:59 PM دیدگاه 0 | لینک مطلب