Другие языки программирования и технологии
Как преобразуется обычная прога на си, где надо вывести слово на экран в маш.код и что процессор там считает?
Ведь процессор только умеет что считать! Как же он выводит слово на экран и что например там ему считать? Умножать? складывать?
При компиляции исходного текста на любом языке высокого уровня в 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, по всем символам.
То есть там почти ничего не вычисляется, а просто коды символов бегают по памяти и преобразуются друг в друга.
Любое слово состоит из букв, то есть символов, и записывается в компьютер в виде кодов этих символов.
Кодировок разных существует как минимум 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, по всем символам.
То есть там почти ничего не вычисляется, а просто коды символов бегают по памяти и преобразуются друг в друга.
Похожие вопросы
- что выбрать Ассемблер или С++? Знаком с Бейсиком, когдат начинал писать в маш. кодах для 8-битного проца, с Си не знаком
- Создать список. вывести его на экран.
- Как вывести информацию на экран, assembler
- Помогите плиз, написать прогу на Си++! Срочно очень нужно!
- Вопрос по Ассемблеру - Ввести с клавы 3 слова и вывести их на экран лесенкой Tasm
- написать программу на ассемблере: найти (в строке) и вывести слово, у которого код первого символа наибольший
- Как работают устройства ввода-вывода или как вывести пиксель на экран, не задействуя WinAPI и пр.?
- нужна полная прога на си для задачи. найти натуральное число от1 до 10000 с максимальной суммой делителеи.
- Помогите скомпилировать прогу в СИ
- помогите очень надо написать прогу на си