Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.12.2011, 20:59   #1
CodeNOT
Форумчанин
 
Аватар для CodeNOT
 
Регистрация: 08.11.2010
Сообщений: 593
По умолчанию Загрузка программы в память

Добрый день, не могли бы подсказать материал. по-поводу того, как загружать программу в память. Загрузчик уже написал, хотелось бы что-нибудь по выполнять, ну не могу найти материала, а точнее алгоритма(
CodeNOT вне форума Ответить с цитированием
Старый 13.12.2011, 21:13   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

типа своя ОС?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 13.12.2011, 21:18   #3
CodeNOT
Форумчанин
 
Аватар для CodeNOT
 
Регистрация: 08.11.2010
Сообщений: 593
По умолчанию

Ну что-то вроде того, преподаватель дал задание на курсовую написать собственную примитивную ос! Мануал по загрузчику простой я нашел и написал его, а вот с памятью что-то не могу найти(
CodeNOT вне форума Ответить с цитированием
Старый 13.12.2011, 21:25   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

ну я думаю вам не нужна структура задач полноценная.
вы в PM или RM?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 13.12.2011, 21:55   #5
CodeNOT
Форумчанин
 
Аватар для CodeNOT
 
Регистрация: 08.11.2010
Сообщений: 593
По умолчанию

если правильно понял вопрос, то загружаемую программу последовательно расположить в памяти хочу
CodeNOT вне форума Ответить с цитированием
Старый 13.12.2011, 22:13   #6
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

PM==Protected Mode
RM==Real Mode

в каком вы режиме процессора?(от этого ответ зависит)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 13.12.2011, 22:36   #7
CodeNOT
Форумчанин
 
Аватар для CodeNOT
 
Регистрация: 08.11.2010
Сообщений: 593
По умолчанию

для реального режима работы)
CodeNOT вне форума Ответить с цитированием
Старый 13.12.2011, 22:42   #8
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

это проще.
разбираемся дальше, приложение определенной структуры?(аля exe)
или просто COM, RAWBIN?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 13.12.2011, 22:49   #9
CodeNOT
Форумчанин
 
Аватар для CodeNOT
 
Регистрация: 08.11.2010
Сообщений: 593
По умолчанию

бинарник, код будет в самом начале файла, данные в конце, сегмент будет один!
CodeNOT вне форума Ответить с цитированием
Старый 13.12.2011, 23:34   #10
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

а у вас кстати ФС то есть?

алгоритм такой:
1)определяем адрес(можно и константу поидее), пусть это будет addr.
2)адрес должен быть кратен 16(границе сегмента)
Код:
mov eax,[addr]
and eax,FFFFFFF0h
mov [addr],eax
3)грузим по этому адресу данные(тут зависит от носителя и ФС)
4)передаем управление:
Код:
mov eax,[addr]
shr eax,4
jmp far ax:0;или call far(тогда retf в конце программы надо, или же ваш сервис прерывания(или иначе))+не помню можно ли так.
PS: синтаксис фасма.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Долгая загрузка программы Tulc Помощь студентам 4 20.11.2011 14:24
При работе программы чем-то забивается память.. brazhnik Общие вопросы Delphi 2 14.10.2011 09:57
Загрузка программы на асме grub-ом Олвин Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 6 17.11.2010 23:14
память программы Андрей.12 Свободное общение 7 13.01.2010 23:44
Загрузка чистой программы с flash AJlxuMuk Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 12.10.2009 01:03