Пример: Глобальная сеть INTERNET
Я ищу:
На главную  |  Добавить в избранное  

Главная/

Программирование, базы данных. /

Аналитический обзор книги "Программирование на языке ассемблера..."

Документ 1 | Документ 2 | Документ 3 | Документ 4 | Документ 5

←предыдущая  следующая→
1 2 3 

ВВЕДЕНИЕ

Интенсивное развитие микроэлектроники и повышения степени интеграции открыли новое направление в ВТ - создание микропроцессоров и микрокомпьютеров. Появились вы числительные системы с малым уровнем потребления энергии и универсальными возможностями, которые позволяют решать задачи управления объектами различной физической природы. На основе их применения снижаются затраты на автоматизацию основных технических и вспомогательных процессов. В результате будет решена задача комплексной автоматизации производства во всех отраслях. Это позволит увеличить производительность труда, уменьшить себестоимость выпускаемой продукции и значительно сократить ручные операции в промышленности. Однако для широкого развития работ в данном направлении необходимо готовить значительное число инженеров - системотехников, умеющих создавать и применять микропроцессоры и микрокомпьютеры. Кроме того, следует выпускать и много инженеров - математиков, разрабатывающих соответствующее программное обеспечение. Для их обучения  необходимо иметь учебные пособия, посвященные аппаратным и программным средствам современной вычислительной техники.

Несмотря на то что выпущено значительное количество литературы, посвященной разработке и применению микропроцессоров и микрокомпьютеров, а также описание программных средств, предлагаемая книга представляет определенный интерес комплексным подходом и методической целостностью.


На обзор представлена книга американских авторов Левенталя Л. и Сэйвилла У. "Программирование на языке ассемблер для микропроцессоров  8080 и 8085". Книга переведена с английского, напечатана в 1987г. в издательстве Радио и связь. Издание включает в себя 488 страниц.

Для начала рассмотрим содержание этой книги чтобы сделать окончательный анализ по ее достоинствам и недостаткам, а также конкретизировать к какой группе эта книга предназначена. На обзор кратко будут представлены части этой книги, затем остановим свое внимание на определенной главе.

Книга состоит из двух частей: обзора вопросов программирования на языке ассемблера и набора подпрограмм. Первая часть хорошо проиллюстрирована большим числом примеров, позволяющих быстро усвоить основные навыки программирования для рассматриваемых микропроцессоров. Подпрограммы, приведенные во второй части книги, могут удовлетворять потребности большинства программистов в стандартных процедурах.

Эта книга, можно сказать, является как бы справочным пособием для программистов, работающих на языке ассемблера. Она содержит краткий обзор вопросов программирования на языке ассемблера для конкретного микропроцессора и набор полезных подпрограмм. В этих подпрограммах использовались стандартные соглашения по формату, документированному оформлению и методам передачи параметров. При этом соблюдались правила наиболее распространенных  ассемблеров; кроме того, описаны назначение, процедура, параметры, результаты, время выполнения и требования к памяти.

ГЛАВА 1. ОБЩИЕ МЕТОДЫ ПРОГРАММИРОВАНИЯ

Служит введением в программирование для данного процессора; в ней приводятся основные отличия этого процессора от других микропроцессоров и мини-ЭВМ. В этой главе описываются общие методы написания программ на языке ассемблера для микропроцессора 8080 и 8085. Она содержит способы выполнения следующих операций:

· загрузка и сохранение регистров;

· запоминание данных в памяти;

· арифметические и логические операции;

· работа с разрядами;

· проверка разрядов;

· проверка на определенные значения;

· числовые сравнения;

· организация циклов (повторяющихся последовательностей операций);

· обработка массивов;

· поиск в таблице;

· работа с символами;

· преобразование кодов;

· арифметические операции повышенной точности;

· умножение и деление;

· обработка списков;

· обработка структур данных.

В отдельных разделах описываются передача параметров подпрограммам, общие методы написания драйверов ввода-вывода и программ обработки прерываний, а также приемы, позволяющие ускорить выполнение программ и уменьшить используемую ими память.

Для тех, кто знаком с программированием на языке ассемблера на других вычислительных машинах, здесь дается краткий обзор особенностей процессоров 8080 и 8085.

Арифметические и логические операции разрешены только между аккумулятором и байтом непосредственных данных или между аккумулятором и регистром общего назначения. Однако один регистр общего назначения в действительности указывает на адрес в памяти; это регистр М, который в действительности обращается к адресу в памяти, содержащемуся в регистрах Н и L. Таким образом, команда ADD M, например, означает: прибавить к аккумулятору содержимое байта памяти, адресуемого через регистры H и L.

Аккумулятор и регистры Н и L являются специальными регистрами. Они являются единственными регистрами , которые могут быть прямо загружены или записаны в память. Аккумулятор является единственным регистром, который может быть инвертирован, сдвинут, косвенно загружен с использованием адреса в паре регистров В или D, косвенно записан в память по адресу, содержащемуся в паре регистров В или D, или использован в командах IN и ОUT. Регистры Н и L составляют единственную пару, которая может быть использована косвенно в арифметических командах, при записи в память данных, заданных непосредственно в команде, или при загрузке и записи в память других регистров, отличных от аккумулятора. Регистры Н и L  являются также единственной парой, которая может быть передана в счетчик команд или указатель стека. Более того, эти регистры используются как аккумулятор двойной длины при сложении 16-разрядных чисел (команда DAD). Регистры D и Е являются в некотором смысле также специальными, поскольку одной командой (XCHG) можно поменять их содержимое с содержимым регистров Н и L. Таким образом, регистры в 8080 и 8085 весьма асимметричны, и  программист должен аккуратно выбирать, для каких данных и адресов какими регистрами пользоваться.

Часто для одних и тех же физических регистров используются несколько имен. Для многих команд A,B,C,D,E,H и L являются 8-разрядными регистрами. Для других команд регистры В и С (В- старший по значению), D и Е (D- старший по значению) или Н и L (Н- старший по значению) являются 16-разрядной парой регистров. Термины пара регистров В, регистры В и С и пара регистров ВС имеют одно и тоже значение; подобные же варианты существуют для регистров D и Е и H и L. Заметим, что пара регистров и два одиночных регистра физически одно и то же, и они не могут служить одновременно для различных целей. Регистры Н и L  фактически почти всегда применяют для косвенного адреса из-за наличия команд, имеющих доступ к регистру М, и таких специальных команд, как SPHL, PCHL, XTHL и XTHG. Благодаря тому, что существует команда XCHG, для второго адреса берут регистры D и Е , а не В и С. Регистры В и С используют обычно как отдельные 8-разрядные регистры для временного хранения данных.

Воздействие различных команд на флаги весьма непоследовательно. К некоторым особенно необычным действиям относятся следующие:

a)   логические команды очищают флаг переноса;

b)  команды сдвига не действуют на другие флаги, кроме флага переноса;

c)   команды загрузки, записи, пересылки, увеличивают на 1 пары регистров и уменьшают на 1 пары регистров вообще не оказывают влияния на флаги;

d)  16-разрядное сложение действует только на флаг переноса.

5.  Отсутствует косвенная адресация через память и индексация. Отсутствие косвенной адресации через память компенсируется загрузкой косвенного адреса в регистры Н и L. Действительная косвенная адресация, таким образом,

←предыдущая  следующая→
1 2 3 


Copyright © 2005—2007 «RefStore.Ru»