![]() |
|
|
![]()
|
|
| alexsvk |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 20.4.2011 Репутация: нет Всего: нет |
1. Прошу помочь разобраться в корректности связывания файлов.
2. И ещё один вопрос, как программу ассемблера подключить к VS C++ ? Я хочу принять строку в C++ и отдать её на обработку в assembler, процедура в котором должна возвратить число. файл lr4.asm
файл module.asm
Объектный код строится без ошибок. После компоновки в command.com вижу следующее: C:\DOCUME~1\XPMUser\0016~1\LR_4_M~1 >link module+lr4 lr4 Microsoft ® Segmented-Executable Linker Version 5.01.21 Copyright © Microsoft Corp 1984-1988. All rights reserved. Run File [MODULE.EXE]: List File [NUL.MAP]: Libraries [.LIB]: Definitions File [NUL.DEF]: LR4.OBJ(lr4.ASM) : error L2025: FWRITE : symbol defined more than pos: F8 Record type: 839C LR4.OBJ(lr4.ASM) : error L2025: OUTSTR : symbol defined more than pos: 102 Record type: 839C LR4.OBJ(lr4.ASM) : error L2025: FCREATE : symbol defined more tha pos: 10D Record type: 839C LR4.OBJ(lr4.ASM) : error L2025: SCANSTR : symbol defined more tha pos: 118 Record type: 839C LR4.OBJ(lr4.ASM) : error L2025: EMPTY_S : symbol defined more tha pos: 123 Record type: 839C LR4.OBJ(lr4.ASM) : error L2025: FINDLTRCT : symbol defined more t pos: 130 Record type: 839C LR4.OBJ(lr4.ASM) : error L2025: CPYSUBSTR : symbol defined more t pos: 13D Record type: 839C LR4.OBJ(lr4.ASM) : error L2025: FOPEN : symbol defined more than pos: 146 Record type: 839C LR4.OBJ(lr4.ASM) : error L2025: FCLOSE : symbol defined more than pos: 150 Record type: 839C LR4.OBJ(lr4.ASM) : error L2025: FWRITE : symbol defined more than pos: F8 Record type: 839C LR4.OBJ(lr4.ASM) : error L2025: OUTSTR : symbol defined more than pos: 102 Record type: 839C LR4.OBJ(lr4.ASM) : error L2025: FCREATE : symbol defined more tha pos: 10D Record type: 839C LR4.OBJ(lr4.ASM) : error L2025: SCANSTR : symbol defined more tha pos: 118 Record type: 839C LR4.OBJ(lr4.ASM) : error L2025: EMPTY_S : symbol defined more tha pos: 123 Record type: 839C LR4.OBJ(lr4.ASM) : error L2025: FINDLTRCT : symbol defined more t pos: 130 Record type: 839C LR4.OBJ(lr4.ASM) : error L2025: CPYSUBSTR : symbol defined more t pos: 13D Record type: 839C LR4.OBJ(lr4.ASM) : error L2025: FOPEN : symbol defined more than pos: 146 Record type: 839C LR4.OBJ(lr4.ASM) : error L2025: FCLOSE : symbol defined more than pos: 150 Record type: 839C LINK : warning L4021: no stack segment LINK : error L2029: Unresolved externals: FILERHAND in file(s): LR4.OBJ(lr4.ASM) LR4.OBJ(lr4.ASM) MODULE.OBJ(module.ASM) FRPATH in file(s): LR4.OBJ(lr4.ASM) LR4.OBJ(lr4.ASM) MODULE.OBJ(module.ASM) STRENDCODE in file(s): LR4.OBJ(lr4.ASM) LR4.OBJ(lr4.ASM) MODULE.OBJ(module.ASM) FILEWHAND in file(s): LR4.OBJ(lr4.ASM) LR4.OBJ(lr4.ASM) MODULE.OBJ(module.ASM) RES in file(s): LR4.OBJ(lr4.ASM) LR4.OBJ(lr4.ASM) MODULE.OBJ(module.ASM) FWPATH in file(s): LR4.OBJ(lr4.ASM) LR4.OBJ(lr4.ASM) MODULE.OBJ(module.ASM) OPENMSG in file(s): LR4.OBJ(lr4.ASM) LR4.OBJ(lr4.ASM) MODULE.OBJ(module.ASM) STRIN_LEN in file(s): LR4.OBJ(lr4.ASM) LR4.OBJ(lr4.ASM) MODULE.OBJ(module.ASM) FENDCODE in file(s): LR4.OBJ(lr4.ASM) LR4.OBJ(lr4.ASM) MODULE.OBJ(module.ASM) CREATEMSG in file(s): LR4.OBJ(lr4.ASM) LR4.OBJ(lr4.ASM) MODULE.OBJ(module.ASM) CNT_L in file(s): LR4.OBJ(lr4.ASM) LR4.OBJ(lr4.ASM) MODULE.OBJ(module.ASM) STRIN in file(s): LR4.OBJ(lr4.ASM) LR4.OBJ(lr4.ASM) MODULE.OBJ(module.ASM) STRENDCODE2 in file(s): LR4.OBJ(lr4.ASM) LR4.OBJ(lr4.ASM) MODULE.OBJ(module.ASM) ENDCODE in file(s): LR4.OBJ(lr4.ASM) LR4.OBJ(lr4.ASM) MODULE.OBJ(module.ASM) STR_LEN in file(s): LR4.OBJ(lr4.ASM) LR4.OBJ(lr4.ASM) MODULE.OBJ(module.ASM) READMSG in file(s): LR4.OBJ(lr4.ASM) LR4.OBJ(lr4.ASM) MODULE.OBJ(module.ASM) STR_MAXLEN in file(s): LR4.OBJ(lr4.ASM) LR4.OBJ(lr4.ASM) MODULE.OBJ(module.ASM) CLOSEMSG in file(s): LR4.OBJ(lr4.ASM) LR4.OBJ(lr4.ASM) MODULE.OBJ(module.ASM) WRITEMSG in file(s): LR4.OBJ(lr4.ASM) LR4.OBJ(lr4.ASM) MODULE.OBJ(module.ASM) There were 37 errors detected |
||||
|
|||||
| 500mhz |
|
|||
![]() шайтан ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1017 Регистрация: 5.5.2008 Где: Киев / Italy Репутация: нет Всего: 14 |
а использование VC и масм (на масме пишете?) это принципиально?
если нет то советую сменить среду на GCC + NASM соответственно для компиляции и линковки используем gcc -Wall -c main1.c nasm -f aout main2.asm #ld -o main.elf main1.o main2.o в коде на С декларируем использование внешней функ extern void MainFunc(); в коде на АСМ тоже global MainFunc все, вызываем из С MainFunc() и попадаем на наш код написаный на асме -------------------- |
|||
|
||||
| alexsvk |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 20.4.2011 Репутация: нет Всего: нет |
Но если я использую MSVS 6.0 и хочу передать в процедуру, находящуюся в .asm, строку, а в роли возвращаемого параметра получить число (int). Какие правила оформления необходимо соблюдать, может быть, пример приведёте.
Да, спасибо за ответ на 2-й вопрос, но не подскажите, как избежать появившихся ошибок при компоновке многомодульной программы. Здесь используется только лишь ассемблер, - необходимо соединить два файла. Ошибки приведены выше. Это сообщение отредактировал(а) alexsvk - 21.4.2011, 11:04 |
|||
|
||||
| 500mhz |
|
|||
![]() шайтан ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1017 Регистрация: 5.5.2008 Где: Киев / Italy Репутация: нет Всего: 14 |
значит так, в С компиляторе необходимо указать что функция передает параметры через стек, соответственно в асме оформить функцию через proc и endp.
возвращаемое значение передаеться в eax если это int или же в eax передается указатель на массив в случае если функ должна возвратить ну к примеру 10 результатов своей работы пример для fasm nasm goasm
к сожалению в масм я не силен, могу помочь с fasm goasm nasm -------------------- |
|||
|
||||
| alexsvk |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 20.4.2011 Репутация: нет Всего: нет |
А пример С - го кода можно показать?
|
|||
|
||||
| 500mhz |
|
|||
![]() шайтан ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1017 Регистрация: 5.5.2008 Где: Киев / Italy Репутация: нет Всего: 14 |
-------------------- |
|||
|
||||
![]()
|
| Правила форума "Asm: Общие вопросы" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Asm: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |