Код работает без stdio.h - C (СИ)
Формулировка задачи:
функция printf насколько я знаю обьявляется в заголовочном файле stdio.h..
почему она работает если закомментить, или вообще стереть подключение библиотеки stdio.h, (не глупый, убрал все библиотеки так как stdio.h может дергаться в других библиотеках..
вот пример кода.. сейчас еще попробую скрин загрузить..
//#include <stdio.h> //#include <stdlib.h> int main() { printf("Hello world!\n"); return 0; } // o_O
Решение задачи: «Код работает без stdio.h»
textual
Листинг программы
void _start() { /* exit system call */ asm("movl $1,%eax;" "xorl %ebx,%ebx;" "int $0x80" ); }
Объяснение кода листинга программы
- Код представляет собой функцию с именем _start.
- Функция не имеет параметров и не возвращает значение.
- Код внутри функции является ассемблером, который выполняет системный вызов для выхода из системы.
- Ассемблерный код состоит из трех инструкций.
- Первая инструкция
movl $1,%eax
помещает число 1 в регистр %eax. - Вторая инструкция
xorl %ebx,%ebx
помещает в регистр %ebx число, которое будет использовано в качестве аргумента для системного вызова. - Третья инструкция
int $0x80
выполняет системный вызов с номером 0x80. - Системный вызов № 0x80 - это системный вызов для выхода из операционной системы.
- Значение 1 в регистре %eax указывает на корень текущего процесса (процесс, который запустил текущий процесс).
- Значение 0 в регистре %ebx указывает на то, что выход из системы должен быть выполнен без принудительного завершения текущей задачи.
- Код не использует библиотеку stdio.h.
- Код не выводит никакую информацию на консоль.
- Код не считывает никакую информацию с консоли.
- Код не использует стандартные функции языка C.
- Код не выполняет никаких операций ввода-вывода.
- Код не использует никакие переменные, кроме регистров процессора.
- Код не содержит никаких условных операторов или циклов.
- Код не содержит никаких функций или подпрограмм, кроме _start.
- Код не содержит никаких комментариев.
- Код представляет собой минимальный пример, который можно использовать для создания полностью функционального исполняемого файла без использования каких-либо библиотек или стандартных функций языка C.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д