
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
11.12.2012, 11:55
|
|||
|---|---|---|---|
Работа с памятью: структуры данных (стек, куча), на уровне регистров процессора? |
|||
|
#18+
Не могу точно вопрос сформулировать. До этого как-то не задумывался, как там память выделяется под переменные, функции и прочие элементы программы; как она освобождается; как в ней ищутся значения тех или иных переменных\параметров\объектов. Из колледного курса про ассемблер в памяти осели только обрывки про указатель на вершину стека (само же назначение этой конструкции "стек" было непонятно). Просто думал: выделяется кусок память с n по m - и все, дальше мысль не шла. Вчера из любопытства к программированию читал статью по пхп и неожиданно стукнуло в голову, что память-то выделяется с n по m, но управляется (выдается, забирается, ищется) по схемам различных конструкций. И, оказывается, непонятный мне тогда стек - та самая конструкция, а регистр для хранения указателя - часть реализации этой конструкции. Хотя у меня хорошо развита способность делать неправильные выводы и умозаключения, поэтому могу ошибаться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
11.12.2012, 14:47
|
|||
|---|---|---|---|
Работа с памятью: структуры данных (стек, куча), на уровне регистров процессора? |
|||
|
#18+
Ход мысли стратегически правильный . Для более глубокого понимания деталей рекомендую глянуть исходники функции расс исходники функции два ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
11.12.2012, 15:25
|
|||
|---|---|---|---|
Работа с памятью: структуры данных (стек, куча), на уровне регистров процессора? |
|||
|
#18+
Док. Ну ты и подкинул медвежью услугу. Кто-ж будет реверс-инжинерить исходники чтобы понять освновы управления памятью? Лучше-б русско-язычных статей накидал. Не? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
11.12.2012, 15:44
|
|||
|---|---|---|---|
|
|||
Работа с памятью: структуры данных (стек, куча), на уровне регистров процессора? |
|||
|
#18+
чтение рихтера решит ваши проблемы с пониманием.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
11.12.2012, 16:14
|
|||
|---|---|---|---|
Работа с памятью: структуры данных (стек, куча), на уровне регистров процессора? |
|||
|
#18+
maytonДок. Ну ты и подкинул медвежью услугу. Кто-ж будет реверс-инжинерить исходники чтобы понять освновы управления памятью? Лучше-б русско-язычных статей накидал. Не? Рускоязычных статей не знаю, сам это дело осваивал по фидошно-ньсовым срачам около 10 лет назад. Занятное чтиво было , веселое и познавательное. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
11.12.2012, 20:17
|
|||
|---|---|---|---|
Работа с памятью: структуры данных (стек, куча), на уровне регистров процессора? |
|||
|
#18+
в учебниках по компиляторам достаточно подробно выделение памяти расписано ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
11.12.2012, 23:44
|
|||
|---|---|---|---|
Работа с памятью: структуры данных (стек, куча), на уровне регистров процессора? |
|||
|
#18+
Изопропилв учебниках по компиляторам достаточно подробно выделение памяти расписаноДля выделения памяти надо брать учебники по проектированию ОС. Там это рассмотрено намного лучше и точнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
12.12.2012, 11:34
|
|||
|---|---|---|---|
Работа с памятью: структуры данных (стек, куча), на уровне регистров процессора? |
|||
|
#18+
White OwlДля выделения памяти надо брать учебники по проектированию ОС. Там это рассмотрено намного лучше и точнее. выделение на стеке и контекст вызова функций, управление кучей (дефрагментация, выбор пулов)- лучше в компиляторных. Топикстартера вроде больше интересует использование регистров процессора и адресация ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
12.12.2012, 13:47
|
|||
|---|---|---|---|
Работа с памятью: структуры данных (стек, куча), на уровне регистров процессора? |
|||
|
#18+
Неужели я правильно понял?о_О Здорово:) Не могу сам определиться, что конкретно интересует, и, соответственно, за какую литературу браться: по Ос или компиляторам. Поток вопросов: что происходит при вызове malloc() (кажется так называется); что происходит с высокоуровневым кодом при компиляции, присваивающим значения\создающим объекты разных типов (структур данных); почему деление типов на стековые и в куче, почему именно эти структуры и почему вообще структуры, а не просто: вот кусок память, а вот указатель - и "передвигайся" с помощью него; если работа с памятью организована с помощью структур, то как алгоритмы (добавления, поиска и др) определяют, на сколько байт "перемещаться" по памяти - данные в памяти могут лежать не последовательно, а фрагментированно; откуда алгоритмы знают, где какой элемент в памяти лежит, где "начало" типа, а где "конец". По С читал, что первым параметром компилятор добавляет указатель на структуру данных, с которым работает функция - так, наверное, алгоритм и узнает, с какого участка памяти начинаются элементы, которые он должен обработать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
12.12.2012, 14:22
|
|||
|---|---|---|---|
Работа с памятью: структуры данных (стек, куча), на уровне регистров процессора? |
|||
|
#18+
Кантачес, капец! Вот это поток сознания! Ты хочешь сразу всего и много! Если тебе интересно как это всё на уровне процессора то может лучше почитать про Protected Mode для начала. http://en.wikipedia.org/wiki/Protected_mode По сабжу, сам это читал очень-очень давно. Поэтому тоже буду почитывать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
12.12.2012, 14:49
|
|||
|---|---|---|---|
Работа с памятью: структуры данных (стек, куча), на уровне регистров процессора? |
|||
|
#18+
mayton, проблема еще в том, что у меня слабо развита усидчивость и сильно - "гуманитарное" мышление, поэтому интерес быстро разбивается о первые трудности и поиск ответов прекращаю. Так и скачу по поверхности: там что-то прочитал (что более менее не вызывает трудностей в понимании), тут что-то прочитал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
12.12.2012, 17:29
|
|||
|---|---|---|---|
Работа с памятью: структуры данных (стек, куча), на уровне регистров процессора? |
|||
|
#18+
Кантачес, делай как я. Привяжи это к реальной задаче. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
12.12.2012, 20:58
|
|||
|---|---|---|---|
Работа с памятью: структуры данных (стек, куча), на уровне регистров процессора? |
|||
|
#18+
Читайте Ч. Петцольда, "Код". Он все эти базовые понятия очень хорошо и на пальцах объясняет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
13.12.2012, 10:27
|
|||
|---|---|---|---|
Работа с памятью: структуры данных (стек, куча), на уровне регистров процессора? |
|||
|
#18+
mayton, еще бы знать, какая задача даст понимание. Тут вроде и уровень ассемблера, и уровень компилятора. Может разработать свой транслятор (или как это правильно называется) по книге Ахо и других. Либо по арм-программированию что-нибудь по эмбедед попробовать написать. oldjackal, давно скачал, только руки не поднимаются за нее взяться - точно стоит на нее время тратить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
13.12.2012, 20:21
|
|||
|---|---|---|---|
Работа с памятью: структуры данных (стек, куча), на уровне регистров процессора? |
|||
|
#18+
Кантачесеще бы знать, какая задача даст понимание.Да собственно говоря, любая требующая низко-уровневой работы. Очень хорошо подходит писать для слабых компов или драйвера железа. Как вариант - сделать игрушку под какую-нибудь консоль. DK для старых handheld-ов типа GameBoy можно найти в сети без проблем. Там учет памяти вести просто необходимо. КантачесМожет разработать свой транслятор (или как это правильно называется) по книге Ахо и других.По Ахо будет делать сложно... К нему надо приходить с уже хорошим знанием. Ахо закопался в компиляторы много лет тому назад, стал в них абсолютным гуру. Но теперь он не всегда понимает как кто-то может что-то не понимать в этом простом деле создания компиляторов. Кантачесoldjackal, давно скачал, только руки не поднимаются за нее взяться - точно стоит на нее время тратить?Точно стоит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=16&tablet=1&tid=1342015]: |
0ms |
get settings: |
10ms |
get forum list: |
20ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
187ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
65ms |
get tp. blocked users: |
1ms |
| others: | 240ms |
| total: | 545ms |

| 0 / 0 |
