C语言和汇编语言的互调.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C语言和汇编语言的互调

实 验 报 告 课程名称: C语言和汇编语言的互调 姓名 学号 组员 实验名称 C语言和汇编语言的互调 实验内容:(实验原理、实验步骤、数据处理、误差分析、程序算法、系统结构等) 实验原理 C语言参数传递原则 1、函数的返回值通过AX寄存器; 2、参数通过堆栈传递:参数传递的顺序是最后一个参数先入栈,第一个参数最后入栈; 3、在子程序中不对因传递参数而改变的SP进行校正,而在主程序中进行校正。 1、下载TC.RAR到D盘,解压到D:\TC目录中; 2、把MASM.EXE拷贝到D:\TC中; 3、在D:\TC目录中建立两个文件DtoA.c和T3.asm,分别存放本题的C语言程序和汇编语言程序; 4、执行如下命令,编译T3.asm,形成目标文件T3.obj msam T3.asm 5、执行如下命令,编译DtoA.c形成DtoA.obj文件,并把DtoA.obj和T3.obj链接,形成可执行文件DtoA.exe tcc DtoA.c T3.obj 6、执行T3.exe。#include stdio.h extern int CHANGE(int,char *); main(){ int a[5]={276,13965,1024,4,32},i,j; char buffer[32],*p,*position; int count[]={0,0,0,0,0}; position=buffer; for (i=0;i=4;i++){ count[i]=CHANGE(a[i],position); p=position; for (j=0;j5-count[i];j++){ *p= ; p++; } position+=5; *position=,; position++; } *position=0; printf(Number=%s\n,buffer); for (i=0;i5;i++){ printf( %d,,count[i]); } printf(\n); } 汇编语言程序 _TEXT segment BYTE PUBLIC CODE assume CS:_TEXT public _change _change proc near ;int change(int value,char *buffer) push bp mov bp,sp sub sp,4 ;定义局部变量的空间 [bp-2],[bp-4] push bx push cx push dx push si push di mov word ptr [bp-2],0 ;一个局部变量。赋值0,转换的ASCII码数量 mov ax,[bp+4] ;value的值 mov bx,[bp+6] ;buffer的值 mov di,4 mov cx,10 subloop1: xor dx,dx div cx ;DXAX/CX ,商在AX中,余数在DX中 add dl,30h mov byte ptr [bx+di],dl inc byte ptr [bp-2] ;已转换的字符数 dec di ;下一个字符保存的位置 or ax,ax jnz subloop1 mov ax,[bp-2] ;放回结果 pop di pop si pop dx pop cx pop bx add sp,4 pop bp ret _change endp _TEXT ends end Microsoft (R) Macro Assembler Version 5.00 Copyright (C) Microsoft Corp 1981-1985, 1987. All rights reserved. Object filename [t3.OBJ]: (形成目标文件T3.objSource listing [NUL.LST]: Cross-reference [NUL.CRF]: 50160 + 415408 Bytes symbol space free 0 Warning Errors 0 Severe Errors (编译显示0错误) 2.编译 dtoa.c D:\tcTlink T3.obj Turbo Link

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档