程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C >> C語言基礎知識 >> 如何在TC2.0中調用匯編程序

如何在TC2.0中調用匯編程序

編輯:C語言基礎知識

TC是美國BORLAND 公司在IBM PC機上開發的一個高效、優化的C編譯程序,它自帶高效的全屏幕編輯程序,在集成開發環境下可支持編輯、編譯、連接調試和運行等過程連續完成。

    TC提供了與匯編語言的接口和在C程序中直接插入匯編指令代碼的功能,支持以“遠調用”和“近調用”方式來調用使用匯編語言編寫的函數。

    TC調用匯編語言函數時,對匯編語言的編寫要求十分嚴格,並且對大小寫字母也有嚴格的區分。如果在編寫供TC調用的匯編函數時不按照規定好了的格式書寫,調用是不會成功的。

下面先舉一個在TC中調用匯編函數的例子,然後再詳細講解怎樣做才能成功。
步聚如下:

1、在TC集成環境中編寫一個主程序(名為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);
}

2、在TC集成環境中編寫如下匯編代碼(取名為TCFOUND.ASM)
(功能:取得數組元素最大值和該最大值在數組中的位置)
  PUBLIC _FOUND
_TEXT SEGMENT BYTE PUBLIC 'CODE'
  ASSUME CS: _TEXT
_FOUND  PROC NEAR
   PUSH BP
   MOV  BP,SP
   MOV  CX,[BP+4]
   DEC  CX
   MOV  SI,[BP+10]
   LODSW
   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]
   MOV  [DI],AX
   MOV  DI,[BP+8]
   MOV  [DI],BX
   POP  BP
   RET
_FOUND  ENDP
_TEXT  ENDS
   END

3、用MASM宏匯編在命令行下對TCFOUND.ASM匯編:

    masm tcfound.asm
匯編後生成一個模塊文件 tcfound.obj
注意:如果tcfound.asm不在該目錄下,必須指出該文件所在路徑。
      匯編後把tcfound.obj復制到TC目錄下,以便於建立TC下的工程文件。

4、工程文件的建立

   在TC集成環境下建一個新文件,其內容為:
TCMAIN.C
TCFOUND.OBJ
就只有以上兩行內容,寫完後保存為MYTC.PRJ
注意:MYTC.PRJ是一個工程文件,其後綴必須為.PRJ,這是TC中工程文件的標識。這個工程文件
      的內容只有兩行,說明了該工程包含了TCMAIN.C和TCFOUND.OBJ兩個程序模塊。對工程文件
      編譯連接時將依次編譯和連接這兩個文件,最後連接成可執行文件MYTC.EXE

5、編譯連接前的設置

    由於TC對大小寫字母非常敏感,而MASM匯編生成的OBJ文件均為大寫字母,故需把LINKER選項中的CASE-SENSITIVE LINK(大小寫敏感連接)開關關閉(OFF)狀態。

    操作如下:

F10--OPTION--LINKER    回車後選菜單的最下面的一項“CASE-SENSITIVE LINK”,把光標停在這一選項上,回車即可改變其設置為“OFF”狀態。
    最後不要忘了保存設置的結果。

6、編譯連接

    選菜單 F10---Project---Project name   回車後輸入剛才建立的工程文件名MYTC
    選菜單 F10---Compile---Build all  回車後即開始對工程文件MYTC.prj編譯連接,最後生成可運行文件MYTC.EXE

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved