ВНУТРЕННИЕ РЕГИСТРЫ

воскресенье, 31 января 2010 г. Автор: Vadim 0 коммент.

На рис. 1.2 пока­заны три группы регистров данных, и адресов, 16-битовый указатель команд IP (Instruction Pointer) и 16-битовый регистр флагов.

clip_image002[4]

РЕГИСТРЫ ДАННЫХ

В зависимости от того, чем Вы оперируете: 16-битовыми словами или 8-битовыми байтами, регистры данных можно рассматривать как четыре 16-бито­вых или восемь 8-битовых регистров. В первом случае регистры имеют имена АХ, ВХ, СХ, DX. Эти регистры образованы из 8-битовых регистров AL, АН, BL, ВН, CL, СН, DL и DH. Здесь L и Н означают младшие (low-order) и старшие (high-order) байты 16-битовых регистров. Например, регистры AL и АН образуют соответственно младший и старший байты регистра АХ.

Всеми этими регистрами можно пользоваться при программировании, но сле­дует учитывать, что ряд команд использует их неявным образом, в частности

регистр АХ, аккумулятор (accumulator), используется при умножении и делении слов, в операциях ввода-вывода и в некоторых операциях над строками; регистр AL используется при выполнении аналогичных операций над байтами, а также при преобразовании-десятичных чисел и выполнении над ними арифмети­ческих операций;

регистр АН используется при умножении и делении байтов;

регистр ВХ, Базовый регистр (base register), часто используется при адресации данных в памяти;

регистр СХ, счетчик (count register), используется как счетчик числа повторений цикла и в качестве номера позиции элемента данных при операциях над строка­ми. Регистр CL используется как счетчик при операциях сдвига и циклического сдвига на несколько битов;

регистр DX, регистр данных (data register), используется при умножении и деле­нии слов. Кроме того, в операциях ввода-вывода он используется как номер порта.

Программисты, имеющие опыт работы с микропроцессорами 8080 и 8085, должны заметить, что АН - единственный регистр микропроцессора 8088, не имеющий ана­лога в этих микропроцессорах. Остальные регистры использовались в них под другими именами; так, в микропроцессоре 8080 регистру AL соответствует регистр А, а регистрам ВХ, СХ и DX соответствуют регистры HL, ВС и DE.

Только регистры данных могут использоваться и как 16-битовые, и как 8-бито­вые. Все регистры остальных групп - 16-битовые.

РЕГИСТРЫ СЕГМЕНТОВ

Ранее уже говорилось, что в ЭВМ, сконструированных на базе мик­ропроцессоров 8086 и 8088, программы и данные хранятся в отдельных областях памяти. Эти области (или сегменты) могут иметь объем до 64 Кбайт. Микропроцес­сор 8088 может иметь дело одновременно с четырьмя сегментами. Начальные адре­са этих сегментов содержатся в его четырех регистрах сегментов. Эти регистры выполняют следующие функции:

регистр сегмента команд CS (code segment) указывает на сегмент, содержащий текущую исполняемую программу. Для вычисления адреса следующей исполня­емой команды микропроцессор 8088 добавляет к содержимому регистра CS (умноженному на 16) содержимое указателя команд IP;

регистр сегмента стека SS (stack segment) указывает на текущий сегмент стека. Стек представляет собой область памяти, используемую для временного хра­нения данных и адресов. Микропроцессор 8088 использует стек для хранения адреса возврата из текущей подпрограммы, но стек можно использовать также для восстановления содержимого регистров, изменяемых при работе програм­мы. Позже мы рассмотрим стеки более подробно;

регистр сегмента данных DS (data segment) указывает на текущий сегмент дан­ных, обычно содержащий используемые в программе переменные; регистр дополнительного сегмента ES (extra segment) указывает на текущий дополнительный сегмент, который используется при выполнении операций над строками.

РЕГИСТРЫ УКАЗАТЕЛЕЙ И ИНДЕКСОВ

Вспомните, что для вычисления адреса команды в сегменте команд микропроцессор 8088 извлекает номер блока памяти из регистра CS, а смеще­ние- из регистра IP. Подобным образом за счет выбора номера блока из соответ­ствующего регистра сегмента, а смещения - из другого регистра осуществляется доступ к данным других сегментов. Для доступа к сегменту данных микропроцес­сор 8088 извлекает номер блока из регистра DS, а смещение - из регистра ВХ или индексного регистра (SI или DI). Для доступа к сегменту стека микропроцессор 8088 извлекает номер блока из регистра SS, а смещение - из регистра указателя (SP или BP). Выбирая номер блока из регистра ES, микропроцессор может также полу­чить доступ к дополнительному сегменту (подробнее об этом см. в гл. 2).

УКАЗАТЕЛЬ КОМАНД

Большинство микропроцессоров выполняют программу следующим образом: извлекают из памяти очередную команду, исполняют ее, затем извлекают следующую команду и т. д. Этот подход (при котором цепочка действий выполня­ется последовательно), естественно, приводит к простоям, так как микропроцес­сор должен перед исполнением команды подождать ее извлечения из памяти. В микропроцессоре 8088 большая часть этих простоев исключается за счет того, что эти две задачи - извлечение команды и ее исполнение - выполняются отдельны­ми специализированными компонентами микросхемы.

Одна из них, интерфейс шины (Bus Interface Unit), извлекает команды из памяти и осуществляет передачу данных между исполнительными компонентами и "внеш­ним миром". Другая компонента, операционный блок (Execution Unit), только исполняет команды. Так как эти компоненты независимы, то интерфейс шины может извлекать новую команду из памяти в то самое время, когда операционный блок исполняет ранее извлеченную команду.

Как только интерфейс шины извлекает команду, он передает ее на конвейер микропроцессора (электронный эквивалент автомата для продажи сигарет). Таким образом, когда операционный блок заканчивает исполнение команды программы, то обычно может "взять" следующую команду прямо с конвейера.

clip_image002

Так как интерфейс шины не знает порядка исполнения команд программы, то он всегда извлекает команды с последовательно возрастающими адресами. Поэто­му операционному блоку приходится ждать извлечения команды из памяти толь­ко в тех случаях, когда в программе управление передается не следующей коман­де, а какой-то другой. Тогда операционный блок ожидает, пока интерфейс шины не освободит конвейер и не извлечет требуемую команду. Тогда и только тогда микропроцессор 8088 ждет подобно многим другим микропроцессорам извлечения каждой команды. На рис. 1.3 показано параллельное извлечение и исполнение команд в микропроцессоре 8088.

Так как микропроцессор 8088 работает столь необычным образом, то специалис­ты фирмы Intel подчеркнули отличие своего регистра "следующего исполняемого адреса" от регистров "следующего извлекаемого адреса" других производителей микропроцессоров, назвав его указателем команд (IP - instruction pointer) вместо обычного счетчика команд (PC - program counter). Так как регистр IP имеет столь специфическое назначение, то Вы не можете выполнять арифметические операции над его содержимым. Однако микропроцессор 8088 имеет команды, одни из кото­рых изменяют содержимое регистра IP, а другие помещают его в стек и извлекают обратно.

ФЛАГИ

В программе нередко требуется принять решение на основании резуль­тата только что исполненной микропроцессором 8088 команды. Например Вам может понадобиться выполнить одни действия, если результат сложения оказался нулем (например, напечатать. "Баланс равен нулю!" в программе для бухгалтер­ских расчетов), и совсем другие действия в противном случае.

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

На рис. 1.4 показано, как эти девять- флагов размещены в регистре флагов. Флаги имеют следующие значения:

[.Бит 0, флаг переноса CF(carry flag), равен 1, если произошел перенос единицы при сложении или заем единицы при вычитании. В противном случае он равен нулю. Кроме того, CF содержит значение бита, который при сдвиге или цикли­ческом сдвиге регистра или ячейки памяти вышел за их границы, и отражает результат операции сравнения. Наконец, CF служит индикатором результата умножения; детали см. в описании бита 11 (OF).

2.Бит 2,флаг четности PF(parity flag), равен 1, если в результате операции полу­чено число с четным числом единиц в его битах. В противном случае он равен нулю. ФлагРГ в основном используется в операциях обмена данными.

3. Бит 4, вспомогательный флаг переноса AF (auxiliary carry flag), аналогичен флагу CF, только контролирует перенос или заем для третьего бита данных. Полезен при выполнении операций над упакованными десятичными числами.

4. Бит 6, флаг нуля ZF(zero flag),равен 1, если в результате операции получен нудь; ненулевой результат c6pacbiBaerZF в нуль.

5. Бит 7, флаг знака SF (sign flag), имеет значение только при операциях над числами со знаком. Флаг SF равен 1, если в результате арифметической или логической операции, сдвига или циклического сдвига получено отрицательное число. В противном случае он равен нулю. Иными словами, SF дублирует стар­ший (знаковый) бит результата независимо от того, имеет результат длину 8 или 16 битов.

6. Бит 8, флаг трассировки TF (trap flag), разрешает микропроцессору 8088 испол­нять програму "по шагам" и используется при отладке программ.

7. Бит 9, флаг прерывания IF (interrupt enable flag), разрешает микропроцессору 8088 реагировать на прерывания от внешних устройств. Сбрасывание IF в нуль заставляет микропроцессор 8088 игнорировать прерывания до тех пор, пока F не станет равным 1.

8. Бит 10, флаг направления DF (direction flag), заставляет микропроцессор 8088 уменьшать на единицу (DF = 1) или увеличивать на'единицу(ВР = 0) регистр(ы) индекса после выполнения команды для работы со строками. Если DF = 0, то микропроцессор 8088 будет обрабатывать строку "слева направо" (от младших адресов к старшим). Если DF = 1, то обработка пойдет в обратном направлении (от старших адресов к младшим или справа налево).

9. Бит И, флаг переполнения OF (overflow flag), в первую очередь служит инди­катором ошибки при выполнении операций над числами со знаком. Флаг OF равен 1, если результат сложения двух чисел с одинаковым знаком или резуль­тат вычитания двух чисел с противоположными знаками выйдет за пределы допустимого диапазона значений операндов. В противном случае он равен 0. Кроме того, OF = 1, если старший, (знаковый) бит операнда изменился в резуль­тате операции арифметического сдвига. В противном случае он равен 0.

В сочетании с флагом CF флаг OF указывает длину результата умножения. Если старшая половина произведения отлична от нуля, то OF hCF равны 1; в противном случае оба эти флага равны 0.

Наконец,OF = 0, если частное от деления двух чисел переполняет результирую­щий регистр.

clip_image004

На рис. 1.4 заштрихованы позиции неиспользуемых битов (1, .3, 5 и 12 - 15). Когда бы Вы ни прочитали значение регистра флагов, эти биты будут нулевыми.

Не делайте ошибок, рассчитывая, что в кождый момент времени флаги должны быть в определенном состоянии. У микропроцессора 8088 имеются команды для установки или сброса флагов. Если состояние флагов может быть неоднозначным, используйте эти команды.

У микропроцессора 8088 есть команды условной передачи управления, которые проверяют состояния флагов переноса CF, четности PF, нуля ZF, знака SF и переполнения OF. В зависимости от результата проверки выполнение программы продолжается либо со следующей команды, либо с некоторой другой ячейки памяти.

ОБЩИЕ СВЕДЕНИЯ О МИКРОПРОЦЕССОРЕ 8088

Автор: Vadim 0 коммент.

Внутри микропроцессора 8088 информация содержится в группе 16-битовых элементов, называемых регистрами. Всего он имеет 14 регистров: 12 регистров данных и адресов и в дополнение к ним указатель команд (регистр адре­са команд) и регистр состояния (регистр флагов). Можно подразделить 12 регистров данных и адресов на три группы по четыре регистра, а именно на регистры данных, регистры указателей и индексов и регистры сегментов.

АДРЕСАЦИЯ

Так как у микропроцессора 8088 указатель команд и адресные ре­гистры имеют по 16 битов, то можно подумать, что он способен адресоваться к памяти объемом не более 64 байт (65 536 байт), т. е. имеет стандартный для 8-бито-' вых микропроцессоров диапазон адресов. Однако на самом деле микропроцессор 8088 всегда генерирует 20-битовые адреса. Он делает это за счет добавления 16-би­тового смещения к содержимому регистра сегмента, умноженному на 16. Таким образом,

физический адрес = смещение + 16 • (регистр сегмента).

В действительности микропроцессор 8088 вместо умножения на 16 использует содержимое регистра сегмента так, как если бы оно имело четыре дополнительных нулевых-бита (рис. 1. 1). Добавление нулей аналогично умножению, поскольку при каждом сдвиге на одну позицию влево двоичное число удваивается. Следователь­но, перемещение значения регистра сегмента на четыре позиции влево умножает его на 16:2 • 2 • 2 • 2 = 16.

Например, если смещение адреса имеет значение ЮН, где суффикс Н обозначает шестнадцатеричное число, а регистр сегмента содержит 2000Н, то микропроцессор 808С произведет вычисление физического адреса следующим образом (операнды показаны в двоичном виде):

0000 0000 0001 0000 (смещение) + 0010 0000 0000 0000 0000 (номер блока) 0010 0000 0000 0001 0000 (физический адрес).

Следовательно, мы получим 20-битовый адрес ячейки памяти 200ЮН.

Имея в своем распоряжении 20-битовый адрес, микропроцессор 8088 может получить доступ к любому из 1 048 576 байт. .(Данное значение называется "мега­байт" (Мбайт); 1 Мбайт = 1024 Кбайт.) Это в 16 раз превышает диапазон адресов микропроцессора 8088!

15 О

Смещение

clip_image002[4]

СЕГМЕНТЫ И СМЕЩЕНИЯ

У большинства микропроцессоров адрес ячейки памяти представляет собой одно число. А у микропроцессора 8088 адрес каждой ячейки памяти задается двумя числами: номером блока и смещением. Такой странный метод адресации обусловлен тем, что команды программы для микропроцессора 8088 и ее данные должны располагаться в разных частях памяти, другими словами, в разных сег­ментах. Если, например, Вам требуется адресоваться к ячейке с данными, то микропроцессору 8088 понадобится адрес блока памяти, с которого начинается сегмент данных (из регистра сегмента данных), и позиция желаемой ячейки в этом сегменте (ее смещение). Вспомните, как ищут в городе чей-нибудь дом: сначала находят улицу (считайте ее сегментом), а затем дом с нужным номером (смеще­нием) на этой улице.

К счастью, Вам достаточно задавать только смещение, а номер блока микропро­цессор 8088 выберет сам. Несколько позже мы обсудим это обстоятельство более детально.

ВОЗМОЖНОСТИ ПРОГРАММИРОВАНИЯ

Микропроцессор 8088 обладает впечатляющими возможностями прог­раммирования. Они пришлись особенно по душе тем программистам, которым ранее приходилось "бороться" с 8-битовыми микропроцессорами. Действительно, микропроцессор 8088 может выполнять арифметические операции над двоичными числами со знаком и без знака, длиной в 8 или 16 битов, а также над десятичными числами, хранящимися как в упакованном (по две цифры в байте), так и в неупа­кованном (по одной цифре в байте) виде. Он может также оперировать строками (например, сообщениями) длиной до 64 Кбайт.

Система команд микропроцессора 8088 содержит 92 основных типа команд и предусматривает семь различных способов адресации или режимов доступа к данным. Комбинации типов команд, режимов адресации (имеющие множество комбинаций операндов) и различных типов данных, которые мы только что упоми­нали, образуют тысячи команд, которые могут быть выполнены микропроцессором 8088. Действительно, сочетание всех этих свойств позволяет микропроцессору 8088 обеспечивать вдвое большую производительность по сравнению с 8085, если оба они работают с одинаковой скоростью.

МЕРА СКОРОСТИ

Как и электронные часы, микропроцессоры управляются кварцевым генератором. Кварцевый генератор испускает импульсы со стабильной фиксиро­ванной частотой, задающей скорость работы микропроцессора. В персональных ЭВМ PC и PC/XT кварцевый генератор испускает 4 770 000 импульсов в секунду.

Специалисты по вычислительной технике пользуются другой единицей измере­ния: числом колебаний в секунду, или герцами. Импульсы в секунду, колебания в секунду и герцы означают одно и то же, но в этой книге мы будем использовать термин "герц". Таким образом, персональная ЭВМ PC имеет тактовый генератор с частотой 4 770 000 Гц (4,77 МГц).

При частоте 4,77 МГц (4 770 000 колебаний в секунду) тактовый генератор персональной ЭВМ PC "тикает" каждые 210 не. Мы будем называть это значение циклом тактового генератора ЭВМ.

Самая быстрая команда (например, копирование содержимого одного регистра в другой регистр) выполняется за два цикла, или за 420 не. Самая медленная команда, деление двух 16-битовых чисел со знаком, выполняется за 206 циклов тактового генератора, или примерно за 43 мкс. Как видите, даже самая медленная команда выполняется всего за 0, 000043 с!

ОБЛАСТЬ ПОРТОВ ВВОДА-ВЫВОДА

В дополнение к области памяти объемом в 1 Мбайт микропроцессор 8088 может адресоваться к внешним устройствам через 65 536 (64 К) портов вво­да-вывода. Он имеет специальные команды ввода-вывода, которые позволяют Вам иметь непосредственный доступ к первым 256 портам (от 0 до 255). Другие команды позволяют Вам получить косвенный доступ к порту с помощью занесения идентифицирующего его номера (от 0 до 65 535) в регистр данных. Подобно ячей­кам памяти любой порт может быть 8- или 16-битовым.

РАСПРЕДЕЛЕНИЕ ПАМЯТИ

Большая часть адресного пространства в 1 Мбайт доступна для систем­ных и прикладных программ, но некоторые ячейки с самыми старшими и самыми младшими адресами используются микропроцессором 8088 для специальных целей. Шестнадцать старших байтов памяти отводятся под команды начальной загрузки системы, которые используются микропроцессором 8088 в момент вклю­чения питания. Первые 1024 ячейки отведены под адреса программ, которые исполняются микропроцессором 8088 при прерывании его работы внешним устрой­ством.

ПРЕРЫВАНИЯ

Время от времени всем нам приходится сталкиваться с прерываниями. Одни прерывания нам приятны, другие неприятны, третьи безразличны. При жела­нии Вы можете игнорировать некоторые прерывания, не обращая внимания, ска­жем, на телефонный или дверной звонок или на ребенка, дергающего Вас за рукав. (Да нет, игнорировать ребенка практически невозможно!) На прерывания других видов Вы просто обязаны реагировать; например, если Вы прокололи шину на железнодорожном переезде, то должны немедленно что-то предпринять.

Прерывания по сути являются требованиями к Вам обратить на них внимание. Аналогично периферийные устройства вычислительной системы могут потребо­вать, чтобы процессор "обратил на них внимание". Поэтому событие, которое заставляет процессор приостановить выполнение своей программы для выполне­ния некоторой затребованной деятельности, называется прерыванием.

Прерывания существенно увеличивают эффективность вычислительной систе­мы, поскольку они позволяют внешним устройствам "обращать на себя внимание" процессора только по мере надобности. Если бы в системе не было прерываний, тс процессору пришлось бы периодически проверять, не требует ли обслуживания какое-нибудь устройство системы. Это похоже на телефон без звонка: пользуясь им, Вам приходилось бы очень часто снимать трубку и проверять, не пытается ли кто-нибудь в Вами соединиться?

ТИПЫ ПРЕРЫВАНИЙ

Микропроцессор 8088 может обрабатывать прерывания двух видов: одни он может игнорировать, а другие обязан обслужить как можно скорее. Преры­вания могут быть инициированы внешними устройствами, например дисководами и. другими высокоскоростными периферийными устройствами; они могут быть также инициированы специальными командами или, в определенных ситуациях, самим микропроцессором 8088.

Микропроцессор 8088 может распознать 256 различных прерываний. Каждому из них однозначно соответствует код типа, по которому микропроцессор иденти­фицирует прерывание. Он использует этот код (целое число от 0 до 255) в качестве указателя ячейки, находящейся в области памяти с младшими адресами. Эта ячейка содержит адрес программы обработки данного прерывания, называемый вектором прерывания.

Некоторые из этих 256 прерываний используются системным программным обеспечением, поставляемым фирмой IBM к своим персональным ЭВМ IBM PC, а именно резидентной частью операционной системы (называемой BIOS), дисковой операционной системой DOS и интерпретатором языка Бейсик. Остальные прерыва­ния можно использовать по своему усмотрению. Более детально прерывания обсуждаются в гл. 6.

АДРЕСНАЯ ШИНА И ШИНА ДАННЫХ

Микропроцессор 8088 выполнен в виде интегральной микросхемы с 40 выводами, 20 из которых служат для вывода адресов ячеек памяти и образуют так называемую адресную шину. Первые 8 проводников адресной шины используются также для ввода данных в микропроцессор и вывода данных из него; они образуют 8-битовую шину данных микропроцессора 8088. Такое совмещение называется мультиплексированием шины данных и адресной шины. (Старшие четыре проводника адресной шины также мультиплексированы: по ним в микропроцессор поступает информация о состоянии операций с памятью и устройствами ввода-вы­вода.)

ПРОИСХОЖДЕНИЕ МИКРОПРОЦЕССОРА 8088

Автор: Vadim 0 коммент.

clip_image001

Первые микропроцессоры были 4-битовыми устройствами. Это озна­чает, что за один прием они могли обрабатывать только четыре бита информации. Для обработки более четырех битов они должны были выполнить несколько после­довательных операций. Конечно, это замедляло работу.

Первым промышленным 8-битовым микропроцессором (обрабатывавшим одно­временно 8 битов информации) стал микропроцессор 8008, выпущенный фирмой Intel в 1972 году. Он считается лучшим 8-битовым микропроцессором первого поко­ления. По своей архитектуре этот микропроцессор похож на калькулятор; он имеет аккумулятор, шесть регистров общего назначения, указатель стека (специальный регистр адреса рабочих ячеек), восемь регистров адреса и специальные команды для ввода и вывода данных. В 1973 году фирма Intel выпустила версию второго поколения-микропроцессора 8008, получившую название 8080.

По сравнению с микропроцессором 8008 микропроцессор 8080 мог адресоваться к большей памяти, имел расширенные возможности ввода-вывода, обладал допол­нительными командами и работал быстрее. Хотя идеи архитектуры микропроцес­сора 8008 были в основном перенесены фирмой Intel и на микропроцессор 8080, его внутренняя организация была улучшена настолько, что микропроцессор 8080 стал стандартом de facto для микропроцессоров второго поколения; и когда речь заходит о микропроцессорах, то многим людям первым делом приходит на ум именно микропроцессор 8080.

Достижения технологии позволили фирме Intel в 1976 году выпустить усовер­шенствованную версию микропроцессора 8080, названную 8085. Он отличался от микропроцессора 8080 конструкцией корпуса, имел сброс в начальное состояние (для инициализации микропроцессора), прерывания по вектору (для обслужива­ния периферийных устройств), последовательный порт ввода-вывода (для подклю­чения принтеров и других периферийных устройств). Кроме того, ему требовался только один источник питания +5 В (микропроцессору 8080 требовалось два источ­ника питания).

Ко времени выпуска микропроцессора 8085 фирма Intel встретилась с серьезной конкуренцией на рынке 8-битовых микропроцессоров. Начали пользоваться успехом микропроцессор Z80 фирмы Zilog Corporation, представляющий собой усовершенствование микропроцессора 8080, а также микропроцессоры 6800 фирмы Motorola и 6502 фирмы MOS Technology (ныне фирма Commodore), существенно отличавшиеся от 8080 по своей архитектуре. И вместо того, чтобы продолжать борьбу на переполненном рынке 8-битовых микропроцессоров, фирма Intel сделала качественный шаг вперед и в 1978 году выпустила 16-битовый микропроцессор 8086, который мог обрабатывать данные в 10 раз быстрее, чем микропроцессор 8080.

Микропроцессор 8086 программно совместим с микропроцессором 8080 на уров­не языка ассемблера. Это означает, что после некоторых минимальных преобразо­ваний программы, написанные для микропроцессора 8080, можно заново оттранс­лировать и выполнить на микропроцессоре 8086. Такая совместимость обеспечива­ется за счет того, что регистры микропроцессора 8080 и набор его команд являются как бы подмножествами регистров и набора команд микропроцессора 8086. Это позволило фирме Intel воспользоваться богатым опытом применения микропро­цессора 8080 и получить преимущество в сфере более сложных приложений.

Так как многие проектировщики все еще предпочитали пользоваться в своих 16-битовых системах более дешевыми 8-битовыми вспомогательными и перифе­рийными микросхемами, то фирма Intel выпустила версию микропроцессора 8086, имевшую то же устройство внутри, но 8-битовую Шину данных снаружи. Эта версия (микропроцессор 8088) идентична 8086, но затрачивает больше времени на переда­чи 16-битовых данных, которые выполняются с помощью двух последовательных 8-битовых передач. Однако в приложениях, где обрабатываются в основном 8-бито­вые значения, микропроцессор 8088 отстает по производительности от микропро* цессора 8086 не более чем на 10%.

Таким образом, Вы можете считать, что Ваша персональная ЭВМ фирмы IBM имеет 16-битовый микропроцессор. (И, следовательно, можете пользоваться много­численной литературой по микропроцессору 8086.) Завершим на этом введение и перейдем к обсуждению возможностей микропроцессора 8088.

Ярлыки:

ЧТО ТАКОЕ ЯЗЫК АССЕМБЛЕРА?

Автор: Vadim 0 коммент.

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

Программы, написанные на языке ассемблера, дают ЭВМ более детальные ко­манды, например "загрузить в регистр АХ значение 32", "поместить в регистр DL содержимое регистра CL", "запомнить содержимое регистра DL в ячейке памяти с адресом 3456". Как видите, язык Бейсик и язык ассемблера различаются способом задания действий ЭВМ: на Бейсике Вы даете общие указания, на языке ассемблера - конкретные.

Хотя программы на языке ассемблера пишутся дольше, чем аналогичные прог­раммы на Бейсике, они гораздо быстрее выполняются. Причиной этому служит уровень детализации команд. Здесь уместна аналогия с атлетом, который дости­гает лучших успехов в беге или прыжках за счет контроля каждого своего движе­ния. Для достижения большей производительности существенна точность выпол­няемых действий.

Так как язык ассемблера требует от Вас задания действий на уровне внутрен­них компонентов ЭВМ, то Вам надо понимать свойства и возможности интеграль­ной микросхемы, содержащей эти компоненты, а именно микропроцессора ЭВМ. В этой книге мы будем иметь дело с микропроцессором Intel 8088, работающим в персональных ЭВМ IBM PC/XT. Прежде чем описывать устройство этого микропро­цессора, коснемся истории его появления на свет.