Р- Форматы арифметических данных Р Арифметические операции над двоичными числами Арифметические операции над десятичными (BCD) числами Одной из причин, постоянно заставляющих человека совершенствовать средства для выполнения вычислений, — желание эффективно, быстро и без ошибок ре- шать различные счетные задачи. Для начала мечтой людей была автоматизация выполнения простейших арифметических действий. Первая реализованная попыт- ка — начало XVII в., 1623 г. Ученый В. Шикард создает машину, умеющую скла- дывать и вычитать числа. Знаменитый французский ученый и философ Блез Пас- каль в 1642 г. изобрел первый арифмометр, основным элементом в котором было зубчатое колесо. Изобретение этого колеса уже само по себе было ключевым собы- тием в истории вычислительной техники, подобно лампам и транзисторам в наше время. Правнуки этого колеса еще совсем недавно, каких-нибудь два-три десятка лет назад, использовались в арифмометрах (соответствующая модель была созда- на в 1842 г.) на столах советских бухгалтеров. Тот, кому довелось поработать на этих арифмометрах, вряд ли вспомнят о высокой эффективности вычислительно- го процесса — слишком велика была зависимость от человеческого фактора. Сни- зить эту зависимость удалось лишь в середине прошлого века, когда появились первые ЭВМ на лампах, потом на транзисторах и, наконец, на микросхемах раз- личной интеграции. Таким образом, путь к эффективному автоматизированному решению для проведения расчетов растянулся почти на три столетия. Тем не ме- нее, именно благодаря стремлению разгрузить голову от рутины человек имеет сегодня определенные достижения в области компьютерной техники. Любой компьютер, от самого примитивного до супермощного, имеет в своей системе команд команды для выполнения арифметических действий. Работая с компьютером при помощи языков высокого уровня, мы воспринимаем возмож- ность проведения расчетных действий как нечто должное, забывая при этом, что компилятор даже очень развитого языка программирования превращает все са- мые высокоуровневые действия в унылую последовательность машинных команд. Конечно, мало кому придет в голову писать серьезную расчетную задачу на ассем- блере. Но даже в системных программах часто требуется проведение небольших вычислений. Поэтому важно разобраться с этой группой команд. К тому же она, на удивление, очень компактна и не избыточна. Процессор может выполнять целочисленные операции и операции с плаваю- щей точкой. Для этого в его архитектуре есть два отдельных устройства, каждое из которых имеет свою систему команд. В принципе, целочисленное устройство мо- жет взять на себя многие функции устройства с плавающей точкой, но это потре- бует больших вычислительных затрат. Устройство с плавающей точкой и его сис- тема команд будут рассмотрены в главе 17. Для большинства задач, использующих язык ассемблера, достаточно целочисленной арифметики.