|
Вариант для распечатки |
Пред. тема | След. тема | ||
| Форум Программирование под UNIX (C/C++) | |||
|---|---|---|---|
| Изначальное сообщение | [ Отслеживать ] | ||
| "Стек и bootloader" | +/– | |
Сообщение от kuraga (ok) on 29-Дек-10, 11:39 | ||
Я создал загрузчик (asm), который загружает ядро (Си) по адресу в памяти. Реальный режим. Проблема со стеком. Если параметры функции, вызываемой в ядре, передаются через регистры, все ок. Но если нет - через стек - например, переменное количество аргументов, все летит. Как инициализировать стек? Куда должны указывать регистры? Спасибо. | ||
| Ответить | Правка | Cообщить модератору | ||
| Оглавление |
|
| Сообщения по теме | [Сортировка по времени | RSS] |
| 1. "Стек и bootloader" | +/– | |
Сообщение от guest (??) on 29-Дек-10, 12:11 | ||
> mov sp, 0x400 | ||
| Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору | ||
| 2. "Стек и bootloader" | +/– | |
Сообщение от kuraga (ok) on 29-Дек-10, 13:51 | ||
>> mov sp, 0x400 | ||
| Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору | ||
| 3. "Стек и bootloader" | +/– | |
Сообщение от guest (??) on 29-Дек-10, 14:09 | ||
>[оверквотинг удален] | ||
| Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору | ||
| 4. "Стек и bootloader" | +/– | |
Сообщение от guest (??) on 29-Дек-10, 14:16 | ||
Извините нечаянно квотинг отправил. | ||
| Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору | ||
| 5. "Стек и bootloader" | +/– | |
Сообщение от kuraga (ok) on 29-Дек-10, 14:27 | ||
>[оверквотинг удален] | ||
| Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору | ||
| 6. "Стек и bootloader" | +/– | |
Сообщение от guest (??) on 29-Дек-10, 14:57 | ||
> "Нет." = "Спасибо. Попробовал, но не помогло." :-) Ставил 0xfffc, 0xf00 и | ||
| Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору | ||
| 7. "Стек и bootloader" | +/– | |
Сообщение от kuraga (ok) on 29-Дек-10, 15:45 | ||
Кажется нарыл. в двоичном файле ядра строка "Sasha%d" строго в конце файла, хотя OFFSET .LC0 по дизассемблеру есть 0. Разве по опции -Ttext оно не должно быть в начале??? | ||
| Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору | ||
| 8. "Стек и bootloader" | +/– | |
Сообщение от kuraga (ok) on 29-Дек-10, 17:14 | ||
Кажется нарыл. в двоичном файле ядра строка "Sasha%d" строго в конце файла, хотя OFFSET .LC0 по дизассемблеру есть 0. Разве по опции -Ttext оно не должно быть в начале??? | ||
| Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору | ||
| 10. "Стек и bootloader" | +/– | |
Сообщение от kuraga (ok) on 29-Дек-10, 22:00 | ||
Я вот че понял: все правильно, он берет смещения переменных от начала какого-то сегмента... Какого? Я просто привык, что мы пишем ASSUME, а GCC такого не пишет... Или это на linux всегда так? Так вот: базирование .LC0 ведь идет по DS? А кто его устанавливает? Сейчас - я, причем абсолютно неправильно!!! А как GCC формирует сегменты? Один сегмент данных или как? Как получить его адрес, и почему он не записывается в DS? И где сегмент стека, какой из указанных опций я его отключил? | ||
| Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору | ||
| 11. "Стек и bootloader" | +/– | |
| Сообщение от ImPressed (ok) on 03-Янв-11, 16:36 | ||
> Я вот че понял: все правильно, он берет смещения переменных от начала | ||
| Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору | ||
| 12. "Стек и bootloader" | +/– | |
Сообщение от kuraga (ok) on 03-Янв-11, 16:37 | ||
> И еще вопрос, вы загружаете ELF-бинарник или plain (а-ля DOS *.COM файл)? | ||
| Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору | ||
| 13. "Стек и bootloader" | +/– | |
| Сообщение от ImPressed (ok) on 03-Янв-11, 16:49 | ||
>> И еще вопрос, вы загружаете ELF-бинарник или plain (а-ля DOS *.COM файл)? | ||
| Ответить | Правка | ^ к родителю #12 | Наверх | Cообщить модератору | ||
| 14. "Стек и bootloader" | +/– | |
Сообщение от kuraga (ok) on 04-Янв-11, 12:10 | ||
>[оверквотинг удален] | ||
| Ответить | Правка | ^ к родителю #13 | Наверх | Cообщить модератору | ||
| 15. "Стек и bootloader" | +/– | |
| Сообщение от ImPressed (ok) on 04-Янв-11, 12:24 | ||
>[оверквотинг удален] | ||
| Ответить | Правка | ^ к родителю #14 | Наверх | Cообщить модератору | ||
| 16. "Стек и bootloader" | +/– | |
Сообщение от kuraga (ok) on 04-Янв-11, 13:44 | ||
>[оверквотинг удален] | ||
| Ответить | Правка | ^ к родителю #15 | Наверх | Cообщить модератору | ||
| 17. "Стек и bootloader" | +/– | |
| Сообщение от ImPressed (ok) on 04-Янв-11, 14:00 | ||
>[оверквотинг удален] | ||
| Ответить | Правка | ^ к родителю #16 | Наверх | Cообщить модератору | ||
|
Архив | Удалить |
Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема |
|
Закладки на сайте Проследить за страницей |
Created 1996-2025 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |