Машинный язык и язык ассемблера
Рис. 1.2. Структурная схема персонального компьютера |
ности машинных команд. Каждая машинная команда является своего рода раздра- жителем для возбуждения того или иного безусловного рефлекса. Реакция на этот раздражитель всегда однозначна и «зашита» в блоке микропрограммного управ- ления в виде микропрограммы. Эта микропрограмма и реализует действия по вы- полнению машинной команды, но уже на уровне сигналов, подаваемых на те или иные логические схемы компьютера, тем самым управляя различными подсисте- мами компьютера. В этом состоит так называемый принцип микропрограммного управления. Продолжая аналогию с человеком, отметим: для того чтобы компью- тер правильно «питался», придумано множество операционных систем, компиля- торов сотен языков программирования и т.
д. Но все они являются, по сути, лишь блюдом, на котором по определенным правилам доставляется пища (программы) желудку (компьютеру). Только (вот досада!) желудок компьютера любит диети- ческую, однообразную пищу — подавай ему информацию структурированную, в виде строго организованных последовательностей нулей и единиц, комбинации которых и составляют машинный язык. Таким образом, внешне являясь полиглотом, компьютер понимает только один язык — язык машинных команд. Конечно, для общения и работы с компьютером необязательно знать этот язык, но практически любой профессиональный програм- мист рано или поздно сталкивается с необходимостью его изучения. К счастью, при этом человеку не нужно пытаться постичь значение различных комбинаций двоичных чисел, так как еще в 50-е гг. программисты стали использовать для про- граммирования символический аналог машинного языка, который назвали язы- ком ассемблера. Этот язык точно отражает все особенности машинного языка. Именно поэтому, в отличие от языков высокого уровня, язык ассемблера для каж- дого типа компьютеров свой. Более того, бессмысленны разговоры о том, что ас- семблер как язык программирования устарел и знать его необязательно. АССЕМ- БЛЕР ОБЪЕКТИВЕН, и подобные разговоры в определенной ситуации могут выглядеть довольно глупо (особенно для особо «продвинутых» программистов). На первый взгляд ассемблер кажется очень сложным, но это не так. Для освое- ния этого языка совершенно не нужно выучивать наизусть все его команды и ди- рективы. Более того, в большинстве случаев для практической работы достаточно понимания основных концепций и идей, лежащих в основе языка ассемблера. Де- тали реализации той или иной команды всегда можно найти в справочнике ко- манд, гораздо важнее понимать, какое место данная команда занимает в системе команд, в идеале хорошо было бы знать и цели, которые преследовали разработчи- ки процессора, вводя данную команду в систему машинных команд. Одна из целей данного учебника — сформировать у читателя именно такое понимание языка ас- семблера. Из всего сказанного напрашивается вывод о том, что самую эффективную про- грамму можно написать только на ассемблере (при условии, что ее пишет квали- фицированный программист), так как этот язык является «родным» для компью- тера. Здесь есть одно маленькое «но»: это очень трудоемкий и требующий большого внимания и практического опыта процесс. Поэтому реально на ассемблере пишут в основном программы, которые должны обеспечить эффективную работу с аппа- ратной частью компьютера. Иногда на ассемблере пишутся критичные ко времени выполнения или расходованию памяти фрагменты программы. Впоследствии они оформляются в виде подпрограмм и совмещаются с кодом на языке высокого уровня. , В данном учебнике будут рассмотрены два фундаментальных для понимания логики функционирования компьютера вопроса: первый — архитектурные особен- ности процессора и основы его взаимоотношений с другими компонентами компь- ютера; второй — место и роль языка ассемблера во всем этом процессе. За основу в нашем рассмотрении будут взяты процессоры фирмы Intel. Необходимо отме- тить, что эти процессоры не являются единственными процессорами на рынке аппа- ратного обеспечения (hardware), хотя и занимают довольно большой сегмент этого рынка. Исторически сложилось так, что архитектура процессоров Intel полностью или частично поддерживается процессорами других фирм. Поэтому про- цессорам фирмы Intel приходится делить свой сегмент рынка с процессорами фирм AMD, VIA, Transmeta. Так как в своем сегменте рынка (Intel-совместимых про- цессоров) процессоры фирмы Intel являются стандартом де-факто, то в данном учебнике речь будет идти исключительно о них, однако все приводимые примеры программ будут работать и на Intel-совместимых процессорах процессорах других фирм.Еще по теме Машинный язык и язык ассемблера:
- ЯЗЫК
- Язык
- Русский язык
- ЯЗЫК (ПРОБЛЕМЫ)
- § 3. Государственный язык
- г. Штампы (иносказательный язык).
- Язык и жизнь
- Русский язык
- Язык
- Язык целого