Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Архетектура ЭВМ.docx
Скачиваний:
2
Добавлен:
01.03.2025
Размер:
78.86 Кб
Скачать

Связывание программ на разных языках

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

  • На этапе компиляции — вставка в исходный код программы на языке высокого уровня ассемблерных фрагментов (англ. inline assembler) с помощью специальных директив языка. Способ удобен для несложных преобразований данных, но полноценного ассемблерного кода, с данными и подпрограммами, включая подпрограммы со множеством входов и выходов, не поддерживаемых языком высокого уровня, с его помощью сделать невозможно.

  • На этапе компоновки при раздельной компиляции. Для взаимодействия компонуемых модулей достаточно, чтобы импортируемые функции (определённые в одних модулях и используемые в других) поддерживали определённое соглашения вызова (англ. calling conventions). Написаны же отдельные модули могут быть на любых языках, в том числе и на языке ассемблера.

Синтаксис

Синтаксис языка ассемблера определяется системой команд конкретного процессора.

Набор команд

Типичными командами языка ассемблера являются (большинство примеров даны для Intel-синтаксиса архитектуры x86):

  • Команды пересылки данных (mov и др.)

  • Арифметические команды (add, sub, imul и др.)

  • Логические и побитовые операции (or, and, xor, shr и др.)

  • Команды управления ходом выполнения программы (jmp, loop, ret и др.)

  • Команды вызова прерываний (иногда относят к командам управления): int

  • Команды ввода/вывода в порты (in, out)

  • Для микроконтроллеров и микрокомпьютеров характерны также команды, выполняющие проверку и переход по условию, например:

  • cjne — перейти, если не равно

  • djnz — декрементировать, и если результат ненулевой, то перейти

  • cfsneq — сравнить, и если не равно, пропустить следующую команду

Инструкции

Типичный формат записи команд:

[метка:] мнемокод [операнды] [;комментарий]

где мнемокод — непосредственно мнемоника инструкции процессору. К ней могут быть добавлены префиксы (повторения, изменения типа адресации и пр.).

В качестве операндов могут выступать константы, адреса регистров, адреса в оперативной памяти и пр. Различия между синтаксисом Intel и AT&T касаются в основном порядка перечисления операндов и указания различных методов адресации.

Директивы

Программа на языке ассемблера может содержать директивы: инструкции, не переводящиеся непосредственно в машинные команды, а управляющие работой компилятора. Набор и синтаксис их значительно разнятся и зависят не от аппаратной платформы, а от используемого транслятора (порождая диалекты языков в пределах одного семейства архитектур). В качестве «джентльменского набора» директив можно выделить следующие:

  • определение данных (констант и переменных),

  • управление организацией программы в памяти и параметрами выходного файла,

  • задание режима работы компилятора,

  • всевозможные абстракции (то есть элементы языков высокого уровня) — от оформления процедур и функций (для упрощения реализации парадигмы процедурного программирования) до условных конструкций и циклов (для парадигмы структурного программирования),

  • макросы.

49) Дайте определения вычислительной системе. Расскажите о ее назначениях и дайте ей характеристику. Классифицируйте современные ВС.

Вычислительная сеть – Совокупность взаимосвязанных процессов или ЭВМ, периферийного оборудования и программного обеспечения; предназначенного для обработки, хранения и распределения информации.

Основные цели вычислительных сетей:

  1. Повышение производительности системы, за счет ускорения процессов обработки данных.

  2. Повышение надежности и достоверности вычисления

  3. Представление пользователям дополнительных сервисных услуг

Вычислительные сети бывают:

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

Многопроцессорные: совокупность процессоров направленных на решение задач

50) Расскажите об организации вычислений в ВС и конвейеризации вычислений в ВС.