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

سازماندهی عملکردی و ساختاری کامپیوترها.

محرک ها

این یک عنصر حافظه است. دستگاهی که قادر به به خاطر سپردن، ذخیره و غیره است. اطلاعات

فلیپ فلاپ های RS از دو گیت تشکیل شده اند که یک گیت می باشد یا نه، دوم و نه

تریگر RS به خاطر می آورد که کدام یک از ورودی هایش آخرین بار سیگنالی برابر با یک دریافت کرده است. اگر سیگنال به ورودی S اعمال شود، فلیپ فلاپ یک سیگنال را ذخیره می کند. اگر سیگنالی به ورودی R اعمال شود، فلیپ فلاپ صفر را ذخیره می کند.

0 1 1 - مجموعه 1

1 0 0 - مجموعه 0

1 1 - مجاز نیست

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

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

ثبات ها برای ضبط، ذخیره و تبدیل اعداد نوشته شده در آنها در نظر گرفته شده اند.

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

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

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

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

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

پلیس A1 A3 پلیس A1 A2 A3

پلیس ß---a3---à

روش های آدرس دهی: آدرس و انجمنی (جستجو بر اساس محتوا - مشاهده تمام سلول ها برای شناسایی کدهای حاوی یک دستور).

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

پشته خالی است نوشتن نوشتن خواندن ب خواندن پشته خالی است

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

نشانی‌دهی خودکار - در رایانه‌های مدرن استفاده می‌شود. محتویات حافظه رجیستر، قبل یا بعد از عملیات، با مقدار مشخص و دائمی تعیین شده، افزایش یا کاهش می یابد. این نوع در هنگام پردازش حجم زیادی از داده ها استفاده می شود.



اصل آکادمیک گلوشکوف.

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

میکروبرنامه دنباله ای از دستورات کوچک است که اجرای یک عملیات را تضمین می کند.

Microcommand دنباله ای از سیگنال های کنترلی است.

اطلاعات عمومی مجموعه دستورات ثابت یک ریزپردازنده خاص نامیده می شود سیستم فرماندهیعملکرد یک پردازنده با ترکیبی از اساسیدستورات با کدهای عملیاتی مختلف تعداد کلهمیشه دستورات (کدهای عملیاتی) در سیستم بیشتر از تعداد دستورات اولیه است. به عنوان مثال، دستور پایه شامل دستور MOV dst، scr است که عملکرد ارسال داده از منبع scr به مقصد dst را ارائه می دهد. از این دست دستورات در سیستم زیاد است. سیستم فرمان در قالب یک جدول ارائه شده است. جدول می تواند ساختار متفاوتی داشته باشد، اما معمولاً حاوی اطلاعات زیر در مورد دستور است:

  • یادگاریفرمان که مخفف نام فرمان است. برای انجام این کار، از 3-4 حروف لاتین نام عملیات انجام شده توسط دستور استفاده کنید. یادگارییک شکل مناسب برای نمایش کد عملیاتی یک فرمان است. همچنین هنگام توصیف یک دستور در زبان اسمبلی استفاده می شود. برنامه اسمبلر نماد یادگاری کدهای عملیاتی را به معادل های باینری مربوطه تبدیل می کند.
  • کدهای هگزادسیمالدستورات؛
  • تأثیر فرمان اجرا شده بر روی پرچم هاثبت وضعیت برنامه؛
  • تعداد بایت هاروی تیم و تعداد چرخه ها و چرخه های ماشین، صرف اجرای دستور شد.
  • کلامیو/یا توصیف نمادینعملیات انجام شده توسط فرمان

اغلب، برای راحتی، سیستم فرمان بر اساس عملکرد به گروه های جداگانه تقسیم می شود. به عنوان مثال، سیستم فرمان ریزپردازنده KR580VM80، شامل 78 دستور اساسی، به 5 گروه تقسیم می شود. در زیر شرح مختصری از ویژگی های عملکردی دستورات هر گروه آورده شده است.

طول دستورات بین 1 تا 3 بایت است. Opcode همیشه در اولین بایت دستور قرار می گیرد. بایت دوم دستور برای عملوند فوری یا آدرس پورت اختصاص داده می شود، بایت دوم و سوم آدرس سلول حافظه است. دستورات اجازه تنظیم صریح تنها یک آدرس حافظه را می دهند، یعنی به کلاس دستورات unicast تعلق دارند. هنگام توصیف دستورات، استفاده کنید نامگذاری های زیر:

  • src، dst – منبع و مقصد 8 بیتی. منبع یا مقصد می تواند یکی از ثبات های 8 بیتی A، B، C، D، E، H یا یک سلول حافظه M باشد که دسترسی به آن توسط جفت ثبت H L، حاوی آدرس بایت ارسال شده، فراهم می شود. در opcode، منبع src و مقصد dst به عنوان یک کد سه بیتی SSS و DDD مشخص می شوند.
  • RP – کد دو بیتی جفت رجیستر BC، DE، N L، A + RP (رجیستر علامت) یا نشانگر پشته SP.
  • داده، داده 16 - عملوند 8 و 16 بیتی.
  • addr، port – آدرس حافظه 16 بیتی و آدرس پورت 8 بیتی.
  • (addr)، (SP) - محتویات سلول حافظه در آدرس های مشخص شده؛
  • (SP)+، -(SP) - عملیات پس از افزایش و پیش افزایش با پشته. دستورات فوروارد کردن این گروه حاوی پرکاربردترین دستورالعمل‌های انتقال داده در برنامه‌ها است که منابع و مقصد آن‌ها می‌تواند رجیسترهای پردازنده داخلی، حافظه اصلی و دستگاه‌های خارجی باشد. دستورات هیچ تاثیری بر پرچم های ثبت وضعیت ندارند.

فرمان یادگاری ویژگی های عملیات در حال انجام و روش آدرس دهی را منعکس می کند. به عنوان مثال، Mnemonic MOV، MVI حرکت عملوندها را نشان می دهد. LDA، LDAX، LXI، LHLD – برای بارگیری (بار)؛ STA، STAX، SHLD - برای صرفه جویی. برای عملیات با بایت، حافظه MOV، MVI، LDA، STA، LDAX، STAX استفاده می شود. برای عملیات با کلمات - LXI، LHLD، SHLD. آدرس دهی مستقیم هنگام بارگیری و ذخیره محتویات اکومولاتور توسط حافظه های حافظه LDA و STA، آدرس دهی غیرمستقیم توسط mnemonics LDAX و STAX منعکس می شود.

تیم های این گروه در جدول خلاصه شده اند. 5.8. آنها به شما اجازه می دهند:

  • عملیات انتقال دادهبین منبع (src) و مقصد (dst) که به صورت dst ← src (فرمان 1) نوشته می شود. منابع و مقصدها ثبت داخلی هستند هدف کلی(A، B، C، D، E، H) و سلول حافظه M. هر ترکیبی مجاز است، به استثنای M ← M، یعنی بارگذاری مجدد سلول حافظه M مجاز نیست.
  • در حال بارگذاریثبات های عمومی و سلول M با بایت دوم B2 (فرمان 2) و جفت های رجیستر BC، DE، HL (شامل نشانگر پشته SP) با بایت های دوم B2 و سوم B3 (فرمان 3) و B3 همیشه در بایت بارگذاری می شود. رجیسترهای بالاتر (B، D، H) جفت، B2 - به ثبات پایین (C، E، L).
  • حمل و نقلداده‌های بین باتری A و حافظه اصلی (فرمان‌های 4÷7)، بین باتری و یک دستگاه خارجی (فرمان‌های 8، 9). هنگام انتقال بین باتری A و حافظه، آدرس سلول های حافظه در جفت های ثبات BC، DE یا در بایت های سوم و دوم (B3B2) دستور قرار می گیرند.

جدول 5.8

یادگاری

اجرا شد

عملیات

عملیات

dst src

الف (افزودن)

یادداشت ها: RP – کد 2 بیتی جفت های ثبات BC، DE، HL، A + RP (رجیستر ویژگی) یا نشانگر پشته SP. B - بایت، U - چرخه، T - چرخه.

  • حمل و نقلداده بین یک جفت رجیستر HL و حافظه (تیم های 10، 11). در این حالت، عملوند از ثبات L به سلولی با آدرس B3B2 که از بایت های سوم و دوم دستور تشکیل شده و از ثبات H به آدرسی بالاتر ارسال می شود. در طول ارسال معکوس، ابتدا عملوند اول از سلولی با آدرس B3B2 در ثبات L بارگیری می شود، سپس عملوند دوم از سلول با آدرس B3B2+1 در ثبات H بارگیری می شود.
  • حمل و نقلداده‌های بین جفت‌های ثبات، از جمله یک جفت از انباشتگر A و ثبت ویژگی RP، و پشته (تیم‌های 12، 13). هنگام نوشتن در پشته، محتویات نشانگر پشته یک عدد کاهش می یابد و در آدرس SP-1 اولین عملوند در یکی از ثبات های B، D، H یا A بارگذاری می شود، سپس محتویات نشانگر پشته کاهش می یابد. دوباره توسط یک، و عملوند دوم در آدرس SP-2 از ثبات C، E، L یا RP بارگذاری می شود. هنگام خروج از پشته، یکی از ثبات های C، E، L یا RP ابتدا با عملوند ذخیره شده در سلول با آدرس SP اشاره گر پشته بارگذاری می شود. سپس محتویات یک افزایش می یابد، از سلول در آدرس SP + 1، عملوند دوم در یکی از ثبات های B، D، H یا A بارگذاری می شود، و محتویات نشانگر پشته دوباره یک افزایش می یابد و مقدار SP + 2. لازم به ذکر است که هنگام بارگیری جفت های رجیستر A, RP (کد آن RP = 11) از پشته، وضعیت تریگرهای رجیستر ویژگی RP تغییر می کند. این تنها فرمان (از میان تمام دستورات انتقال داده) است که بر ویژگی ها تأثیر می گذارد.
  • حمل و نقلمحتویات یک جفت ثبت HL در نشانگر پشته SP و شمارنده برنامه PC (دستورالعمل های 14، 15).
  • مبادلهداده ها بین جفت های ثبت HL و DE، جفت ثبت HL و پشته (دستورالعمل های 16، 17). در طول تبادل، محتویات جفت ثبت HL در جفت یا پشته DE و محتویات جفت یا پشته رجیستر DE در جفت HL قرار می گیرد. عملیات مبادله با نماد "↔" نشان داده می شود.

دستورات حسابی قابلیت های محاسباتی ریزپردازنده به دستورات جمع و تفریق ساده در عملوندهای 8 بیتی محدود می شود. عملیات ضرب و تقسیم اجرا می شود به صورت برنامه ای. مجموعه دستورات (جدول 5.9) به شما اجازه می دهد تا انجام دهید:

  • علاوه بر اینو تفریقعملوندهای 8 بیتی با و بدون حمل (دستورالعمل l÷8)، در حالی که یکی از عملوندها همیشه در انباشته است و دومی در یکی از رجیسترهای هدف عمومی (سلول حافظه M) یا بایت دوم فرمان است. . هنگام جمع و تفریق اعداد چند بایتی از دستوراتی استفاده می شود که مقدار سیگنال انتقال C را در ثبت ویژگی در نظر می گیرد. برای همین منظور، می توانید از دستور 9 برای اضافه کردن محتویات یک جفت ثبات HL با یک ثبات آدرس پذیر 16 بیتی استفاده کنید.
  • حسابی مقایسهمحتویات انباشتگر A با محتویات یکی از رجیسترهای عمومی Rn (سلول حافظه M) یا بایت دوم B2 (فرمانهای 10+11). در این حالت تفریق A – Rn یا A – B2 انجام می شود. نتیجه مقایسه توسط سیگنال های ماشه ثبت ویژگی تعیین می شود: اگر Z = 1، آنگاه A = Rn یا A = B2. اگر S = 1 باشد، A > Rn یا A > B2. محتویات باتری تغییر نمی کند.
  • افزایش دهدو کاهش یابدتوسط 1 (افزایشو کاهش)محتویات رجیسترها و جفت های رجیستر. هنگام برنامه نویسی اغلب

جدول 5.9

یادگاری

عملیات انجام شود

عملیات

A ← A + src + C

A ←A – src – C

A ← A + داده + CY

A ← A – داده ها

A ← A – داده – CY

A – scr (مقایسه)

A – scr (مقایسه)

dst ← dst – 1

A ← 2/10-اصلاح A

نیاز به افزایش یا کاهش یک عملوند وجود دارد. برای انجام این کار می توانید از عملیات جمع A + B2 یا تفریق A – B2 استفاده کنید و B2 = 1 را در برنامه بنویسید اما سیستم دستورالعمل دستورالعمل های خاصی (12-5-15) را برای افزایش و کاهش 8- و کاهش می دهد. عملوندهای 16 بیتی؛

تصحیح اعشاریمحتویات آکومولاتور پس از انجام عملیات حسابی در BCD 8421 (دستورالعمل 16). در این حالت، محتویات آکومولاتور به صورت دو نیبل نمایش داده می شود که هر کدام مربوط به یک رقم اعشاری است. تصحیح با یک بلوک تصحیح اعشاری مطابق با قوانین مندرج در § 5.2 (ص. 99) انجام می شود.

دستورات عملیات منطقی دستورات این گروه (جدول 5.10) به شما این امکان را می دهد که:

  • عملیات منطقی دوگانه ضرب(و) علاوه بر این(OR) و انحصارییا بیش از عملوندهای 8 بیتی (دستورالعمل 1÷6). عملیات منطقی به صورت بیتی هستند و به طور مستقل برای هر یک از هشت بیت عملوند انجام می شوند. عملوند غیر آدرس پذیر در اکومولاتور قرار دارد و نتیجه عملیات نیز به آنجا می رود. عملوند دوم محتویات یکی از ثبات های عمومی (سلول حافظه M) یا بایت دوم دستورالعمل است.
  • معکوس کردنمحتویات باتری A (فرمان 7)؛
  • دستورات پرچم (8، 9) معکوس کردنو تاسیساتبیت C از تریگر انتقال رجیستر ویژگی؛
  • دو نوع تغییرات چرخه ایمحتویات باتری چپ و راست (فرمانهای Yul-13). نوع اول جابجایی ها (تغییرهای بدون حمل) با بستن تمام تریگرهای انباشته کننده در یک حلقه با نوع دوم شیفت ها (تغییرها با حمل یا جابجایی های طولانی) انجام می شود. حلقه جابجایی های منطقی و حسابی در هر دو جهت که در سیستم فرمان وجود ندارد را می توان با قرار دادن بیت C روی 0 یا 1 همراه با یک شیفت توسعه یافته پیاده سازی کرد.

کنترل دستورات انتقال هنگام انتقال کنترل، روند پی در پی واکشی محتویات سلول های حافظه مختل می شود و پردازنده به ناحیه حافظه دیگری خطاب می شود. برجسته کردن

جدول 5.10

یادگاری

اجرا شد

عملیات

عملیات

A ← A l src – ضرب

A ← A v src – جمع

A ← A © src – به استثنای. یا

A ← A l داده

A ← A © داده

سه نوع فرمان انتقال کنترل: دستورات انتقالدر یک آدرس داده شده (JMP)، تماس بگیریدزیر برنامه ها (CALL) و بازگشتاز زیر برنامه (RET). اینها عبارتند از بدون قید و شرطو مشروطتیم ها دستورات شرطی یک انتقال را انجام می دهند، یک زیربرنامه را فراخوانی می کنند و بسته به وضعیت پرچم مشخص شده توسط مقدار سیگنال یکی از چهار محرک Z، C، S، P ثبت ویژگی (یا حالت) از یک زیربرنامه برمی گردند. . پردازنده 8080 از هر دو حالت (1 و 0) چهار پرچم (Z، C، P، S) استفاده می‌کند که امکان 8 گزینه برای هر دستور را فراهم می‌کند (جدول 5.11). تعیین صفت (شرط) در یادداشت دستورات شرطی J**، C**، R** به جای ستاره (**) نشان داده شده است. به عنوان مثال، ویژگی NC، که شرایط انتقال زمانی که C = 0 برای آن برآورده می شود، با دستور JNC مطابقت دارد.

هر دو پرش شرطی و بدون قید و شرط و فراخوانی های زیر روال از یک آدرس 16 بیتی کامل برای انتقال کنترل به هر نقطه در فضای حافظه 64 کیلوبایتی استفاده می کنند.

جدول 5.11

بیایید به ویژگی های دستورات ارائه شده در جدول نگاه کنیم. 5.12.

با استفاده از دستور JMP سه بایتی پیاده سازی می شود بدون قید و شرطانتقال کنترل در این حالت، بایت های دوم و سوم دستور (آدرس آدرس ادامه برنامه) وارد شمارنده فرمان PC می شوند (محتویات B3 در بیت های مرتبه بالا و B2 در بیت های مرتبه پایین هستند).

تیم ها مشروطانتقال کنترل J** بسته به شرایط، انشعاب فرآیند محاسباتی را اجرا می کند. هنگامی که شرط (YES) برآورده شد، بایت دوم و سوم فرمان وارد شمارنده PC می شود، در غیر این صورت (NO) محتویات شمارنده 3 واحد افزایش می یابد. برنامه در آدرسی که در شمارنده برنامه قرار دارد ادامه می یابد، یعنی. از دستور بعدی

جدول 5.12

یادگاری

اجرا شد

عملیات

عملیات

تیم ها بدون قید و شرط(تماس) و مشروط(با **) تماس می گیردبرای دسترسی به برنامه های فرعی ذخیره شده در قسمت دیگری از حافظه اصلی استفاده می شود. این دستورالعمل‌ها همیشه توانایی بازگشت به برنامه اصلی قطع شده را با ذخیره محتویات شمارنده برنامه رایانه شخصی در پشته فراهم می‌کنند. پس از انجام عملیات بازگشت:

  • در بدون قید و شرطتماس بگیرید یا تحقق شرطبایت های دوم و سوم فرمان وارد شمارنده برنامه PC می شوند.
  • در عدم تحقق شرطمحتویات شمارنده برنامه 3 واحد افزایش می یابد.

برنامه در آدرسی که در پیشخوان برنامه PC قرار دارد ادامه می یابد.

این مجموعه شامل دستوراتی است که به شما امکان پیاده سازی را می دهد بدون قید و شرط(RET) و انتقال مشروط (K**) کنترل برای بازگشتبه برنامه قطع شده هنگامی که این دستورالعمل ها اجرا می شوند، آدرس برگشتی از پشته به شمارنده برنامه PC بازنویسی می شود، که برای آن از روش آدرس دهی پس از افزایش استفاده می شود. اگر شرط بازگشت برآورده نشود (برای یک فرمان با یک شرط)، انتقال به دستور بعدی با افزایش محتویات رایانه شخصی شمارنده برنامه به اندازه یک انجام می شود. دستورالعمل های بازگشتی دستورالعمل های تک بایتی هستند زیرا نشانگر پشته SP آدرس محل پشته را با آدرس برگشتی به برنامه قطع شده ذخیره می کند.

دستورالعمل PCHL کامپیوتر شمارنده برنامه را با آدرس ذخیره شده در جفت ثبت HL بارگذاری می کند.

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

  • محتویات شمارنده برنامه به پشته در آدرس های SP – 1, SP – 2 که در نشانگر پشته تشکیل شده است منتقل می شود که بازگشت به برنامه اصلی را تضمین می کند.
  • آدرس 16 بیتی شروع یکی از 8 برنامه سرویس وقفه به شمارنده برنامه ارسال می شود.

جدول 5.13

یادگاری

اجرا شد

عملیات

عملیات

– (SP) ← رایانه شخصی ← 8×n، n = 0 – 7

وقفه ها را فعال کنید

وقفه ها را غیرفعال کنید

خواندن ماسک

نصب ماسک

بدون عملیات

دستور فعالسازی وقفه EI، ماشه فعالسازی وقفه INTE را در یک حالت واحد قرار می دهد و باعث می شود ریزپردازنده به درخواست های وقفه پاسخ دهد. دستور DI interrupt disable فلیپ فلاپ INTE را صفر می کند. دستور NOP خالی در حلقه های تاخیر قابل برنامه ریزی استفاده می شود. دستور توقف HLT باعث می شود که اجرای برنامه خاتمه یابد.

مهم است بخش جدایی ناپذیرمعماری کامپیوتر سیستمی از دستورات است. با وجود تعداد زیادیانواع کامپیوترها، در پایین ترین سطح ("ماشین") مشترکات زیادی دارند. سیستم فرمان هر رایانه لزوماً شامل گروه های زیر از دستورات پردازش اطلاعات است. 1. دستورات انتقال داده (سرشماری) که اطلاعات را از مکانی به مکان دیگر کپی می کند. 2. عملیات حسابی، که فناوری کامپیوتر در واقع نام خود را مدیون آنهاست. البته سهم اقدامات محاسباتی در یک کامپیوتر مدرن به طور محسوسی کاهش یافته است، اما همچنان نقش مهمی در برنامه ها دارند. توجه داشته باشید که عملیات اصلی حسابی معمولاً شامل جمع و تفریق می شود (این دومی در نهایت اغلب به یک روش به جمع کاهش می یابد). در مورد ضرب و تقسیم، در بسیاری از رایانه ها آنها بر اساس انجام می شوند برنامه های ویژه. 3. عملیات منطقی که به کامپیوتر اجازه می دهد اطلاعات در حال پردازش را تجزیه و تحلیل کند. ساده ترین مثال ها مقایسه و همچنین عملیات منطقی شناخته شده AND, OR, NOT (وارونگی) هستند. علاوه بر این، تجزیه و تحلیل تک بیت های کد، تنظیم مجدد و نصب آنها اغلب به آنها اضافه می شود. 4. کد باینری به چپ و راست جابه جا می شود. برای اثبات اهمیت این گروه از دستورات، کافی است قانون ضرب ستون را یادآوری کنیم: هر حاصلضرب بعدی در چنین طرحی با تغییر یک رقم به چپ نوشته می شود. در برخی موارد خاص، ضرب و تقسیم را می توان به طور کلی با یک شیفت جایگزین کرد (به یاد داشته باشید که با اضافه کردن یا حذف یک صفر به راست، یعنی در واقع جابجایی یک عدد اعشاری، می توانید آن را 10 برابر افزایش یا کاهش دهید). 5. دستورات ورودی و خروجی اطلاعات برای تبادل با دستگاه های خارجی. در برخی از رایانه‌ها، دستگاه‌های خارجی آدرس‌های حافظه سرویس ویژه هستند، بنابراین ورودی و خروجی با استفاده از دستورات سرشماری انجام می‌شود. 6. فرمان هایی را کنترل کنید که الگوریتم های غیرخطی را پیاده سازی می کنند. این در درجه اول شامل پرش های مشروط و بدون قید و شرط و همچنین دستوراتی برای فراخوانی یک برنامه فرعی (پرش با بازگشت) می شود. برخی از رایانه ها دستورات خاصی برای سازماندهی حلقه ها دارند، اما این ضروری نیست: یک حلقه را می توان به ترکیبی از انتقال های شرطی و غیرشرطی کاهش داد. اغلب، همین گروه از دستورات شامل چند عملیات برای کنترل پردازنده است، مانند "توقف" یا NOP ("بدون عملیات"). گاهی اوقات آنها را به یک گروه خاص جدا می کنند. با افزایش پیچیدگی دستگاه پردازنده، تعداد دستوراتی که وضعیت بیت های کنترل را تجزیه و تحلیل می کنند و بر روی آنها عمل می کنند نیز افزایش می یابد. در اینجا، به عنوان مثال، می‌توانیم بیت‌های حالت عملکرد پردازنده و بیت‌های کنترل مکانیسم‌های وقفه از دستگاه‌های خارجی را نام ببریم. اخیرا همه چیز نقش بزرگمجموعه دستورالعمل حاوی دستوراتی برای تبدیل از یک فرمت داده به فرمت دیگر (به عنوان مثال، از 8 بیت به 16 بیت و غیره) است که پردازش داده ها را به طور قابل توجهی ساده می کند. انواع مختلف ، اما در اصل می توان با دنباله ای از چندین دستور ساده تر جایگزین کرد. با توجه به سیستم فرمان، نمی توان از دو جهت مدرن متقابل متقابل در ساخت آن نام برد: یک کامپیوتر با مجموعه کاملی از دستورات CISC (کامپیوتر مجموعه دستورات پیچیده) و با یک مجموعه محدود - RISC (رایانه مجموعه دستورالعمل کاهش یافته). این تقسیم بندی به این دلیل به وجود آمد که اکثر اوقات رایانه مجبور است بخش کوچکی از دستورالعمل های خود را اجرا کند ، در حالی که بقیه به صورت پراکنده استفاده می شوند (یک مقاله محبوب به شوخی این را به شکل قیاس تصویری زیر بیان می کند: "20 ٪ از جمعیت 80٪ آبجو می نوشند. بنابراین، اگر به طور قابل توجهی مجموعه عملیات را به ساده ترین و کوتاه ترین محدود کنید، اما آنها را با دقت بهینه کنید، یک ماشین RISC نسبتا کارآمد و سریع دریافت خواهید کرد. درست است که با نیاز به اجرای دستورات "دور انداخته شده" در نرم افزار باید هزینه سرعت را بپردازید، اما اغلب این پرداخت توجیه می شود: به عنوان مثال، برای محاسبات علمی یا گرافیک کامپیوتری، سرعت بسیار مهمتر از مشکلات برنامه نویسی است. مسائل مربوط به سیستم دستورالعمل ریزپردازنده های مدرن در ادامه این فصل با جزئیات بیشتر مورد بحث قرار خواهد گرفت. به طور خلاصه، یک بار دیگر تأکید می کنیم که مجموعه اصلی دستورات در طول تکامل سریع رایانه ها کمی تغییر کرده است. در عین حال، روش های نشان دادن آدرس مکان اطلاعات در حافظه دستخوش تغییرات قابل توجهی شده و شایسته توجه ویژه است. یک فرمان رایانه معمولاً از دو بخش تشکیل شده است - عملیاتی و آدرس. قسمت عملیاتی (که در غیر این صورت کد عملیاتی نامیده می شود - OPC) نشان می دهد که چه عملی باید با اطلاعات انجام شود. قسمت آدرس محل ذخیره اطلاعات مورد استفاده را توضیح می دهد. چند فرمان کنترل عملیات ماشین ممکن است هیچ قسمت آدرسی نداشته باشند، به عنوان مثال، در یک دستور توقف. بخش عملیاتی همیشه وجود دارد. یک کد عملیاتی را می توان به عنوان یک عدد متعارف معین در فهرست کلی سیستم های فرمان در نظر گرفت. اساساً، این لیست مطابق با الگوهای داخلی خاصی ساخته شده است، اگرچه آنها همیشه واضح نیستند. قسمت آدرس تنوع بسیار بیشتری دارد و باید با جزئیات بیشتری در نظر گرفته شود. اول از همه، توجه می کنیم که دستورالعمل ها بسته به تعداد عملوندهای درگیر در آنها می توانند یک، دو یا سه آدرس باشند. اولین کامپیوترها دارای ساده ترین و بصری ترین سیستم فرمان سه آدرس بودند. به عنوان مثال: اعداد را از آدرس های حافظه A1 و A2 بگیرید، آنها را جمع کنید و جمع را در آدرس A3 قرار دهید. در صورت نیاز به عملیات تعداد کمتر آدرس‌ها، سپس موارد اضافی به سادگی استفاده نشدند. فرض کنید در عملیات سرشماری فقط سلول های منبع و گیرنده اطلاعات A1 ​​و A3 مشخص شده بود و مطالب A2 معنی نداشت. رمزگشایی دستور سه آدرس آسان بود و استفاده از آن راحت بود، اما با افزایش مقدار RAM، طول آن به طرز غیرقابل قبولی بزرگ شد. در واقع، طول فرمان مجموع طول سه آدرس و کد عملیات است. به عنوان مثال، برای یک RAM متوسط ​​از 1024 سلول، فقط نوشتن قسمت آدرس یک فرمان به 3 * 10 = 30 بیت باینری نیاز دارد که برای پیاده سازی فنی چندان راحت نیست. بنابراین، ماشین‌های دو آدرسی ظاهر شدند که در آن‌ها با حذف آدرس برای ثبت نتیجه، طول فرمان کاهش یافت. در چنین رایانه هایی، نتیجه عملیات در یک ثبات (جمع کننده) ویژه باقی می ماند و برای استفاده در محاسبات بعدی مناسب بود. در برخی از ماشین ها، نتیجه به جای یکی از عملوندها نوشته می شد. ساده‌سازی بیشتر دستور منجر به ایجاد ماشین‌های unicast شد. اجازه دهید سیستم فرمان چنین رایانه ای را با استفاده از یک مثال ساده خاص در نظر بگیریم. فرض کنید باید اعداد ذخیره شده در سلول های دارای آدرس های رم A1 و A2 را جمع آوری کنیم و مجموع را در سلولی با آدرس A3 قرار دهیم. برای حل این مشکل، یک ماشین unicast باید سه دستور را اجرا کند: محتویات سلول A1 را در جمع کننده استخراج کنید. جمع کننده را با عدد A2 اضافه کنید. نتیجه را از جمع کننده به A3 بنویسید. ممکن است به نظر برسد که یک ماشین unicast سه برابر بیشتر از یک ماشین سه آدرس برای انجام یک کار به دستورات نیاز دارد. در واقع همیشه اینطور نیست. سعی کنید برنامه خود را برای محاسبه عبارت A5 = (A1 + A2)*AZ/A4 برنامه ریزی کنید و متوجه خواهید شد که به سه دستور سه آدرسی و فقط پنج دستور unicast نیاز دارید. بنابراین، یک ماشین یونیکاست از برخی جهات حتی کارآمدتر است، زیرا نتایج میانی غیرضروری را در حافظه نمی‌نویسد. به منظور کامل بودن، باید در مورد امکان پیاده سازی یک ماشین بدون آدرس (آدرس صفر) گفت که از روش خاصی برای سازماندهی حافظه استفاده می کند - پشته. درک اصول چنین ماشینی نیازمند توضیحات نسبتاً دقیقی است. امروزه از کامپیوترهای بدون آدرس عملا استفاده نمی شود. بنابراین، ما فقط به ذکر این واقعیت اکتفا می کنیم که یک سیستم فرمانی که به روشی مشابه چیده شده است، اساس برخی از ریزمحاسبه های قابل برنامه ریزی (مثلاً "BZ-21" و "BZ-34" و مانند آن بوده است). تاکنون در تشریح ساختار دستورالعمل ماشین از مفهوم شهودی آدرس اطلاعات استفاده کرده ایم. اجازه دهید اکنون موضوع پرداختن به عناصر RAM را با جزئیات بیشتر و دقیق تر بررسی کنیم. حافظه به سادگی در کامپیوترهای دو نسل اول سازماندهی شده بود. این شامل سلول های جداگانه ای بود که محتویات هر یک از آنها به عنوان یک واحد خوانده یا نوشته می شد. هر سلول حافظه شماره مخصوص به خود را داشت که به آن آدرس می گفتند. بدیهی است که آدرس سلول های RAM مجاور اعداد صحیح متوالی هستند، یعنی. با یک تفاوت دارند کامپیوترهای مورد بررسی تنها از یک نوع داده (اعداد واقعی) استفاده می کردند و طول آنها برابر با طول دستورالعمل ماشین بود و با ظرفیت حافظه و سایر دستگاه های دستگاه منطبق بود. به عنوان مثال، اشاره می کنیم که سلول یک کامپیوتر نسل دوم معمولی از 36 بیت باینری تشکیل شده است. اغلب، برنامه ای برای پردازش با استفاده از فرمول های مشابه، مقدار معینی از محتویات سلول های متوالی (به زبان ها) در نظر گرفته شده بود. سطح بالاساختارهایی از این نوع بعدها آرایه نامیده شدند). دو نسل اول رایانه ها مکانیسم های خاصی را برای پردازش چرخه ای آرایه های اطلاعاتی ارائه کردند. برای این منظور در دستورالعمل های ماشین علاوه بر آدرس های معمولی، امکان استفاده از آدرس های قابل تغییر وجود داشت که در آنها یک بیت کنترلی خاص روی یک تنظیم شده بود. هنگامی که دستور اجرا شد، آدرس های اصلاح شده که به این روش علامت گذاری شده بودند، با مقدار سلول های شاخص ویژه اضافه شدند. با تغییر محتویات سلول های شاخص، دسترسی به عناصر مختلف آرایه امکان پذیر شد. ما به ویژه تأکید می کنیم که تشکیل آدرس حاصل در زمان اجرای دستور در واحد کنترل انجام شد، بنابراین دستور اصلی در RAM بدون تغییر ذخیره شد. مکانیسم توصیف شده برای تغییر آدرس ها نوشتن برنامه های چرخه ای را به طور قابل توجهی ساده می کند، مانند یافتن مجموع سلول های RAM متوالی، کپی کردن بخش های حافظه فردی و غیره. در رایانه های نسل سوم، ایدئولوژی ساخت حافظه به طور قابل توجهی تغییر کرد: حداقل اطلاعات برای تبادل با RAM برابر با 8 رقم باینری تنظیم شد، یعنی. یک بایت پردازش چندین نوع داده ممکن شده است: کاراکترهای متنی (1 بایت)، اعداد صحیح (2 بایت)، اعداد واقعی با دقت معمولی یا دوگانه (به ترتیب 4 یا 8 بایت). در این راستا، یک واحد مرسوم جدید اندازه گیری اطلاعات - کلمه ماشین - معرفی شد. برابر با 4 بایت بود و با طول استاندارد مطابقت داشت عدد واقعی. تمام مقادیر اطلاعات در واحدهایی که مضرب کلمه هستند اندازه گیری شد: دو کلمه، نیم کلمه و غیره به طور طبیعی، آدرس (شماره سلول RAM) در ماشین‌هایی با سازماندهی بایت شروع به اشاره به یک بایت جداگانه کرد. تعداد بایت های حافظه یک افزایش می یابد. یک کلمه از چندین بایت متوالی تشکیل شده است. به عنوان آدرس یک کلمه، گرفتن آدرس یکی از بایت هایی که آن را تشکیل می دهد راحت است (معمولا از بایت کم که کمترین تعداد را دارد استفاده می شود). بنابراین، آدرس کلمات بعد از یک دیگر تغییر نمی کند. افزایش آنها بستگی به طول کلمه ماشین بر حسب بایت دارد و برابر با چهار است. اندازه کلمه ماشین ظاهراً بر اساس فرمت اطلاعات در حال پردازش انتخاب شده است و نه در ارتباط با ظرفیت بیت هر دستگاه. برای تایید این موضوع، در اینجا چند واقعیت در مورد کامپیوترهای نسل سوم معمولی از خانواده EC آورده شده است. واحد حسابی-منطقی مدل EC-1022 دارای 16 بیت باینری، EC-1033 دارای 32 بیت و EC-1050 دارای 64 بیت بود. در همان زمان، برای یک دسترسی به RAM در ES-1022 و ES-1033، 4 بایت انتخاب شد، در ES-1050 - 8 بایت (و در ES-1045 - 16 بایت). بنابراین، تنوع اعداد نشان می دهد که 32 بیت (4 بایت) مقداری از اطلاعات تخصیص یافته فنی نبوده است. چندین ویژگی دیگر در خودروهای نسل سوم ظاهر شد: طول های مختلفدستورات بسته به روش آدرس دهی داده ها، وجود حافظه رجیستر فوق تصادفی ویژه، محاسبه آدرس RAM موثر به عنوان مجموع چندین ثبات و غیره. همه اینها بیشتر در رایانه های نسل چهارم توسعه یافتند، که ظرفیت بیت ریزپردازنده یکی از آنها شد. مهمترین ویژگی ها. بررسی ویژگی های ساختاری حافظه کامپیوتر نسل چهارم را به بخش بعدی موکول می کنیم.

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

زیر تیم درک کلیت اطلاعات ارائه شده در قالب کدهای باینری، لازم برای پردازشگر برای انجام مرحله بعدی.

در کد فرمان، بیت ها (فیلدهای) خاصی برای حاوی اطلاعات اختصاص داده شده است:

در مورد نوع عملیات،

آدرس سلول های RAM که داده های پردازش شده در آنها ذخیره می شود،

آدرس سلول های حافظه که نتیجه عملیات در آنها نوشته می شود.

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

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

شکل 5

عنصر اصلی کد فرمان، کد عملیاتی (OPC) است که تعیین می کند چه اقداماتی بر روی این دستور انجام خواهد شد. N بیت مهم ترین فرمت برای آن اختصاص داده شده است.

بیت های باقی مانده حاوی A1 و A2 هستند - آدرس عملوندها، A3 - آدرس نتیجه.

هنگام تغییر روش آدرس دهی، توزیع فیلدها در فرمت فرمان ممکن است تغییر کند.

طول فرمان به تعداد فیلدهای آدرس بستگی دارد. بر اساس تعداد آدرس ها، تیم ها به بی آدرس تقسیم می شوند. یک، دو، سه آدرس.

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

2 اصل مختلف برای جستجوی عملوندها در حافظه وجود دارد: associative و address:

- جستجوی انجمنی (جستجو بر اساس محتویات یک سلول حافظه) شامل مشاهده محتویات تمام سلول های حافظه برای شناسایی کدی است که حاوی یک ویژگی انجمنی مشخص شده توسط یک دستور است.

- جستجوی آدرس فرض می کند که عملوند در آدرس مشخص شده در قسمت آدرس فرمان است.

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

آدرس اجرای عملوندکد باینری شماره سلول حافظه است که عملوند توسط آن نوشته یا خوانده می شود.

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

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

روش های آدرس دهی عملوندها، بسته به نوع جستجوی عملوندها در حافظه، طبقه بندی می شوند:

1) با وجود اطلاعات آدرس در دستور به:

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



- آدرس دهی ضمنی با این روش هیچ فیلد آدرسی در دستورالعمل وجود ندارد و آدرس عملوند توسط کد عملیاتی مشخص می شود. به عنوان مثال، آدرس گیرنده مقصد ممکن است از دستورالعمل حذف شود، به این معنی که نتیجه به جای عملوند دوم نوشته شده است.

2) با توجه به فرکانس دسترسی به رم:

- آدرس دهی مستقیمبا آدرس دهی مستقیم، عملوند مستقیماً در قسمت آدرس دستور قرار می گیرد (شکل 6).

شکل 6

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

شکل 7

- آدرس دهی غیر مستقیمبا آدرس دهی غیرمستقیم، کد دستورالعمل آدرس سلول حافظه را مشخص می کند که نه خود عملوند، بلکه آدرس آن را که اشاره گر نامیده می شود، مشخص می کند. این را می توان با شکل زیر نشان داد (شکل 8).

شکل 7

3) با توجه به روش تشکیل آدرس سلول های حافظه:

- آدرس دهی مطلقفرض کنید که کد باینری آدرس یک سلول حافظه را می توان به طور کامل یا از فیلد آدرس دستورالعمل استخراج کرد یا در مورد آدرس دهی غیرمستقیم از سلول دیگر.

- آدرس دهی نسبیفرض کنید که کد باینری عملوند از چندین جزء تشکیل شده است:

ب - کد پایه؛

و - کد فهرست؛

ج - کد افست.

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

انواع آدرس دهی نسبی:



شکل 9

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

آدرس عملوند i در آرایه به عنوان مجموع آدرس شروع آرایه عملوند که توسط افست S داده می شود و اندیس i که در یکی از ثبات های حافظه رجیستر نوشته شده است، به نام ثبات شاخص تعریف می شود.

آدرس رجیستر شاخص در دستور با فیلد آدرس فهرست Ai مشخص می شود.

در هر چرخه i، محتویات رجیستر شاخص با یک مقدار ثابت، معمولاً 1 تغییر می کند.

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

2) نشانی دهی خودکار.در طول نمایه سازی خودکار، آدرس غیرمستقیم واقع در رجیستر RP به طور خودکار افزایش می یابد (آدرس سازی افزایشی خودکار) یا کاهش می یابد (آدرس سازی کاهشی خودکار) قبل یا بعد از انجام عملیات به میزان ثابتی.

3) آدرس دهی پشته. حافظه پشته ای به طور گسترده در رایانه های مدرن استفاده می شود. اگرچه آدرس دسترسی پشته در دستور نیست، اما توسط مدار کنترل تولید می شود (شکل 9):

شکل 9

فقط یک ثبات برای خواندن یک رکورد در دسترس است - بالای پشته.

این روش آدرس دهی به ویژه توسط سیستم وقفه برنامه هنگام فراخوانی زیر روال ها استفاده می شود.

حافظه پشته با استفاده از نشانگر پشته و آدرس دهی فهرست خودکار در بالای حافظه معمولی پیاده سازی می شود. به طور منطقی، سلول های حافظه اختصاص داده شده به پشته به گونه ای سازماندهی شده اند که آخرین آدرس نوشته شده ابتدا خوانده شود و اولین آدرس نوشته شده در آخر خوانده شود. این سازمان منطقی توسط یک شمارنده خاص تشکیل می شود. این شمارنده stack pointer SP نامیده می شود که یک ثبات ریزپردازنده است. سلول حافظه ای که در آن در حال حاضررا می توان نوشت، به عنوان مثال، آدرس برگشتی از یک برنامه فرعی فراخوانی می شود بالای پشته . تعداد سلول های حافظه در نظر گرفته شده برای سازماندهی یک پشته نامیده می شود عمق پشته . آخرین سلول حافظه ای که می توان روی آن نوشت فراخوانی می شود پایین پشته . نوشتن روی پشته با استفاده از آدرس دهی خودکار کاهشی و خواندن با استفاده از آدرس دهی افزایشی خودکار انجام می شود (شکل 10).

شکل 10

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

در زبان C به زیربرنامه ها توابع گفته می شود. یک تابع می تواند دارای آرگومان ها و متغیرهای محلی باشد، یعنی متغیرهایی که فقط در حین اجرای تابع وجود دارند. فرض کنید یک تابع به دو آرگومان ورودی x و y از نوع صحیح وابسته است و از سه متغیر محلی a، b و c و همچنین از نوع صحیح استفاده می کند. تابع یک مقدار صحیح برمی گرداند.

زیر برنامه:

برنامه اصلی:

به عنوان مثال، در یک نقطه خاص از برنامه، یک تابع f با آرگومان های x = 2، y = 3 فراخوانی می شود. برنامه فراخوانی مقادیر واقعی آرگومان های x و y تابع f را روی پشته فشار می دهد، با آرگومان اول تابع در بالای پشته و آرگومان دوم زیر آن. هنگامی که یک دستور فراخوانی تابع اجرا می شود، آدرس برگشتی نیز به بالای پشته فشار داده می شود. هنگامی که تابع f شروع می شود، پشته به شکل زیر است:

قبل از اجرا، تابع f باید یک ناحیه حافظه روی پشته برای متغیرهای محلی خود a، b، c بگیرد.

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

با وجود تعداد زیادی از انواع رایانه ها، در پایین ترین سطح ("ماشین") آنها اشتراکات زیادی دارند.

سیستم فرمان هر رایانه لزوماً شامل گروه های زیر از دستورات پردازش اطلاعات است:

1. دستورات انتقال داده (سرشماری) که اطلاعات را از مکانی به مکان دیگر کپی می کند.

تبادل بین رجیسترهای پردازنده،

سی پی یو و RAM,

پردازنده و تاسیسات جانبی.

2. عملیات حسابی. عملیات حسابی اساسی معمولاً شامل جمع و تفریق می شود (این دومی اغلب به جمع خلاصه می شود). در مورد ضرب و تقسیم، در بسیاری از رایانه ها با استفاده از الگوریتم های خاص انجام می شود.

3. عملیات منطقی که به کامپیوتر اجازه می دهد اطلاعات در حال پردازش را تجزیه و تحلیل کند. به عنوان مثال، عملیات مقایسه یا عملیات منطقی شناخته شده AND، OR، NOT. علاوه بر این، آنها اغلب تجزیه و تحلیل بیت های کد جداگانه، تنظیم مجدد و نصب آنها را اضافه می کنند.

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

5. دستورات ورودی و خروجی اطلاعات برای تبادل با دستگاه های خارجی. در برخی از رایانه‌ها، دستگاه‌های خارجی آدرس‌های حافظه سرویس ویژه هستند، بنابراین ورودی و خروجی با استفاده از دستورات سرشماری انجام می‌شود.

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

با توجه به سیستم فرمان، نمی توان از دو جهت مدرن متقابل متقابل در ساخت آن نام برد: یک کامپیوتر با مجموعه کاملی از دستورات CISC (کامپیوتر مجموعه دستورات پیچیده) و با یک مجموعه محدود - RISC (رایانه مجموعه دستورالعمل کاهش یافته). این تقسیم به این دلیل به وجود آمد که بیشتر اوقات رایانه مجبور است بخش کوچکی از مجموعه دستورات خود را اجرا کند ، در حالی که بقیه گاهی اوقات استفاده می شوند. بنابراین، اگر به طور قابل توجهی مجموعه عملیات را به ساده ترین و کوتاه ترین محدود کنید، یک ماشین RISC نسبتا کارآمد و سریع بدست خواهید آورد. درست است که با نیاز به اجرای دستورات "دور انداخته شده" در نرم افزار باید هزینه سرعت را بپردازید، اما اغلب این پرداخت توجیه می شود: به عنوان مثال، برای محاسبات علمی یا گرافیک کامپیوتری، سرعت بسیار مهمتر از مشکلات برنامه نویسی است.