|
|
|
Dude03 |
|
|||
Опытный Профиль Группа: Участник Сообщений: 257 Регистрация: 28.4.2006 Репутация: нет Всего: 6 |
Необходимо написать загрузчик, решил писать на gas'e(почему-то он мне нравится ).
Но возникла проблема с директивой org. Конечно можно обойтись и без нее(какой-нить опцией -Ttext линкера), но хочется добить вопрос. .org addr, fill В масме по этому все было легко, а as генерит код помойму очень странно: сначала идет "addr" байт "fill", а потом уже мой код. То есть, если напишу .org 0x7c00, 0x20 будет идти 0x7с00 символов с кодом 0x20, а потом мой код. Пробовал по разному извращаться с этой директивой, но не выходит ничего путного=( |
|||
|
||||
MAKCim |
|
||||
Воін дZэна Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 2 Всего: 207 |
Dude03,
.org - дополнение текущей секции до addr байт заданным значением, т. е надо ставить .org после твоего кода в текущей секции так:
Ttext ставишь на 0, entry на boot Добавлено @ 10:25
он реально лучше, согласен Это сообщение отредактировал(а) MAKCim - 2.1.2007, 10:30 -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
||||
|
|||||
Dude03 |
|
|||
Опытный Профиль Группа: Участник Сообщений: 257 Регистрация: 28.4.2006 Репутация: нет Всего: 6 |
||||
|
||||
MAKCim |
|
||||
Воін дZэна Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 2 Всего: 207 |
почему? Все очень даже правильно по сути после POST BIOS вызывается int 19h, считывается 1 сектор и записывается по адресу 0x7C00 туда же и передается управление, т. е CS = 0, IP = 0x7C00 к моменту считывания команды ljmp т. к при сборке мы указываем Ttext = 0, то нам надо, чтобы и IP команды ljmp был нулем. Для этого и делаем far jump на сегмент с адресом 0x07C0 (адресация реального режима), при этом смещение $start станет равным размеру команды ljmp, т. е мы добились этим переходом того, что ljmp будет лежать по IP = 0
org в фасме я подозреваю не то же самое, что .org в AS -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
||||
|
|||||
Dude03 |
|
|||
Опытный Профиль Группа: Участник Сообщений: 257 Регистрация: 28.4.2006 Репутация: нет Всего: 6 |
||||
|
||||
Правила форума "Asm для Linux/Unix" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Asm для Linux/Unix | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |