Практикум для изучения дисциплины «Основы программирования»


  г. — первый в мире микропроцессор 4004, создан Intel  (внутри 16 разрядов, снаружи 8 разрядов) 1978



Pdf көрінісі
бет60/81
Дата08.07.2020
өлшемі1,55 Mb.
#74978
түріПрактикум
1   ...   56   57   58   59   60   61   62   63   ...   81
Байланысты:
А.А. Тюгашев

1971 
г. — первый в мире микропроцессор 4004, создан Intel 
(внутри 16 разрядов, снаружи 8 разрядов) 1978 
 | 
80186      8088 
   | 
80286   (IBM PC AT) 1982 
   | 
80386 (32-
разрядный, защищенный режим) 1985 
   | 
80486  1989 
   | 
Pentium — 
PentiumPro (увеличенный размер кэш-памяти) 1993 
   | 
Pentium MMX (multi medium extension) 1997 
      | 
  Pentium II 1997  
      | 
  Pentium III 1999 
      | 
  Pentium IV 2000 
      | 


124 
 
  Core 2 Duo (
многоядерный) 2006 
      | 
  Pentium G  2011 
Другим  важным  обстоятельством  является  то,  что  огромный  массив 
существующих программ был разработан именно для x86, так что, весьма 
вероятно,  читателю  придется  разбираться  именно  с  подобными 
программами. 
ЗАМЕЧАНИЕ 
Данная глава ни в коем случае не является учебником по программированию 
на  языке  ассемблера —  весьма  нетривиальной  технической  дисциплине, 
имеющей  массу  нюансов.  Она  дает  лишь  весьма  поверхностное  общее 
впечатление,  позволяющее  в  некоторой  степени  понять  особенности 
программирования на ассемблере и способное стать отправной точкой для его 
последующего изучения по специализированной литературе, например [13]. 
Для  дальнейшего  изложения  нам  потребуются  краткие  дополнительные 
сведения  об  архитектуре  ЭВМ —  в  частности,  о  представлении  команд. 
Для  представления  команды  в  памяти  ЭВМ  необходимо  закодировать 
двоичным  кодом  само  действие  и  операнды —  то,  над  чем  производится 
действие. 
Поле  команды  состоит  из  двух  частей —  операционной  и  адресной.  В 
операционной  части  записывается  код  операции  (КОП).  Этот  код 
определяет  действие,  которое  команда  должна  выполнить  над  данными 
(обычно  арифметическое  или  логическое).  Адресная  часть  команды 
содержит адреса ячеек памяти — операндов, обрабатываемых в операции. 
Количество  приводимых  в  команде  адресов  может  быть  различным. 
Основными  вариантами  архитектур  ЭВМ  являются:  трехадресная; 
двухадресная; одноадресная. 
 
КОП  А1  А2  А3 
  
КОП  А1  А2 
 
КОП  А 
 
Рис. 17 


125 
 
Большинство 
операций, 
реализуемых 
арифметико-логическими 
устройствами  современных процессоров, —  двухместные (бинарные),  это 
означает,  что  в  результате  обработки  двух  операндов  получается  один 
результат. Рассмотрим пример вычисления выражения z=x+y. 
В  трехадресной  архитектуре —  самой  полной —  часть  двоичного  кода 
команды  отводится  под  представление  операции.  Например,  000110 — 
сложение  (в  архитектуре  PDP-11).  Кроме  этого,  в  ней  присутствуют  три 
адреса: адрес первого операнда x — А1, адрес второго y — A2, и адрес, в 
который  нужно  поместить  результат,  z —  A3.  Трехадресная  архитектура 
является наиболее гибкой, но и наиболее затратной с точки зрения объема 
памяти, необходимого для представления каждой команды. Если адресное 
пространство  соответствует  микропроцессорам  8086,  под  каждый  из 
адресов потребуется 20 бит. Соответственно, каждая команда должна быть 
длиннее  60  бит,  что  не  очень  хорошо  с  точки  зрения  упаковки  больших 
программ. 
Большинство современных ЭВМ, в том числе микропроцессоры семейств 
x86, — 
двухадресные. В них в команде присутствуют два адреса, один из 
которых  используется  как  для  взятия  операнда,  так  и  для  помещения  по 
этому  же  адресу  полученного  результата.  Примером  может  служить 
x=x+y
.  Данный  подход  позволяет  без  существенной  потери  гибкости 
сэкономить заметное количество памяти. 
На одноадресной архитектуре были построены первые микропроцессоры. 
В  ней  присутствует  аккумулятор —  специальный  выделенный  регистр  в 
процессоре, в который по умолчанию попадают результаты всех операций. 
Из  него  же по  умолчанию берется один из операндов.  Соответственно, в 
команде достаточно указать адрес всего одного операнда. 
Самый экстремальный случай — безадресная архитектура. В ней команда 
содержит  лишь  КОП.  Операнды  по  умолчанию  берутся  из  заранее 
известного места — чаще всего из стека (два числа на вершине стека) (см. 

Достарыңызбен бөлісу:
1   ...   56   57   58   59   60   61   62   63   ...   81




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет