汇编语言调用c语言求平均数

汇编语言调用c语言求平均数

ID:15083118

大小:34.38 KB

页数:6页

时间:2018-08-01

汇编语言调用c语言求平均数_第1页
汇编语言调用c语言求平均数_第2页
汇编语言调用c语言求平均数_第3页
汇编语言调用c语言求平均数_第4页
汇编语言调用c语言求平均数_第5页
资源描述:

《汇编语言调用c语言求平均数》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、《汇编语言程序设计》实验报告系别信息与科学技术学院专业软件工程年级学号姓名西南交通大学信息科学与技术学院2012年6月汇编语言对C语言函数调用的方法求平均数一.实验目的1.创建一个新的汇编语言源程序。2.创建一个工程文件,对该工程文件进行编译,连接,并运行。3.写出各个模块的说明4.分别编写相应符合要求的C语言程序和汇编语言程序5.绘制时限要求的汇编语言流程图二.实验环境1.硬件环境(1)80386或以上系列PC机(2)内存不少于16M2.软件环境(1)Dos+Win31或Windows95或以上版本操作系统三.实验步骤1.建立新的程序源文件,一个为LAST.

2、C的C程序文件,并且最后通过Turboc编译成为.obj文件,同时编写汇编语言程序ZUIHOU1.ASM,ZUIHOU2.ASM建立工程文件ZUIHOU3.MAK,并且将五个文件链接以及编译。2.编写实验代码以及模块说明:LAST.C程序源代码:#include#include;C语言库函数文件externvoidInput(void);;用extern声明,这是C语言对汇编语言的Input函数的调用,对整数的输入externvoidDisplay(char*sting,intlength);;用extern声明,这是C语

3、言对汇编语言Display函数的调用,显示最终的平均数voidBverage(void);;汇编语言对C语言的调用,Bverage函数的功能是求所有输入的数字的平均数intTotal=0;;全局变量,用于计算存储所有数字的和intin=0;;全局变量,用于存储输入的总数字的个数doubleaverage;;全局变量,用于参数传递,存储计算的平均数intmain(void);C中的主函数{char*string=0;;字符串用于存储平均数转化的字符串intlength;;字符串的长度printf("Howmanynumbers:");scanf("%d",&

4、in);Input();;调用Input()函数进行每一个数字的输入string=gcvt(average,10,string);;库函数将平均数转化成字符串存在以string开始的内存空间中length=strlen(string);;求字符串的长度Display(string,length);;对字符串的显示函数return1;}voidBverage(void);汇编语言调用的求平均数的函数{doubleaverage;Total=(double)Total;average=Total/in;}ZUIHOU1.ASMextrn_Bverage:far;求

5、平均数的函数的属性far,采用汇编语言对C的调用extrn_in:word,_Total:word;全局变量in存放输入的总数字的个数,Total存放所有的数字的和.modelsmall.codepublic_Input;Input函数调用_Inputprocpushbpmovbp,sp;对bp寄存器压入堆栈xorax,axxorcx,cxmovcx,_in;将数字的总的个数存放在CX寄存器中,用在循环lop:xorax,axmovah,01h;调用02h系统中断,输入字符串int21hsubal,30h;将字符串转换成响应的ASCII码addax,_Tota

6、lmov_Total,ax;将结果累加到Total变量中looplopcall_Bverage;调用Bverage函数求平均数movah,4chint21hret_Inputendp;子函数结束EndZUIHOU2.ASM代码:.modelsmall.codepublic_Display;Display函数用于显示平均数结果_Displayprocpushbp;将bp寄存器压入堆栈movbp,spxorcx,cxxorsi,simovsi,[bp+4];将字符串的基地址赋给simovcx,[bp+6];将字符串的长度赋值给CX寄存器lop1:movdl,[si

7、];调用02h系统中断屏幕显示字符movah,02hint21hincsilooplop1;用循环对每一个字符处理movah,4chint21hret_Displayendp;函数结束End3.汇编函数的流程图ZUIHOU1.ASM的流程图:(Input函数)STAERTPushbpCX=inCX=0?YESCallBverage求平均数Movah,0ah,int21hNOEND输入字符串DECCXTotal=Total+ax循环将字符串转化成ASCII码ZUIHOU2.ASM的流程图:(Display函数)STARTSi=[bp+4]Cx=[bp+6]CX=

8、0?YESNOENDMovah,02h

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

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

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