Теоретически, BIOS и ОС, написанные полностью в машинном коде, будут самыми быстрыми и наиболее эффективными из возможных?

10

спросил(а) 2020-06-07T14:23:54+03:00 3 недели, 6 дней назад
1
Лучший ответ
18

Сборка, созданная вручную, все еще может превзойти компиляторы в небольших функциях (несколько строк кода на C). Для более крупных структур, оптимизации всего модуля (Межпроцедурная оптимизация - Википедия) или оптимизации на уровне программы (LTO, та же статья), простой человек просто не может охватить все нюансы, которые улавливают современные компиляторы. Вы можете структурировать C-код таким образом, чтобы его можно было практически напрямую перевести в требуемую форму сборки, но при этом все еще можно было выполнять оптимизацию высокого уровня. Вам по-прежнему нужна встроенная сборка для генерации специальных команд, для которых в конкретной реализации C / C ++ не хватает встроенных функций. Существует целая операционная система Unix-ish с графическим интерфейсом, написанная в чистом виде, а именно MenuetOS. Я не оцениваю его скорость, но она маленькая. Полный графический интерфейс на одной дискете - это трудно победить. Подробнее здесь: Какую самую необычную операционную систему вы видели в дикой природе за последние несколько лет?

ответил(а) 2020-06-07T14:23:54+03:00 3 недели, 6 дней назад
13

Поскольку этот машинный код является буквальной основой для всего программирования, и тогда не потребуется никакого языка-посредника ... да, теоретически он наиболее эффективен.

ответил(а) 2020-06-07T14:23:54+03:00 3 недели, 6 дней назад
14

Как сказал предыдущий парень, машинный код не без причины. В 1980-х машинный код иногда писался с использованием монитора машинного языка.

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

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

ответил(а) 2020-06-07T14:23:54+03:00 3 недели, 6 дней назад
11

Теоретически да, скорее всего нет.

ответил(а) 2020-06-07T14:23:54+03:00 3 недели, 6 дней назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема