MASMとTurboC 2.0のハイブリッドプログラミング

1123 ワード

ソフトウェア:masm 5/turboc 2.0/Windows 7 ultimate SP 1 32 bitハードウェア:Intel Core T 450
cプログラムはmasmアセンブリの関数int sum(int,int)を呼び出し、コードは以下の通りである.
/*   test.c   */
#include <stdio.h>
extern int sum(int a,int b);
int main()
{
	int a = 1,b = 15;
	printf("a + b = %d
",sum(a,b));
return 0;}

;the function prototype in c language is :  int  sum(int a,int b);
.model small
_TEXT segment word public 'CODE'
assume cs:_TEXT
public _sum
_sum proc far
push bp
mov bp,sp
push bx
mov ax,[bp+6]    ;int a
mov bx,[bp+8]  ;int b;
add ax,bx
pop bx
pop bp
ret 
_sum endp
_TEXT ends
end 
_sum には を ける があります.segmentは_でなければなりませんTEXT、これで しく できます.
test.cとsum.asmをtestにコンパイルする.objとsum.obj
の で
>TLINK lib/C0S.obj test.obj sum.obj,out , ,lib/CS
はoutをコンパイルする.Exce、 で する
>out.exe
ポップアップダイアログボックスillegal instruction