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

0 голосов

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


спросил от в категории Информатика
оставил комментарий от Супер Доцент (55.0k баллов)

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

оставил комментарий от

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

оставил комментарий от

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

оставил комментарий от Супер Доцент (55.0k баллов)

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

оставил комментарий от

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

1 Ответ
0 голосов
ответил от Отличник (7.2k баллов)
 
Лучший ответ

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

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

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

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

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

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

оставил комментарий от

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

оставил комментарий от

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

оставил комментарий от

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

оставил комментарий от

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

оставил комментарий от

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

оставил комментарий от Отличник (7.2k баллов)

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

оставил комментарий от Отличник (7.2k баллов)

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

оставил комментарий от

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

оставил комментарий от Отличник (7.2k баллов)

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

оставил комментарий от

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

...