zoukankan      html  css  js  c++  java
  • TC2.0中怎样调用汇编程序

    转载于: TC2.0中怎样调用汇编程序

    一、概述

      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)
    (功能:取得数组元素最大值和该最大值在数组中的位置)   

      ENDPUBLIC _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

    3、用MASM宏汇编在命令行下对TCFOUND.ASM汇编:
        汇编后生成一个模块文件 tcfound.obj

    masm tcfound.asm

    注意:如果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

  • 相关阅读:
    NetSuite Batch Process Status
    NetSuite generated bank files and the Bank Reconciliation process
    Global Search file content in Gitlab repositories, search across repositories, search across all files
    FedEx Package Rate Integration with NetSuite direct integrate by WebServices
    git Merge branches
    git tag and NetSuite deployment tracking
    API 读写cookie的方法
    C# 生成缩略图
    解决jquery操作checkbox全选全不选无法勾选问题
    JS读取写入删除Cookie方法
  • 原文地址:https://www.cnblogs.com/amanlikethis/p/3571061.html
Copyright © 2011-2022 走看看