Кластерный компьютер Приемы повышения производительности Двоичная арифметика Программирование на языке ассемблера

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

Программирование на языке ассемблера

В каждом компьютере есть уровень архитектуры набора команд (Instruction Set Architecture, ISA), который представляет собой совокупность регистров, команд и других элементов, доступных программистам, пишущим на языках низкого уровня. Уровень ISA часто называют машинным языком, но это не совсем точное определение. Программа, написанная на машинном языке, являет собой длинный список двоичных чисел, описывающих исполняемые команды и их операнды, в котором одно число соответствует одной команде. Писать программы с операторами в виде двоичных чисел очень сложно, поэтому во всех машинах предусмотрен язык ассемблера — символическое представление архитектуры набора команд, в котором двоичные числа заменены именами наподобие ADD, SUB и MUL. В этом приложении содержится краткое руководство по программированию на языке ассемблера процессора 8088 компании Intel. Этот язык был реализован в первых машинах IBM PC, и именно на его основе развился современный язык ассемблера Pentium. Помимо прочего, в приложении описываются некоторые инструментальные средства, доступные в Интернете и способные помочь в процессе обучения программированию на языке ассемблера.

Назначение этого приложения не в том, чтобы готовить профессиональных программистов, пишущих на ассемблере, а в том, чтобы помочь читателю освоить архитектуру вычислительных систем через практические примеры. Именно по этой причине в качестве основы для изложения материала выбрана такая простая машина, как 8088 производства Intel. Сами по себе модели 8088 встречаются сейчас очень редко, но программы, написанные для них, можно выполнять и на современных системах Pentium, что позволяет читателю воочию наблюдать результаты своей работы. Скажем больше — значительная часть команд ядра Pentium совпадает с аналогичными командами 8088; различие между ними сводится лишь к разрядности регистров (32 и 16 бит соответственно). Таким образом, это приложение можно рассматривать как введение в курс программирования на языке ассемблера Pentium.

Чтобы программировать любую машину на ее ассемблере, программист должен хорошо разбираться в уровне архитектуры набора команд такой машины. По этой причине разделы «Основные понятия», «Процессор 8088», «Память и адресация» и «Набор команд 8088» посвящены детальному рассмотрению архитектуры, организации памяти, режимам адресации и командам 8088. В разделе «Ассемблер» содержится описание программного обеспечения, предназначенного для программирования на ассемблере. К этому программному обеспечению, которое распространяется совершенно бесплатно, мы будем обращаться впоследствии при изучении примеров программ. Следует учесть, что в ассемблерах других процессоров могут применяться оригинальные нотации, и к этому нужно быть готовым. В разделе «Трассер» рассматриваются программные средства интерпретации (трассировки, отладки), помогающие начинающим программистам устранять ошибки в программах. Раздел «Подготовительные действия» посвящен установке программного обеспечения и базовым приемам работы с ним. Наконец, в разделе «Примеры» содержатся готовые программы, примеры, задачи и их решения.

Наряду с двоичными кодами, с которыми оперирует ЭВМ, для ввода и вывода десятичных чисел (данных) используют специальное двоично-десятичное кодирование. При двоично-десятичном кодировании каждая десятичная цифра заменяется тетрадой (четверкой) двоичных цифр, а сами тетрады записываются последовательно в соответствии с порядком следования десятичных цифр.
роллы доставка химки сходня
Кластерные вычисления Процессор 8088 Программирование на языке ассемблера