| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Asm: Общие вопросы > Assembler и C++ |
| Автор: BNPmaster 4.7.2006, 17:48 |
| Всем привет, Кто - нибудь знает как вызывать подпрограмму написанную на Assembler из программы на C++. К примеру. WORK.ASM .MODEL MEDIUM,C .CODE public _DD _DD PROC FAR mov AX,10 add AX,20 _DD ENDP END ASM.CPP #include<stdio.h> #include<conio.h> extern "C" void DD(); int main(void) { DD(); getch(); return 0; } Оба файда я помещаю в папку где находится компилятор C++ (TCC.EXE) тудаже копирую компилятор Assembler (TASM.EXE), затем набираю E:\C\BIN\TCC.EXE -IE:\C\INCLUDE ASM.cpp WORK.asm (параметр -I указывает библиотеку для С) И вот что мне выдают : //------------------------------------------------------------ Turbo C++ Version 3.00 Copyright © 1992 Borland International asm.cpp: work.asm: Microsoft ® Macro Assembler Version 5.10 Copyright © Microsoft Corp 1981, 1988. All rights reserved. 49952 + 373789 Bytes symbol space free 0 Warning Errors 0 Severe Errors Turbo Link Version 5.0 Copyright © 1992 Borland International Error: Undefined symbol _DD in module asm.cpp Available memory 4089184 //------------------------------------------------------------- Undefined symbol _DD in module asm.cpp ---почему ?? Я Assembler только учу, но на C программирую давно. Может я с assembler что-то напутал. Если кто-то может помочь, буду очень благодарен. Спасибо Я использую MASM 5.1 и TC 3.0 |
| Автор: e-moe 6.7.2006, 20:55 |
| переименуй ASM.CPP в ASM.C ;) Просто Си++ и Си по разному изменяют имена, а асме у тя четко написано что экспортировать как для Си.... Добавлено @ 20:55 Да, и сравни чтобы модели памяти были одинаковыми |