(示例代码为网上下载,并经修改和注释)
先编写TCMAIN.C如下:
/*程序功能:建立一个整型数组并输入数组的各元素值,调用汇编代码以取得元
素最大值和该最大值在数组中的位置*/
#include<stdio.h>
void main()
{
extern found(int i,int*j,int *k,int *s);
int i,j,k,s[10];
printf("Enter Values of Array:/n");
for(i=0;i<10;i++)
scanf("%d",&s[i]);
i=10;
found(i,&j,&k,s);
printf("/nThe Max_Value is:%d/n",j);
printf("The Place is:%d/n",k);
}
再编写TCFOUND.ASM如下:
PUBLIC _FOUND
_TEXT SEGMENT BYTE PUBLIC 'CODE'
ASSUME CS: _TEXT
_FOUND PROC NEAR
PUSH BP
MOV BP,SP
MOV CX,[BP+4] ;取得i的值:10
DEC CX
MOV SI,[BP+10] ;取得s数组起始地址
LODSW ;从SI地址载入字到AX
MOV DX,1
MOV BX,0
COMP: CMP AX,[SI]
JA BIGGER
MOV AX,[SI] ;找到更大
MOV BX,DX
BIGGER: INC SI
INC SI
INC DX
LOOP COMP
MOV DI,[BP+6] ;取得j地址
MOV [DI],AX
MOV DI,[BP+8] ;取得k地址
MOV [DI],BX
POP BP
RET
_FOUND ENDP
_TEXT ENDS
END
用masm编译TCFOUND.ASM得TCFOUND.OBJ,把TCMAIN.C和TCFOUND.OBJ都放到TC所在目录下,并在此目录下建立MYTC.PRJ文件内容如下:
TCMAIN.C
TCFOUND.OBJ
用TC打开MYTC.PRJ,按Alt+O-->Linker-->Case-sensitive link回车使On-->Off,回到Options菜单选Save options,按Alt+P输入Project name为:MYTC.PRJ,按Alt+C-->Build all。
在命令符界面运行MYTC.EXE,如下: