Другие языки программирования и технологии

Как преобразуется обычная прога на си, где надо вывести слово на экран в маш.код и что процессор там считает?

Ведь процессор только умеет что считать! Как же он выводит слово на экран и что например там ему считать? Умножать? складывать?
Zohrab Qurbanli
Zohrab Qurbanli
198
При компиляции исходного текста на любом языке высокого уровня в exe-файл программа переводится с языка на Ассемблер. При этом задаются адреса сегмента команд, сегмента данных, сегмента стека, значения регистров и так далее.
Любое слово состоит из букв, то есть символов, и записывается в компьютер в виде кодов этих символов.
Кодировок разных существует как минимум 6: ASCII - DOS, ANSI - Windows, ISO, KOI-8 - Linux, Macintosh, UTF-8 - Unicode
На самом деле вариантов гораздо больше, более подробно смотри на http://ru.wikipedia.org/wiki/Кодировка.
При выводе на экран происходит примерно следующее:
1) Символы, из которых состоит слово, записываются в ячейки памяти, в специальную область
2) Берется первый символ, переписывается в видеопамять.
3) Через интерфейс соединения компа с монитором (в Ассемблере говорят - через порт ввода-вывода) символ выводится на монитор.
4) Дальше я опишу то, что было во времена DOS. Сейчас немного по-другому делается, через шрифты, но в общем похоже.
5) В мониторе есть знакогенератор - специальная область памяти, в которой записано, как выглядят буквы, цифры и другие символы.
6) По коду символа вычисляется то место в знакогенераторе, где записан образ этого символа. Это единственная математическая операция во всем процессе.
7) Программа обращается в знакогенератор, находит образ символа и выводит его на монитор.
8) Берется следующий символ, переписывается в видеопамять.
9) И так далее, повторяются пункты с 3 по 7, по всем символам.

То есть там почти ничего не вычисляется, а просто коды символов бегают по памяти и преобразуются друг в друга.
Акзам Уали
Акзам Уали
61 638
Лучший ответ