Статус нашего сайта: |
ICQ Information Center |
ICQ SHOP 5-значные 6-значные 7-значные 8-значные 9-значные Rippers List ОПЛАТА СТАТЬИ СЕКРЕТЫ HELP CENTER OWNED LIST РОЗЫСК!New! ICQ РЕЛИЗЫ Протоколы ICQ LOL ;-) Настройка компьютера Аватарки Смайлики СОФТ Mail Checkers Bruteforces ICQTeam Soft 8thWonder Soft Other Progs ICQ Patches Miranda ICQ ФорумАрхив! ВАШ АККАУНТ ICQ LiveJournal
РекламаНаш канал:irc.icqinfo.ru |
Таненбаум Э.- Архитектура компьютера. стр.396Во время выполнения объектной программы задействованы только три уровня: микроархитектуры, архитектуры команд и операционной системы. Следовательно, 1 В отечественной литературе принято и интерпретацию, и компиляцию называть трансляцией (именно компиляцию автор здесь называет трансляцией). Другими словами, трансляторы могут быть либо компиляторами, либо интерпретаторами. — Примеч. научи, ред. во время работы программы в памяти компьютера можно найти три программы: пользовательскую объектную программу, операционную систему и микропрограмму (если она есть). Никаких следов исходной программы не остается. То есть число уровней при выполнении программы может не соответствовать числу уровней до трансляции. Следует отметить, в данной книге мы определяем принадлежность к тому или иному уровню по командам и языковым конструкциям, доступным программистам этого уровня (а не по технологии реализации), в то время как некоторые авторы проводят различие между уровнями, реализованными интерпретаторами и трансляторами. Знакомство с ассемблером Трансляторы можно разделить на две группы в зависимости от отношения между входным и выходным языками. Если входной язык является символическим представлением числового машинного языка, то транслятор называется ассемблером, а входной язык — языком ассемблера, или просто ассемблером. Если входной язык является языком высокого уровня (например, Java или С), а выходной язык является либо числовым машинным языком, либо символическим представлением последнего, то транслятор называется компилятором. Понятие ассемблера Язык ассемблера — это язык, в котором каждый оператор соответствует ровно одной машинной команде. Иными словами, в программе, написанной на ассемблере, существует взаимно однозначное соответствие между машинными командами и операторами. Если каждая строка в ассемблерной программе содержит ровно один оператор, и каждое машинное слово содержит ровно одну команду, то из ассемблерной программы размером в п строк получится программа на машинном языке из п слов. Мы программируем на языке ассемблера, а не на машинном языке (в шестна-дцатеричной системе счисления), поскольку это гораздо проще. Использовать символические имена и адреса вместо двоичных и восьмеричных намного удобнее. Многие могут запомнить, что обозначениями для сложения (add), вычитания (subtract), умножения (multiply) и деления (divide) служат команды ADD, SUB, MUL и DIV, но мало кто сможет запомнить соответствующие числовые величины, которые использует для этих команд машина. Программисту, пишущему на языке ассемблера, нужно знать только символические названия, поскольку ассемблер транслирует их в машинные команды. Это утверждение касается и адресов. Программист, пишущий на языке ассемблера, может давать символические имена ячейкам памяти, и уже ассемблер должен позаботиться о том, чтобы получить из них правильные числовые значения. В то же время программисту, пишущему на машинном языке, всегда приходится работать с числовыми значениями адресов. Сейчас уже нет программистов, пишущих программы на машинном языке, хотя несколько десятилетий назад до изобретения ассемблеров программы именно так и писались. |