loading...
دانلود سرای دانشجویی

 

در اسمبلی کليه داده ها اندازه مشخص شده ای دارند. گاهی ناچار به تغيير اندازه داده هستيم. برای کاهش اندازه داده کافی است بيت های با ارزش حذف شوند. اين روش برای اعداد بدون علامت و علامت دار کار می کند. قاعده کلی اين است که برای اعداد بدون علامت کليه بيت های حذف شده بايد صفر باشند. و برای اعداد علامت دار بيت های حذف شده بايد همگی يا 1 و يا 0 باشند. البته اگر عدد را نتوان به طرز صحيح در اندازه کوچکتر نمايش داد کاهش اندازه کار نمی کند.

افزايش داده پيچيده تر از کاهش است. عدد هگز FF را اندازه بگيريد. گسترش آن بستگی دارد که آن را چطور تفسير کنيم. اگر آن را يک عدد بدون علامت درنظربگيريم(يعنی عدد 255)، به صورت 00FF گسترش داده می شود و اگر علامت دار باشد(يعنی 1-) به صورت FFFF. به طور کلی برای گسترش اعداد بدون علامت کليه بيت های جديد عدد گسترش يافته صفر می شوند ولی برای گسترش يک عدد علامت دار بايد بيت علامت را بسط داد، به اين معنا که.بيت های جديد بيت علامت را در خود کپی می کنند.

کدگذاري ASCII

کد گذاری ASCII (American Standard Code for Information Interchange) به حروف، ارقام، علائم و کاراکترهای مختلف يک عدد باينری 7 بيتی نسبت می دهد و هشتمين بيت را 0 درنظر می گيرد. به اين صورت هر کاراکتر يک بايت را اشغال می کند.

روشن است که اين روش برای نمايش اعداد مناسب نيست، چون در فرمت باينری يک بايت اعداد 0 تا 255 را نمايش می دهد، اما با کد ASCII يک بايت تنها برای نمايش يک رقم کافی است. به همين دليل کلا اين روش برای نمايش متن در حافظه استفاده می شود.


مثال. نمايش عدد 123 با دو فرمت ASCII و باينری

ASCII vs. Binary

نوع توسعه يافته اين سيستم شامل 8 بيت برای هر کاراکتر است و 256 حالت مختلف را شامل می شود. کدهای 0 تا 127 برای کاراکترهای استاندارد، کدهای کنترلی و ارتباطی و مقادير 128 تا 255 برای نمايش سمبل های گرافيکی و حروف يونانی هستند.


مثال. رشته "ABC123" به صورت 41h 42h 43h 30h 31h 32h نشان داده می شود.


يک کدگذاری کامل تر که جای ASCII را دارد می گيرد Unicode است. تفاوت کليدی بين اين دو نوع کدگذاری در اين است که ASCII يک بايت را برای کدکردن يک کاراکتر استفاده می کند در حاليکه Unicode برای هر کاراکتر دو بايت را درنظر می گيرد. بنابراين کاراکترهای بيشتری را می تواند نمايش دهد که اين برای نمايش کاراکترهای کليه زبان های دنيا کاربردی است.


مثال. کدگذاری ASCII کد 41h يا 65 را به کاراکتر A می دهد. کدگذاری Unicode کد 0041h هگز را می دهد.


نکته1. تفاوت يک حرف بزرگ با يک حرف کوچک تنها در بيت شماره 5 است؛ اين بيت در حروف بزرگ 0 و در حروف کوچک 1 است. ("m"= 01101101 و "M"= 01001101)
نکته2. ارقام 0 تا 9 کدهای 30h تا 39h را دارا می باشند.
نکته3. کاراکترهای قابل چاپ بين 20h تا 7Eh است.
نکته4. کاراکترهای 0 تا 1Fh و 7Fh کاراکترهای کنترلی نام دارند که قابل رويت نمی باشند.
نکته5. کاراکتر ESC با کد 1Bh همراه با کاراکترهای ديگر اغلب برای يک عمل خاص به دستگاه های جانبی ارسال می شود.
نکته6. کدهای 41 تا 5Ah کاراکترهای A تا Z و کدهای 61 تا 7Ah کاراکترهای a تا z هستند.
نکته7. کاراکتر CR و LF با کدهای 0Dh و 0Ah به ترتيب باعث حرکت مکان نما به شروع خط جاری و خط بعد می شود.

Storage Type
Bits
Range (low - high)
Signed byte 8 -128 - +127
Signed word 16 -32,768 - +32,767
Signed doubleword 32 -2,147,483,648 - +2,147,483,647
Signed quadword 64 -9,223,372,036,854,775,808 -
+9,223,372,036,854,775,807

محدوده قابل نمايش از فرمول [-(2m-1) – 2m-1-1] محاسبه می شوند که m تعداد بيت ها را نشان می دهد.

 

محاسبات کامپيوتري در مبناي دو انجام مي شود. به طور معمول از سيستم عددي هگزادسيمال براي نمايش اعداد باينري استفاده مي شود.

سيستم هاي عدد نويسي
سيستم عددی اعشاری
سيستم عددی دودوئی
سيستم عددی هگز

سيستم هاي عدد نويسي

در کارهای روزمره از سيستم عددی اعشاری يا مبنای 10 استفاده می شود. اين سيستم برای کامپيوتر مناسب نيست و برای سادگی سخت افزار، کليه اطلاعات به شکل بيت های روشن و خاموش رمز می شوند. بنابراين سيستم عددی باينری که تنها شامل ارقام صفر و يک است برای اين منظور بسيار مناسب است. عدد 1 (on) مشخص کننده +5 ولت و عدد صفر (off) مشخص کننده 0.5 ولت است.

برای تعيين مبنای عدد يک حرف کوچک در انتهای آن قرار می گيرد. مثاال 45h به معنی عدد 45 در مبنای شانزده است. و 11010011b يعنی اين عدد در مبنای 2 است. اين روشی است که اسمبلر اعداد را در برنامه های اسمبلی تشخيص می دهد.

 

ماتريس‌ی كه عناصر صفر آنها زياد است و نسبتا تعداد کمی عنصر غير صفر دارد را ماتريس خلوت يا اسپارس (sparse matrix) مي نامند.
ماتريس هاي قطري و مثلثي نمونه‌هايي از ماتريس‌هاي خلوت هستند.

روش طبيعي نمايش ماتريس ها در حافظه به صورت يک آرايه‌هاي دوبعدي براي اين گونه ماتريس ها مناسب نيست. براي جلوگيري از اتلاف حافظه مي توان تنها عناصر غير صفر را ذخيره كرد. آرايه حاصل داراي سه ستون است که براي ذخيره مختصات سطر و ستون و مقدارعنصر غير صفر بکار می روند و تعداد سطرهای آن به تعداد عناصر غير صفراست. اين روش ذخيره ماتريس خلوت را point access method می نامند


نكته. تعداد عناصر غيرصفر ماتريس مثلثي n بعدي برابر است با: 1+2+3+…+n=n(n+1)/2 و تعداد عناصر صفر آن برابر است با: n2 – n(n+1)/2 = n(n-1)/2.

نكته. حاصلضرب دو ماتريس اسپارس ديگر اسپارس نيست.

تعاريف ماتريس

ماتريس ها معادل آرايه هاي دو بعدي هستند. A‌ يك ماتريس m×n است شامل m×n عدد قرار گرفته در m سطر و n‌ ستون به شكل:

A11 A12 … A1n
A21 A22 … A2n
………………
Am1 Am2 … Amn

يك ماتريس با تعداد سطر و ستون برابر را ماتريس مربعي (square matrix) مي نامند.

قطر اصلي يك ماتريس مربعي شامل عناصر A11,A22,…,Ann است. يعنی اگر i=j باشد Aij روی قطر اصلی است.

يك ماتريس پائين مثلثي (lower triangle matrix) ماتريس مربعي است كه عناصر بالای قطراصلی آن همگی صفر باشند. يعنی اگر i<j باشد Aij=0 است

در ماتريس بالا مثلثی (upper triangle matrix) کليه عناصر زير قطراصلی صفر هستند. يعنی اگر i>j باشد Aij=0 است

يك ماتريس قطري، ماتريس مربعي است كه عناصر غير صفر آن روي قطر اصلي قرار دارند.

ماتريس مربعي A را متقارن مي نامند اگر براي همه i و j ها A[j,i] =A[i,j].

 

اين نسل از اواخر دهه 60 شروع شده و هنوز هم ادامه دارد. مهمترين ويژگی آن استقلال داده ای است. نرم افزار پيچيده ای به نام سيستم مديريت پايگاه داده(DataBase Management System) يا DBMS واسط بين برنامه های کاربردی و محيط فيزيکی است و اجازه می دهد کاربران در يک محيط انتزاعی کار کنند و به داده ها دسترسی پيدا کنند.

• نرم افزار پيچيده و جامع DBMS واسط بين برنامه های کاربردی و محيط فيزيکی است
• برنامه های کاربردی از جنبه های فيزکی مستقل هستند
• کاربران در يک محيط انتزاعی مبتنی بر يک ساختار داده ای کار می کنند
• سرعت دستيابی به داده بالا است
• امکان استفاده اشتراکی از داده ها وجود دارد
• امکان کنترل متمرکز روی کليه داد های عملياتی
• ايمنی داده زياد است
• افزونگی کاهش پيدا کرده است
• مفهوم چند سطحی بودن معماری (داخلی، خارجی، ادراکی) بسط پيدا کرد
• سيستم های پايگاه داده توزيع شده طراحی شده اند

 

در اين نسل نرم افزار کامل تری به نام سيستم مديريت داده (Data Manegement System) به عنوان واسط بين برنامه کاربردی و محيط فيزيکی ايجاد شد.

DMS از AM استفاده می کند و ارتباط بين ديد منطقی و فيزيکی را ايجاد می کند. برای بازيابی يک رکورد DMS از AM درخواست می کند و AM رکوردهای موردنظر را از بلاک های فايل بازيابی و در اختيار DMS قرار می دهد تا کل رکورد را به برنامه بدهد

• نرم افزار DMS واسط برنامه کاربردی و داده است.
• فايل های منطقی متعددی می توانند از داده های فيزيکی مشترک بهره ببرند
• ميزان تکرار داده کاهش يافته است
• داده های مشترک در کاربردهای متنوع بکار می روند
• صحت داده تا حدی تامين می شود
• نشانی دهی در سطح فيلد يا گروهی از فيلدها ممکن است
• بازيابی بر کمک چند کليد امکان پذير است
• تسهيلاتی برای پردازش فايل پيش بينی شده است
• ترکيبی از انواع ساختارهای فايل بکار می رود

 

مهمترين ويژگی اين نسل پيدايش نرم افزارهای AM (access method) يا شيوه های دسترسی و همچنين ايجاد رسانه های با دسترسی مستقيم مانند ديسک است.

AM نرم افزاری است که مبتنی بر يک استراتژی دستيابی، به جنبه های فيزيکی محيط ذخيره سازی و عمليات آن می پردازد و جنبه های فيزيکی را تا حدی از ديد کاربر مخفی می کند. و برنامه کاربردی ديگر نيازی به پرداختن به آنها ندارد. مشخصات اين نسل عبارتند از:

• نرم افزار واسط AM برای ايجاد فايل ها با ساختار گوناگون بين برنامه های کاربردی و محيط ذخيره سازی وجود دارد
• امکان دسترسی ترتيبی و مستقيم به رکورد وجود دارد
• پردازش در محيط های بلادرنگ (Real Time)، برخط (On-Line) و يکجا بسته به نوع سيستم عامل می توانند انجام شوند
• ساختار فيزيکی و منطقی فايل از هم جدا است ولی هنوز برنامه کابردی از محيط ذخيره سازی مستقل نيست
• امکان دسترسی بر اساس چندين کليد وجود ندارد
• روش های ايمنی و حفاظت داده ابتدائی وجود دارد
• داده ها برای کاربردهای خاص طراحی و ذخيره می شوند
• تکرار داده هنوز در حد نسبتا بالائی است
• اشتراک داده ها تا حدی ايجاد شده است

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

• ساختار فايل ها ترتيبی است
• ساختار فيزيکی همان ساختار منطقی فايل است
• تنها روش پردازش فايل ها پردازش يکجا (batch processing) است
• برنامه کاربردی تمام عمليات ورودی/خروجی را انجام می دهد و نرم افزار واسطی برای مديريت پردازش فايل ها وجود ندارد
• طراحی ساختار فيزيکی به عهده کاربر است
• تغيير در ساختار داده منجر به تغيير در برنامه کاربردی می شود
• افزونگی داده حداکثر است
• اشتراک داده مطرح نيست
• نسخه های متعدد از فايل هنگام بهنگام سازی ايجاد می شود

تعداد صفحات : 425

اطلاعات کاربری
آمار سایت
  • کل مطالب : 4247
  • کل نظرات : 0
  • افراد آنلاین : 9
  • تعداد اعضا : 2927
  • آی پی امروز : 56
  • آی پی دیروز : 247
  • بازدید امروز : 239
  • باردید دیروز : 1,446
  • گوگل امروز : 2
  • گوگل دیروز : 24
  • بازدید هفته : 6,481
  • بازدید ماه : 34,379
  • بازدید سال : 249,758
  • بازدید کلی : 8,428,452
  • کدهای اختصاصی