реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Можно ли писать в MS VC++ для "голого" x86 ?, Т.е. можно ли сгенерить код, который не требует наличия установленной
Николай Иванович...
сообщение Oct 11 2008, 20:59
Сообщение #1


Частый гость
**

Группа: Новичок
Сообщений: 139
Регистрация: 26-09-08
Пользователь №: 40 510



Можно ли писать в MS VC++ для "голого" x86 ?
Т.е. можно ли сгенерить код, который не требует наличия установленной ОСи на компе?
Go to the top of the page
 
+Quote Post
makc
сообщение Oct 11 2008, 21:28
Сообщение #2


Гуру
******

Группа: Админы
Сообщений: 3 621
Регистрация: 18-10-04
Из: Москва
Пользователь №: 904



Цитата(Николай Иванович Приходько @ Oct 12 2008, 00:59) *
Можно ли писать в MS VC++ для "голого" x86 ?
Т.е. можно ли сгенерить код, который не требует наличия установленной ОСи на компе?


"голый" x86 исполняет какой код (16-и или 32-х разрядный)? Начните с этого, сопоставьте с тем, какой код генерирует MS VC++, и сделайте выводы. Хотя при этом у Вас, конечно же, есть возможность из объектного файла сделать двоичный файл с "чистым" кодом и данными, вот только что Вы с ним дальше делать будете - это большой вопрос.


--------------------
BR, Makc
В недуге рождены, вскормлены тленом, подлежим распаду. (с) У.Фолкнер.
Go to the top of the page
 
+Quote Post
DpInRock
сообщение Oct 11 2008, 21:58
Сообщение #3


Гуру
******

Группа: Участник
Сообщений: 2 254
Регистрация: 4-05-07
Из: Moscow
Пользователь №: 27 515



Для MSDOS - легко. Это не есть операционная система. Все, что вы от нее возмете - это способность загружать ваш файл на исполнение.

Далее - вы полный хозяин компа.


--------------------
On the road again (Canned Heat)
Go to the top of the page
 
+Quote Post
makc
сообщение Oct 11 2008, 22:11
Сообщение #4


Гуру
******

Группа: Админы
Сообщений: 3 621
Регистрация: 18-10-04
Из: Москва
Пользователь №: 904



Цитата(DpInRock @ Oct 12 2008, 01:58) *
Для MSDOS - легко. Это не есть операционная система. Все, что вы от нее возмете - это способность загружать ваш файл на исполнение.

Далее - вы полный хозяин компа.


Правильно, но MS-DOS загружает на исполнение 16-и разрядные приложения, которые потом, если им это очень нужно, могут самостоятельно перейти в защищённый (32-х разрядный) режим, в котором они сами будут выбирать, как исполнять код в том или ином сегменте. Это определяется соответствующим битом в дескрипторе сегмента кода: "Segment Size Bit: When the descriptor entry describes a code segment, this bit is used to specify the default length of operands and addresses. When the bit is set, the processor assumes a 32-bit segment. When the bit is clear, a 16-bit segment is assumed."

Каким образом Вы хотите заставить MS VC++ генерировать 16-и разрядный код, который необходим для начального запуска приложения под MS-DOS? Т.е. задача проста - сделать .com-файл с помощью MS VC++, вопрос - как?


--------------------
BR, Makc
В недуге рождены, вскормлены тленом, подлежим распаду. (с) У.Фолкнер.
Go to the top of the page
 
+Quote Post
SysRq
сообщение Oct 11 2008, 22:28
Сообщение #5


Чайник, 1 литр
****

Группа: Свой
Сообщений: 655
Регистрация: 17-05-06
Из: Moscow
Пользователь №: 17 168



exe2com.exe rolleyes.gif
Go to the top of the page
 
+Quote Post
Sergei_Ilchenko
сообщение Oct 12 2008, 06:58
Сообщение #6


Частый гость
**

Группа: Свой
Сообщений: 180
Регистрация: 17-05-05
Из: Санкт-Петербург
Пользователь №: 5 128



Цитата(SysRq @ Oct 12 2008, 02:28) *
exe2com.exe rolleyes.gif



Могу ошибаться, но этот конвертер сформирует COM только в случае специальным образом заготовленного EXE. Один сегмент для кода, данных, стека e.t.c
Go to the top of the page
 
+Quote Post
makc
сообщение Oct 12 2008, 07:23
Сообщение #7


Гуру
******

Группа: Админы
Сообщений: 3 621
Регистрация: 18-10-04
Из: Москва
Пользователь №: 904



Цитата(Sergei_Ilchenko @ Oct 12 2008, 10:58) *
Могу ошибаться, но этот конвертер сформирует COM только в случае специальным образом заготовленного EXE. Один сегмент для кода, данных, стека e.t.c


Вы не ошибаетесь. Все именно так. smile.gif А кроме того, MSVC делает NE/PE exe-файлы, с которыми, думаю, exe2com тем более не сможет справиться.


--------------------
BR, Makc
В недуге рождены, вскормлены тленом, подлежим распаду. (с) У.Фолкнер.
Go to the top of the page
 
+Quote Post
one_man_show
сообщение Oct 12 2008, 07:41
Сообщение #8


Помогу, чем смогу
******

Группа: Админы
Сообщений: 2 786
Регистрация: 28-05-04
Из: Москва
Пользователь №: 25



Николай Иванович, а Вам остро необходимо пользоваться именно указанным продуктом? Я до сих пор пользуюсь контроллерами на "голых" х86, но для программирования применяю Paradigm C++, который заточен не только под "голых", но и под embedded


--------------------
С уважением,
Ваган Саруханов
Проекты|Форум|Facebook|Linkedin
Go to the top of the page
 
+Quote Post
DpInRock
сообщение Oct 12 2008, 09:18
Сообщение #9


Гуру
******

Группа: Участник
Сообщений: 2 254
Регистрация: 4-05-07
Из: Moscow
Пользователь №: 27 515



Вообще-то голый 86 - это еще и без биоса. Или с биосом?


--------------------
On the road again (Canned Heat)
Go to the top of the page
 
+Quote Post
makc
сообщение Oct 12 2008, 09:21
Сообщение #10


Гуру
******

Группа: Админы
Сообщений: 3 621
Регистрация: 18-10-04
Из: Москва
Пользователь №: 904



Цитата(DpInRock @ Oct 12 2008, 13:18) *
Вообще-то голый 86 - это еще и без биоса. Или с биосом?


Причём здесь, если мы говорим о машинном коде, исполняемом процессором? wink.gif


--------------------
BR, Makc
В недуге рождены, вскормлены тленом, подлежим распаду. (с) У.Фолкнер.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 8th July 2025 - 21:44
Рейтинг@Mail.ru


Страница сгенерированна за 0.01432 секунд с 7
ELECTRONIX ©2004-2016