Emu8086 + Visual Studio [C] - Assembler

Узнай цену своей работы

Формулировка задачи:

Написать программу на Си, вызывающую процедуру из ассемблерного модуля. а) Ассемблерный модуль, процедуру и переменную которого можно использовать из другого модуля.
;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 ent2015 (учитель сказал изменить эту строку "C: \masm32\bin\m1 /c /coff pAsm1.asm" ) ?

Решение задачи: «Emu8086 + Visual Studio [C]»

textual
Листинг программы
d:\masm32\bin\ml /c /coff pAsm1.asm

Оцени полезность:

15   голосов , оценка 4.067 из 5
Похожие ответы