Emu8086 + Visual Studio [C] - Assembler
Формулировка задачи:
Написать программу на Си, вызывающую процедуру из ассемблерного модуля.
а) Ассемблерный модуль, процедуру и переменную которого можно использовать из другого модуля.
б) Программа на Си, использующая внешнюю процедуру и переменную
Как реализовать с помощью emu8086 и visual studio ent2015 (учитель сказал изменить эту строку "C: \masm32\bin\m1 /c /coff pAsm1.asm" ) ?
;pAsm1.asm .586p ;плоская модель памяти .model flat,c public i public func1 ;сегмент данных data segment i dword ? data ends ;сегмент кода text segment func1 proc push ebp mov ebp,esp ;достаем из стека первый (слева) параметр mov eax,dword ptr [ebp+8] mov i,eax ;достаем из стека второй(слева) параметр mov eax,dword ptr [ebp+12] mov esp,ebp pop ebp ret func1 endp text ends end // start_pAsm1.bat C: \masm32\bin\m1 /c /coff pAsm1.asm pause
// pC1.cpp #include<windows.h> #include<stdio.h> extern "C" func1(int,int); extern "C" int i; //данная функция будет вызвана из ассемблерного модуля void main() { int a; a = func1(10,15); printf("%d %d",a,i); }
Решение задачи: «Emu8086 + Visual Studio [C]»
textual
Листинг программы
d:\masm32\bin\ml /c /coff pAsm1.asm