تبليغاتX
UNiComp.iR | Download Direct Tutorials Video , Film | دانلودمستقیم فیلم آموزشی،کتاب،جزوه،مقاله

زبان ماشین و اسمبلی - جلسه دوم


ادامه فصل اول

نمایش اطلاعات  و ساختار حافظه

سیستم های آی بی ام در اصل کامپیوتر های دودویی هستند که در آنها اعداد و آدرسها به شکل دودویی نمایش داده می شوند  گفتم که یک بیت ، کوچکترین واحد فیزیکی حافظه  است که می تواند رقم صفر و یا یک  را در خود نگهداری نماید. یک گروه 8 بیتی تشکیل یک بایت را می دهد. در این کامپیوتر ها کوچکترین  واحد آدرس پذیر  حافظه را بایت  گویند. هر بایت دارای آدرسی منحصر به فرد است. چون یک بایت  8 بیت است.  بنابراین می تواند  2^8=256  حالت مختلف ، از 0000  0000  و 1111  1111   را نمایش دهد. و نیز قادر است  2 رقم مبنای 16 را در خود نگهداری نماید. به همین دلیل  لیست روخوانی  محتویات حافظه را بصورت  ارقامی مبنای 16 تهیه می نماید.

آدرسها در کامپیوتر های مزبور اعداد 24 بیتی  هستند. در نتیجه ، آدرس عددی بین 0 تا 2^24-1 (16777215) می باشد. این آدرس بندی را آدرس بندی مجازی می نامند. فضای آدرس هر برنامه می تواند از گنجایش  حافظه اصلی بیشتر باشد. برای هر برنامه یک الی چند آدرس توسط سیستم عامل  تهیه شده و بر روی دیسک قرار می گیرد. هنگام اجرای یک برنامه ، قسمتی  از این فضای آدرس توسط سیستم عامل  به داخل حافظه اصلی بار می گردد: نگاشت آدرس مجازی به آدرس واقعی نیز به عهده سیستم عامل می باشد. در بعضی از مدلهای ماشینهای آی بی ام  آدرسها 31 بیتی می باشند. در هر کامپیوتر آدرس بایتها از صفر شروع شده و تا حداکثر ظرفیت حافظه آن کامپیوتر ادامه می یابد. به عناون مثال در مدلی که حافظه آن دارای 8192 بایت است آدرسها از صفر تا 8191 تغییر می نمایند. یک کلمه که شامل 4 بایت است بوسیله بایت منتهی الیه سمت چپ شان  آدرس داده می شود. اصطلاحا بایت منتهی الیه سمت چپ یک کلمه  را بالا رتبه ترین بایت می گویند ، زیرا این بایت با ارزشترین قسمت عدد را شامل  می شود. کلمه ای  را که آدرس شروع آن بر 4 بخش پذیر باشد یک تمام کلمه  می نامیم. در قسمت زیر گروه بایتهایی که آدرس  آنها به ترتیب  19424 و 19425 و 19426 و 19427  می باشند و در زیر آنها قرار گرفته اند تشکیل یک کلمه یا تمام کلمه را می دهند. زیرا تعداد آنها 4 بایت بوده و آدرس آن بر 4 بخش پذیر می باشد.  یک کلمه باید از کرانه کلمه شروع شود  یعنی آدرس بایت  سمت چپ آن بر 4 بخش پذیر باشد

                               19428                      19426                 19425                  19424                        19423  

01101101           1001110         00111100       00111100      11010100  محتویات

 

نکته :  در بالا آدرس به صورت مبنای 10 می باشد قسمت بالای صفر ها و یک ها

بطور مشابه گروههایی از 2 بایت را که آدرس بایت سمت چپ آن بر دو بخش پذیر باشد ، نیم کلمه می گوئیم. بنابراین  کرانه نیم کلمه آدرسهای قابل قسمت بر 2 می باشند . به همین ترتیب گروههایی از 8 بایت  را که آدرس بایت  سمت چپ  آن بر 8 قابل قسمت باشد ، کلمه مضاعف می نامیم . واضح است  که کرانه  کلمه مضاعف آدرس قابل قسمت بر 8 خواهد بود. همانطور  که قبلا گفتم علاوه بر خانه های حافظه دو مجموعه ثبات در این کامپیوتر ها وجود دارد :

الف ) ثباتهای همه منظوره که تعداد  آنها 16 می باشد . طول هر یک از آنها 32 بیت بوده و برنامه نویس از آنها برای محاسبه آدرس و یا محاسبات دودویی  استفاده می نماید.

ب) دسته ثبات دیگری با طول 64 بیت در ماشین وجود دارد که از آنها برای نگهداری اعداد با ممیز شناور  استفاده می شود تا در محاسبات مربوط به اعداد با ممیز شناور مورد استفاده قرار گیرند.

 

نمایش اعداد صحیح دودویی

یک عدد صحیح دودویی معمولا در یک تمام کلمه نمایش داده می شود . بیتهای یک کلمه را از چپ به راست شماره گذاری می کنم . یعنی سمت چپ ترین بیت را بیت شماره صفر می نامیم . به همین ترتیب سمت راست ترین بیت را بیت شماره 31 نام گذاری می نماییم. برای نگهداری عدد صحیح مثبت ، عدد به مبنای دو تبدیل می گردد و سپس از راست به چپ در 32 بیت قرار می گیرد .

در اعداد صحیح دودویی بیت شماره صفر علامت عدد را نگهداری می نماید . اگر عدد مثبت باشد این بیت صفر است و اگر عدد منفی باشد بیت یک خواهد بود. البته کامپیوتر اعداد منفی را به صورت متمم دو در حافظه نگهداری می کند. اگر X یک عدد مثبت باشد ، نمایش –X در 32 بیت  و به صورت متمم دو برابر است با 2^32-X

 

به عنوان مثال  برای نمایش 26-  به صورت زیر عمل می کنم :

 

2^32=1000  0000  0000  0000  0000  0000  0000  0000

26= 0000  0000  0000  0000  0000  0000  0001  1010

= 1111  1111  1111  1111  1111  1111  1111  1110  0110

 

که حاصل عدد 26- می باشد .

روش دیگری برای نمایش یک عدد منفی ، مثل 26- ، بدین ترتیب است که ابتدا نمایش 26 در 32 بیت را پیدا می کنیم ، آنگاه بیت های صفر را به یک . یک را به صفر تبدیل می نمایی و حاصل را با یک جمع می کنیم .

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

بزرگترین عدد صحیح مثبت در 32 بیت ،  2^32-1  و منفی ترین عدد در 32 بیت -2^32  می باشد . اگر عدد صحیح بتواند در 16 بیت جای بگیرد ، برای نمایش آن از یک نیم کلمه استفاده می شود . نمایش 26- در نیم کلمه به صورت زیر می باشد :

000000000001101

11111111111 00101       

      1

= 1111111111100110

در اولین عبارت نمایش عدد 26 دریک نیم کلمه ، در عبارت دوم نمایش عدد 26- در یک نیم کلمه به صورت متمم یک و در عبارت سوم که حاصل دو عبارت می باشد نمایش عدد26- در یک نیم کلمه و به صورت متمم 2 می باشد.

 

نکته : بزرگترین عدد صحیح مثبت در یک نیم کلمه 32767 و منفی ترین عدد قابل نمایش در 16 بیت 32768- می باشد.

 

نمایش اطلاعات کاراکتری

در ذخیره سازی اطلاعات کاراکتری در حافظه کامپیوتر هر کاراکتر در یک بایت جای داده می شود. یک بایت می تواند  2^8=256 حالت مختلف را دارا باشد. اگر هر حالت را به یک کاراکتر  منسوب نماییم می توانیم 256 کاراکتر متفاوت را نمایش دهیم. در اوایل که کامپیوتر ها  ساخته می شدند هر  شرکت سازنده کامپیوتر یک کد گذاری مخصوص به خود را برای نمایش اطلاعات  کراکتری انتخاب کرده بودند. این تنوع  در انتخاب کد ها  عمل انتقال بین کامپیوتر های  متفاوت را با مشکل مواجه می نمود . حهت جلوگیری از این مشکل یک استاندارد پیشنهاد گردید که کد اسکی نام گذاری شد . امروزه اغلب کامپیوتر ها جهت نمایش اطلاعات کاراکتری  از این کد گذاری استفاده می کنند. شرکت آِ بی ام جهت کد گذاری داخلی نمایش اطلاعات  کاراکتری از یک روش دیگر به نام ابسیدیک (EBCDIC ) استفاده می نماید . در هر دو روش ، انتساب کد به کاراکتر ها به نحوی است که ترتیب حروف الفبا  رعایت شده است . بعضی پایانه ها  که به سیستم آِ بی ام 370 متصل می شوند از کد اسکی برای نمایش  اطلاعات کاراکتری استفاده  می نمایند.  در این صورت سیستم عامل  کاراکتر ها را که پایانه به کامپیوتر می فرستد از کد اسکی به کد ابسیدیک تبدیل می نماید . بالعکس هنگامی که کامپیوتر می خواهد اطلاعات  را به پایانه  بفرستد  سیستم عامل  نیز اطلاعات را از کد ابسیدیک  به کد اسکی تبدیل می کند. نمایش کاراکتری ارقام دهدهی را نمایش دهدهی وزن دار می نامیم. در این صورت کد کاراکتری هر رقم  در یک بایت قرار می گیرد .  چهار بیت سمت چپ  هر بایت را وزن آن بایت نامیده و چهار بیت سمت راست  آن را رقم گویند. به بیان دیگر خود رقم به صورت دودویی در این چهار بیت قرار می گیرد و وزن در چهار بیت سمت چپ خواهد بود.

مثال : عدد 235 را به صورت نمایش کاراکتری نشان دهید ؟

 

حل :  این عدد 3 بایت را اشغال  می نماید که در چهار بیت  سمت راست هر بایت به ترتیب از راست به چپ  معادل دودوئی 5و3و2 قرار می گیرند و در چهار بیت سمت چپ هر بایت معادل دودویی F ( در مبنای شانزده) ذخیره خواهد شد.

 

بدین صورت :

F 2 F3 F 5

تذکر : اگر عدد مثبت باشد وزن سمت راست ترین بایت F و یا C می تواند باشد . اگر عدد منفی باشد این وزن D خواهد بود.

 

مثال : نمایش 237- را به صورت نمایش کاراکتری نشان دهید .

 

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

 

F 2 F 3 D 7

 

نمایش اعداد بصورت دهدهی فشرده

در این شیوه نمایش ، هر رقم در 4 بیت قرار می گیرد و لذا هر دو رقم دهدهی در یک بایت جای می گیرند. سیستم 370 و سریهای بعد از آن دارای مدارهای محاسباتی می باشند که می توانند محاسبات بر روی اعداد دهدهی فشرده انجام دهند. مثلا می توان دو عدد دهدهی فشرده را با هم جمع  ، تفریق و یا مقایسه نمود. در این شیوه نمایش ، علامت عدد در چهار بیت سمت راست  از سمت راست ترین بایت عدد قرار دارد. اگر عدد مثبت باشد این چهار بیت 1100 ( C در مبنای 16)  و اگر عدد منفی باشد 1101 ( D در مبنای 16) خواهد بود.

 

مثال : عدد 235 را به شکل دهدهی فشرده نشان دهید.

 

حل : در بایت سمت راست ، علامت عدد یعنی C و نیز رقم 5 قرار می گیرد و در بایت دیگر رقم 3 و 2 قرار خواهد گرفت.

 

2 3 5 C

مدار های محاسباتی دهدهی فشرده این  توانایی  را دارند که محاسبات روی اعداد دهدهی فشرده تا طول 16 بیت ( 31 رقم) را انجام دهند ، در صورتی که مدارهای محاسباتی  دودویی  اعدادی  را که حداکثر دارای ده رقم دهدهی هستند مورد محاسبه قرار می دهند .

 

 کد های حرفی

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

مثلا معادل کاراکتر 'A'  در جدول اسکی برابر  41H یا  01000001   می باشد .

تذکر 1 : برای کد کردن N اطلاعات  مختلف ( مثلا N  کاراکتر مختلف)  حداقل به n بیت نیاز داریم  که از فرمول زیر به دست می آید :

2^n-1

مثال :  برای کد کردن ارقام  0  تا 9 ( 10 کاراکتر مختلف) به چند بیت نیاز داریم ؟

 

حل :   2^3=8<10<=2^4=16   پس حداقل به 4 بیت نیاز داریم .

 

مثال 2 :   می خواهیم  98 اطلاعات را رمز کنیم طول رشته انتخابی برای هر کدام از اطلاعات چند بیت است؟

 

حل :  2^6=64<98<=2^7=128  پس حداقل به 7 بیت نیاز داریم .

 

  خیلی خوب با حل این مثال فصل اول به پایان می رسد .     خسته نباشید

 

 

تکلیف 

1-    عدد 12345 را به شکل دهدهی فشرده در سه بایت بنویسید .

2-    عدد 12345 را به صورت  دهدهی فشرده در چهار بیت نمایش دهید.

3-    اعداد 0 و -9  را به صورت دهدهی فشرده نمایش دهید.

4-    متمم عدد دودوئی 1011101010011  کدام است ؟

5-    عدد 0011101101111101  در مبنای دو معادل چه عددی در مبنای هگزادسیمال می باشد ؟

6-    مجموع دو عدد 200 و 56  در مبنای باینری چیست؟

7-    10011111 در مبنای دو معادل چه عددی در مبنای 2 می باشد ؟

8-    حاصل عبارت  (AB4)+(C1A)=?  چیست؟

9-    برای کد کردن حروف افبای فارسی چند بیت کافی  می باشد؟

 

 

در تمرین هایی که دادم بعضی از مطالب رو نگفتم و می خوام خودتون از اطلاعات قبلی خودتون در

رابطه با مبناها استفاده کنید . منتظر پاسخ تمارین هستم .

 

موفق باشید .......


Search Engine Submission - AddMe