
Text IV
The Math Coprocessor The 8086, 80286, and 80386 can work only with integers. To perform floating-point computations on an 8086-family microprocessor, you must represent floating-point values in memory and manipulate them using only integer operations. During compilation, the language translator represents each floating-point computation as a long, slow series of integer operations. Thus, "number-crunching" programs can run very slowly — a problem if you have a large number of calculations to perform.
A good solution to this problem is to use a separate math coprocessor that performs floating-point calculations. Each of the 8086 family microprocessors has an accompanying math coprocessor: The 8087 math coprocessor is used with an 8086 or 8088; the 80287 math coprocessor is used with an 80286; and the 80387 math coprocessor is used with an 80386. (See Figure below.)
Each PC and PS/2 is built with an empty socket on its motherboard into which you can plug a math coprocessor chip.
From a programmer's point of view, the 8087, 80287, and 80387 math coprocessors are fundamentally the same: They all perform arithmetic with a higher degree of precision and with much greater speed than is usually achieved with integer software emulation. In particular, programs that use math coprocessors to perform trigonometric and logarithmic operations can run up to 10 times faster than their counter-parts that use integer emulation.
Programming these math coprocessors in assembly language can be an exacting process. Most programmers rely on high-level language translators or commercial subroutine libraries when they write programs to run with the math coprocessors. The techniques of programming the math coprocessors directly are too specialized to cover in this book.
Математический сопроцессор 8086, 80286 и 80386 могли работать только с целыми числами. Для выполнения вычислений с плавающей запятой в семье микропроцессоров на 8086 , вы должны исполнять вычисления с плавающей запятой в памяти и влиять на них с помощью целочисленных операций. Во время компиляции язык преобразования представляет каждое вычисление с плавающей запятой как долгая медленная серия целых операций. Таким образом “количество хрустов” программ можно очень медленно записывать — проблема если у вас есть большое количество расчетов для выполения. Хорошее решение этой проблемы это использование отдельного математического сопроцессора который выполняет вычисления с плавающей точкой. Каждый из семьи микропроцессоров 8086 имеет в сопровождении математический соцпроцессор: мат сопроцессор 8087 используется с 8086 или 8088; мат сопроцессор 80287 используется с 80286; и математический сопроцессор 80387 используется с 80386. (См. рисунок ниже)
Каждый PC и PS/2 при сборке имеет пустое гнездо на материнской плате в которое вы можете вставить математический сопроцессорный чип .
С точки зрения программиста, 8087, 80287, и 80387 математические сопроцессоры является в корне одинаковыми: Они все выполняют арифметические действия с высокой степенью точности и с гораздо большей скоростью, что достигается с целой программной эмуляцией.
Вован !
8088 является 16-битным микропроцессором, который управляется стандартными персональными компьютерами IBM, в том числе оригинальными PC, PC / XT, портативные ПК, и PCjr. Почти каждый бит данных, который входит или выходит в компьютер проходит через центральный процессор для обработки.
Внутри 8088, -14 регистров обеспечивают рабочие области для передачи и обработки данных. Эти внутренние регистры, образуя площадь 28 байт, в состоянии временного хранения данных, адресов памяти, обучения указатели и контроля и управления с флагами. С помощью этих регистров, 1 8088, может получить доступ к 1 МБ (мегабайт), или более чем к одному миллиону байт, памяти.
8086 используется в PS / 2 моделях 25 и 30 (а также во многих IBM PC, клоны). 8086 отличается от 8088 лишь одной незначительной частью: он использует полную 16-разрядную шину данных, а не 8-битную шину, как использует 8088. (Расхождения между 8-битными и 16-разрядными шинами, обсуждается ниже.) Практически все, что вы читали о 8086 также относится к 8088, а для целей программирования, рассмотрим шип идентичный.
80286 используется в PC / AT и PS / 2 моделях 50 и 60. Хотя и он полностью совместим с 8086, 80286 поддерживает дополнительные функции программирования, которые позволяют выполнять программы гораздо быстрее, чем 8086. Наиболее важным усовершенствованием 80286 является поддержка многозадачности.
Многозадачность является способность процессора выполнять разрывать задачи на время - например, печать документа и расчета таблиц - за счет быстрого переключения внимания среди управляющих программ.
8088, используемые в ПК или PC / XT и поддерживает многозадачность с помощью сложного программного обеспечения управления.
Тем не менее, 80286 может выполнять задачи гораздо лучше с помощью многозадачности, поскольку он осуществляет программы быстрее и адресов памяти гораздо больше, чем 8088. Кроме того, 80286 был разработан для предотвращения задания конфликта между друг другом.
80286 может работать в двух режимах: режиме реального или защищенном режиме. В реальном режиме 80286 программируется так же, как 8086. Он может обращаться к одному 1 Мб диапазону адресов памяти, как 8086. В защищенном режиме, 80286 зарезервировано заранее определенное количество памяти для выполнения программы, предотвращая, использования памяти какой-либо другой программы. Это означает, что несколько программ могут выполняться одновременно, без риска изменения одной программы другой ¬ палатки области памяти другой программы. Операционные системы с помощью 80 286 защищенного режим могут выделить память из нескольких различных задач гораздо более эффективно, чем может 8086 на основе операционной системы.
PS / 2 модель 80 использует 80386, быстрее, мощнее, чем микропроцессор 80286. 80386 обладает теми же основными функциями, 8086 и предлагает тот же защищенный режим управления памятью, как 80286.
Тем не менее, 80386 имеет два важных преимущества по сравнению с его предшественниками:
80386 представляет собой 32-разрядный микропроцессор с 32-битными рег ¬ isters. Он может выполнять вычисления и адреса памяти 32 бит за один раз вместо 16 бит за один раз.
80386 предлагает более гибкое управление памятью, чем 80286 и 8086.