|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
28.09.2016, 10:38 | #11 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,709
|
mikado3333, что за компилятор? Не досовский? Вы собираете под винду? Ком или exe?
|
28.09.2016, 12:14 | #12 |
Лис
Старожил
Регистрация: 18.09.2015
Сообщений: 2,409
|
Если собирает под винду, то помимо компилятора нужно ещё знать что за линкет.
mikado3333, как называется линкер и его разрядность(16/32/64)?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал . |
28.09.2016, 12:27 | #13 |
Пользователь
Регистрация: 25.09.2013
Сообщений: 58
|
|
28.09.2016, 14:27 | #14 |
Пользователь
Регистрация: 25.09.2013
Сообщений: 58
|
Поторопился! Максимальный размер стека изменился в заголовке(Size of Stack Reserve), но ситуация не изменилась. Как я понял т.к. Size of Stack Commit не изменился и остался 4096. Вопрос открыт!
|
28.09.2016, 14:51 | #15 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
скорее всего из-за того что вы слишком сразу его весь пытаетесь взять.
по-странично сделайте доступ(хоть просто записать-прочесть). или воспользуйтесь уже нормальным методом. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
28.09.2016, 21:09 | #16 |
Пользователь
Регистрация: 25.09.2013
Сообщений: 58
|
Задал этот же вопрос на родном сайте fasm. Получил следующий ответ
"There is no maximum local stack size except until you run out of memory, or you exceed the stack limit. But be aware of the guard page that Windows uses to monitor stack growth and allocate new pages. You need to either statically allocate the stack by using the "stack maximum,allocated" directive or touch the stack from the top down one page at a time before trying to use it. Otherwise your program will crash with an invalid memory access. So for your case you can use "stack 1048576,1048576" to avoid the access error." Понятно что нужно использовать "stack 1048576,1048576" , а не "stack 1048576". Вот только со вторым вариантом (" or touch the stack from the top down one page at a time before trying to use it.") не совсем понятно - это надо разбить буффер на под буферы? Код:
|
28.09.2016, 21:32 | #17 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
нет, это надо прочитать вторую строку моего предыдущего поста.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
28.09.2016, 22:08 | #18 |
Пользователь
Регистрация: 25.09.2013
Сообщений: 58
|
"stack 1048576,1048576" заработало. А как выделить стек по странично если он и так 4096 - стр. в windows. Подскажите с кого "конца" подойти к этому выделению страниц? HeapAlloc - создать свой стек?
|
28.09.2016, 22:13 | #19 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
Heap это куча, а не стек.
во вторых, что я что на FASM вам сказали о постраничном доступе к стеку. то есть mov [esp+4096],eax mov [esp+9192], eax и тп в цикле.(адреса я скорее всего неверно описал, но смысл должен быть ясен, начинать надо от корня фрейма) до нужного размера, заставит реально выделить весь этот стек(стек все таки обычно растет по чучуть) Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
28.09.2016, 23:23 | #20 |
Пользователь
Регистрация: 25.09.2013
Сообщений: 58
|
т.е. не указывать локальный буфер явно, и если нужно оттянул esp назад на размер страницы и потом уже пиши в страницу?
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
asio: установить размер буфера в примере HTTP клиента | soulmare | C/C++ Сетевое программирование | 0 | 03.11.2010 19:44 |
Какой размер приемного буфера у сокета | meganom | Работа с сетью в Delphi | 3 | 01.09.2010 21:45 |
DSPack: размер буфера, частота кадров | RGV | Мультимедиа в Delphi | 3 | 20.11.2009 13:23 |
Максимальный размер занимаемой памяти | Alex Cones | Общие вопросы Delphi | 8 | 06.05.2009 22:37 |
максимальный размер массива в 32-битной оси | Adamant | Свободное общение | 5 | 03.12.2008 21:14 |