Как процессор понимает, что строка завершена?

0 голосов
109 просмотров

Как процессор понимает, что строка завершена?


Информатика | 109 просмотров
0

в какой ситуации? какая строка?

0

Эм... да не берите в голову - меня просто попросили подарить баллы) А процессор понимает, что строка завершена по нуль-завершающей комбинации символов - '\0' (кавычки излишни).

0

Как только ассемблер встречает данный символ, он преобразует его в двоичное значение в соответствии с askii таблицей и происходит прерывание чтения из памяти. Т.е. допустим тот же пресловутый Hello, world! в debug-режиме будет выглядеть так - 'H', 'e', 'l', 'l', 'o', 'w', 'o', 'r', 'l', 'd', '!', '\0' - размер каждого символа - байт, но я думаю это не стоит объяснять) Всего доброго)

0

Как все сложно)

0

Предлагаю вам забрать баллы себе, чтобы они не пропали даром) Не сложно - это основы, которые однако связаны с низкоуровневым программированием, а программист без пресловутого "низкого уровня" подобен медику до изобретения микроскопа, поскольку для качественной отладки или даже реверс-инженерии, многие подобные детали необходимо знать)

Дан 1 ответ
0 голосов
Правильный ответ

В данном случае всё зависит от контекста вопроса.

Если "понимает" процессор, то разговор идёт о прямых командах ему. Самый яркий пример - компилируемые ЯП вроде С или Pascal, где исходный код пользователя переводится в прямые команды ядру системы (уменьшение уровня абстракции).

Если за "завершение строки" воспринимать конец команды (в вышеназванных ЯП это ';'), то компилятор в процессе компиляции (тавтология) разделяет эти строки на отдельные команды, каждая из которых имеет свою последовательность процессорных действий.

Никакие CRLF (конец строки в Windows/DOS) и LF (в *nix-системах) вне строковых литералов (символов в кавычках вроде 'hello') для процессора роли не играет абсолютно.

В принципе, об интерпретируемых ЯП можно сказать то же самое. Для процессора "завершения строки" как такового не существует.

Прошу простить, если дал не тот ответ, что требовалось.

(7.2k баллов)
0

До ассемблера не надо расти) и учить его даже особо не надо) нужно просто освоить стек/память/адресации и т.д.

0

Асм для 32 разрядного режима легкий. 64 разрядный режим тоже самое. 16 разрядный режим нужно знать тому, кто собирается идти в программирование микроконтроллеров (это я)). Питон очень быстрый язык, быстрее только луа, удобен например для создания движков игр.

0

Джава? Выучите С/С++ и джава и си шарп и ф шарп и голанг(модный тоже) и т.д. станут для вас простейшими. Освоить сможете за месяц.

0

Если интересует например взлом и обход всяких денуво - можно заняться реверс инженерией. Это декомпиляция и дизассемблирование.

0

Ладно, не буду пугать)

0

Не пугаете - про всё слышал, интересовался)

0

Вот на C/C++ я и хочу сделать упор сейчас. Осталось только научный проект на джаве доделать)

0

А. Главное не по верхам. Это самая большая проблема большого количества информации. Нужно выбрать что-то одно и давить до упора, пока не станете виртуозом. Научный проект? 11 класс?

0

Угу, Малая Академия Наук Украины. В идеале - кроссплатформенный обработчик QR-кодов, пока что - шифровалка/дешифровалка для ПК

0

А почему джава именно?