Подтвердить что ты не робот

Что такое файлы .S?

Я видел файлы .S в различных проектах, таких как ядро ​​Linux, ядро ​​FreeBSD или в некоторых других проектах. Что делают эти файлы и почему у нас нет файлов .C?

4b9b3361

Ответ 1

.S файлы - это файлы исходного кода, записанные в сборке. Сборка - чрезвычайно низкоуровневая форма программирования. Файлы содержат инструкции по сборке для процессора в последовательном порядке и обычно скомпилированы на основе выбранной архитектуры. Примеры таких файлов часто видны в ядре linux для конкретных архитектур, например. x86, sparc, ARM и т.д.

Подробнее о языке ассемблера:

Ответ 2

*. Файлы S - это файлы сборки. Почему .s и почему нет .c файлов? Это связано с тем, что аппаратно-зависимые элементы/ранняя инициализация, такие как настройка кеша и памяти, могут выполняться только командой уровня сборки, например инструкциями ввода-вывода. Ядро не имеет роскоши библиотеки libc, чтобы позаботиться о первоначальной настройке различных ресурсов. И аппаратные ресурсы в любой момент, даже во время выполнения приложения, ставят системные вызовы, которые вызывают процедуры ввода/вывода, закодированные на языке ассемблера.

Ответ 3

Они файлы ассемблера:

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

и поэтому эти файлы не совпадают с файлами кода C.

Обратите внимание, что C файлы могут быть встроены в инструкции по сборке.

Ответ 4

Расширение .S указывает файл языка ассемблера.

Почему мы не имеем .C файлы?

Потому что исходный исходный код - будь он человеческий или сгенерированный ассемблером - является сборкой, а не C.

Ответ 5

.S файлы - это файлы языка ассемблера. Это форма машинного кода. Он находится на низком уровне программирования. Весь машинный код написан на языке ассемблера. Язык ассемблера отличается для разных процессоров.

Ответ 6

.S файлы - это код, написанный на языке ассемблера, т.е. низкий уровень программирования. В исходном коде ядра linux.S обычно являются стартовыми файлами, которые ядро ​​запускает при запуске ядра linux (например.:- head.S). Мы пишем это в .S, а не в .C, потому что мы не готовы запускать .C скомпилированный файл .O в это время. Нам нужно работать с регистрами, зависящими от архитектуры, и запускать ядро.