|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
26.02.2011, 11:24 | #1 |
Регистрация: 26.02.2011
Сообщений: 3
|
Ассемблер и Cи
Всем привет!
У меня возникли возникли сложности с объединением модулей, написанных на си и асме. Задание следующее: реализовать основной алгоритм обработки как процедуру на языке ассемблера, ввод-вывод данных и вызов процедуры в си как головную программу. В целом, алгоритм представляется мне так: написать 2 документа с кодом, компилятором си создать 1.obj, tasm-ом - 2.obj и объединить их через tlink в 3.exe. Теперь хронология событий: 1. Система у меня 64-х битная, пришлось спецом для ассемблера ставить dosbox 2. Сначала я объединяла обжекты от vs2010 и tasm. Ошибка: fatal: bad object file record in vs_test.obj near module file offset 0x00000704 Возникло предположение, что студия компилит 32 бита, а тасм 16. 3. Раздобыла тасм32 и тлинк32, соответственно. Команда: TLINK32.exe test.obj vs_test.obj Ошибка: fatal: 16 bit segments not supported in module test.asm. Команда: TLINK32.exe vs_test.obj test.obj fatal: bad file 'vs_test.obj' near file offset 0 WTF?? (Не знаю, какой из обжектов ставить первым, в любом случае в первом варианте от перемены слагаемых ничего не менялось) Я в отчаянье!! Что же делать? Почему это 32-х битный тасмовский обжект не поддерживает 16-битные сегменты? Или они настолько не дружат с visual studio 2010(она же не делает 64 бита, да)? Есть борланд билдер как альтернатива студии, но я не знаю ни библиотек, ни синтаксиса и как-то совсем и не хочется узнавать. Пожалуйста, помогите. Как правильно сделать .exe? |
27.02.2011, 10:58 | #2 |
Форумчанин
Регистрация: 31.05.2009
Сообщений: 786
|
Вы пытаетесь скрестить кита со слоном. Мало того, что тасм компилирует 16-разрядный кол, а VS 32-разрядный, так еще их obj файлы имеют несовместимый друг с другом формат. Общего там только расширение!
Варианта 2: 1 ассемблерную часть компилировать в МАСМ32 2 делать в тасм(без 32) + borland c++ |
27.02.2011, 22:01 | #3 |
Регистрация: 26.02.2011
Сообщений: 3
|
объединяю борланд и тасм(не 32):
fatal: 32-bit record encountered in module c:\Program Files (x86)\Borland\CBuilder\Progects\uni t1.cpp с тасм32: fatal: 16 bit segments not supported in module test.asm это Borland c++ builder 6.0. попробовала еще borland compiler 5.5,но там при вызове через командную строку bcc.exe говорит, что ему не хватает path в masm32 и masm611 не работает link. Никаких сообщений об ошибках, просто не реагирует на вызов и всё |
27.02.2011, 22:53 | #4 |
equ asm
Участник клуба
Регистрация: 02.05.2009
Сообщений: 1,605
|
Так запросто меняете компиляторы, операционки. Вообще очень странно, что у вас нет ошибок на уровне компиляции, я уж молчу про выполнение....
Может на чем-то остановитесь одном, дос или винда ? |
09.02.2021, 02:53 | #5 | |
Форумчанин
Регистрация: 22.01.2014
Сообщений: 313
|
Читаю книгу Голубь.Н.Г Искусство программирования на ассемблере.djvu
Никак не могу создать ни одного проекта.) Установил в virtualBox Windows XP на неё tasm, masm borland 5.02 C++. В borlfnd создаю проект на С++ компилирую, .obj создаётся tasm запускаю создаю файл .obj создаётся, но не линкуется. fatal: 32-bit record encountered in module .cpp, не знаю что делать.... Цитата:
|
|
09.02.2021, 02:54 | #6 |
Форумчанин
Регистрация: 22.01.2014
Сообщений: 313
|
Код:
|
09.02.2021, 07:53 | #7 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,331
|
|
09.02.2021, 21:16 | #8 |
Форумчанин
Регистрация: 22.01.2014
Сообщений: 313
|
Конечно, я исправил эти ошибки. Толку то, ошибка выскакивает, нужно сказать, что файл .exe всё же создаётся, через раз, но после ввода последнего значения, вылетает сообщение, что что-то пошло не так и предложение отправить отчёт об ошибке в Microsoft. Значит завершается с ошибкой.
|
10.02.2021, 09:28 | #9 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,331
|
|
11.02.2021, 13:22 | #10 |
Форумчанин
Регистрация: 22.01.2014
Сообщений: 313
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
ассемблер | farxad | Помощь студентам | 6 | 11.09.2016 14:19 |
Ассемблер | ViSaDeR | Помощь студентам | 2 | 25.12.2010 20:37 |
Ассемблер | Майкл18 | Помощь студентам | 0 | 27.11.2009 09:16 |
Ассемблер | Artur95 | Помощь студентам | 2 | 11.09.2009 22:30 |
Ассемблер | maziLa | Помощь студентам | 2 | 14.07.2009 09:25 |