c与汇编混合语言编程

c与汇编混合语言编程

ID:10894647

大小:107.50 KB

页数:19页

时间:2018-07-08

c与汇编混合语言编程_第1页
c与汇编混合语言编程_第2页
c与汇编混合语言编程_第3页
c与汇编混合语言编程_第4页
c与汇编混合语言编程_第5页
资源描述:

《c与汇编混合语言编程》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、C与汇编混合语言编程1、先准备两个程序,一个汇编、一个C语言  在汇编中没有定义变量,因为在一个模块中不会有问题;  在C中定义了两个函数,一些局部变量,一些全局变量;  这样我们要考虑的内容都完备了。  ms.asm                    mc2.c                                                                            .386                      intsum(inti){            .modelflat          

2、      intk=i;                extrncm:near            intj=0;                public  _start            ints=0;                .code                      for(j=1;j<=k;j++)s+=j;  _start:                returns;                  movax,cs            }                          movds,ax 

3、                                       callm                  inte=1;              stop:                      intf=2;                jmpstop                intar[6000000L];        end  _start                                                                        externvoidm(){    

4、                                       intd;                                                    longc;                                              c=1;                    2、分别编译成obj文件  ml/c/coffms.asm                    //指定生成coff格式的obj文件  cl/c/Fomc.obj  mc2.c                //指定

5、生成的obj文件名为mc.obj  link/subsystem:windowsms.objmc.obj  //这里使用32位的链接器,要设好lib路径  现在得到ms.obj  mc.objms.exe  三个文件3、分析一下源代码,显然程序入口点是_start(在使用/coff参数进行编译时必须有下划线),在汇编中调用了C中的m函数,这是需要重定位的。在C中m调用了sum函数,这也是要重定位的。4、现在利用VC6自带的dumpbin.exe工具,生成解析文件:  dumpbin/allms.obj>msobj.txt  dumpbin/allmc.ob

6、j>mcobj.txt  dumpbin/allms.exe>msexe.txt  现在得到三个解析文件,下面逐个分析********************************************************************************msobj.txt*******************************************************************************Microsoft(R)COFFBinaryFileDumperVersion5.12.8078Copyri

7、ght(C)MicrosoftCorp1992-1998.Allrightsreserved.Dumpoffilems.objFileType:COFFOBJECTFILEHEADERvalueS            14Cmachine(i386)      //机器类型为386              3numberofsections  //ms.obj文件有三节      41AABB57timedatestampMonNov2914:01:592004            B2filepointertosymboltable  //符号表的

8、文件偏移是0B2H              Bnumberofs

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。