Ассемблерная вставка

Ассемблерная вставка - это возможность использовать в основном коде программы, написанном на языке высокого уровня, вставки из низкоуровневого  кода. Это дает сразу несколько плюсов:

  • Оптимизация. Один из самых главных плюсов. Возможность написать что-то на низком уровне, чтобы значительно упростить данную часть программы, убрав огромное количество ненужного кода, который бы появился при переводе компилятором кода  с языка высокого уровня на  более низкий.
  • Прямой доступ к системе. Код на ассемблере позволяет выполнить прямое обращение к ядру операционной системы, что упростит программу и сделает ее более быстродействующей.
  • Вызов специфических функций. Ассемблер дает возможность обращаться к специальным функциям процессоров различных типов, которые не предусмотрены в стандартных библиотеках.

Рассмотрим пример такой ассемблерной  вставки

В коде программы 2 вставки, каждая из них подсчитывает количество совершенных тиков таймера, собирает их в переменные a и b, и после этого на основе их разницы вычисляется затраченное на цикл количество тиков. Эти вызовы заняли сами по себе столь малое время и память, что их практически можно не брать в расчет. Чего бы не удалось достичь, будь это кодом на языке высокого уровня.

Ассемблерная вставка: 2 комментария

  1. нет, ну такое не работает... Вы чего? Во первых не тот ассемблер, нужен AT&T, а не Intel. GCC это не понимает... Ну и там есть входные параметры и выходные... А тут нифига нет. Тут они непосредственно обращаются к внешним переменным. Так нельзя... Такие вставки даже сложнне чем ассемблерный модуль... Там оч сложный синтаксис. А это код очевидно под MSVS.

    1. Да, всё правильно. Код в примере под MSVS. Ассемблерный код плохо переносится, поэтому, если нужна переносимость, то лучше без ассемблера.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *