当前位置: 首页 > news >正文

上海网站开发天津seo推广

上海网站开发,天津seo推广,讯美深圳网站建设,天河企业网站建设week03 一、main参数传递二、反汇编三、汇编混合编程 一、main参数传递 参考 http://www.cnblogs.com/rocedu/p/6766748.html#SECCLA 在Linux下完成“求命令行传入整数参数的和” 注意C中main: int main(int argc, char *argv[]), 字符串“12” 转为12,可以调用atoi…

week03

  • 一、main参数传递
  • 二、反汇编
  • 三、汇编混合编程

一、main参数传递

参考 http://www.cnblogs.com/rocedu/p/6766748.html#SECCLA
在Linux下完成“求命令行传入整数参数的和”

注意C中main: int main(int argc, char *argv[]), 字符串“12” 转为12,可以调用atoi()

求和函数 int sum(int N)放入sum.c中, main中调用sum(),main放入main.c中

测试代码传入自己的8位学号

提交代码

附件提交运行测试截图

// main.c:#include<stdio.h>
#include<stdlib.h>               
int sum(int N,int arr[]);        
int main(int argc,char *argv[])  
{int result;                     int ch[argc];for (int i=0;i<argc;i++){ch[i]=atoi(argv[i]);         result=sum(argc,ch);             }printf("the sum result is  %d\n",result);return 0;
}
//sum.c:int sum (int N,int arr[])
{int a=0;for(int i=0;i<N;i++){a+=arr[i];}return a;
}

创建两个文件
在这里插入图片描述
一起编译,然后运行

gcc main.c sum.c -o 20232831./20232831 2 0 2 3 2 8 3 1 #即计算2 0 2 3 2 8 3 1 的和,需要用空格分开

在这里插入图片描述

二、反汇编

编辑、编译、运行附图中代码
上方提交代码
附件提交运行结果截图
在这里插入图片描述
代码如下:

#include<stdio.h>
int main(void)
{int input,output,temp;input=1;__asm__ __volatile__ ("movl $0,%%eax;\n\t""movl %%eax,%1;\n\t""movl %2,%%eax;\n\t""movl %%eax,%0;\n\t":"=m"(output),"=m"(temp):"r"(input):"eax");printf("%d %d\n",temp,output);return 0;
}

在这里插入图片描述

三、汇编混合编程

用objdum -d sum.o反汇编sum.o, 在main.c中通过汇编调用sum

上方提交C混合汇编代码

附件提交编译运行结果

sum.c和main.c代码如下:

//sum.c:
int sum (int N,int arr[])
{int a=0;for(int i=0;i<N;i++){a+=arr[i];}return a;
}
//main.c:
#include<stdio.h>
#include<stdlib.h>               
int sum(int N,int arr[]);        
int main(int argc,char *argv[])  
{int result;                     int ch[argc];for (int i=0;i<argc;i++){ch[i]=atoi(argv[i]);         result=sum(argc,ch);             }printf("the sum result is  %d\n",result);return 0;
}

过程如下:

先生成sum.o

gcc -c sum.c -o sum.o

在这里插入图片描述

对sum.c的反编译代码如下:

objdump -d sum.o

在这里插入图片描述
根据反汇编的代码对sum.c进行修改,修改如下:

#include<stdio.h>
int sum (int N,int arr[])
{int a=0;for(int i=0;i<N;i++){__asm__ __volatile__ ("mov $0x0,%%rax;\n\t"  "mov %%rax,%%rbx;\n\t" "start_loop:\tsub $0x1,%%rcx;\n\t"   "cmp $0x0,%%rcx;\n\t"    "jl loop_exit;\n\t"  "mov (%%rsi,%%rcx,4),%%rbx;\n\t"  "add %%rbx,%%rax;\n\t"   "jmp start_loop;\n\t"  "loop_exit:":"=a"(a):"b"(arr),"c"(N):"memory");}return a;
}

对sum.c修改后,再次编译运行,结果如下:
在这里插入图片描述
完成汇编混合编程!

http://www.dt0577.cn/news/22445.html

相关文章:

  • 免费mac做ppt模板下载网站网络营销的优化和推广方式
  • 思途建站产品软文范例100字
  • 做牙工作网站网时代教育培训机构怎么样
  • m网购物商城成都网站搭建优化推广
  • 深圳制作公司网站的公司刷赞抖音推广网站
  • 云主机安装多个网站优化搜索引擎营销
  • 海南住房和城乡建设委员会门户网站重庆百度
  • 中华人民共和国住房与建设部网站网络营销的概念和含义
  • 在线培训系统平台浙江seo博客
  • 广州网站制作公司优化站长工具ping检测
  • 属于b2c网站的有哪几个网站营销策划
  • cydia软件源网站开发网络推广销售是做什么的
  • 广州白云网站建设公司网站快速优化排名
  • 做海外代购的网站杭州最好的seo公司
  • 商务部建设司网站如何设计企业网站
  • 网站建设怎么让百度搜索到百度指数怎么做
  • 党建网站建设作为最有效的15个营销方法
  • 用源码做网站基础建站如何提升和优化
  • 项目网站的建设有两种模式com域名
  • 手机上部署网站整站优化案例
  • 北京网站建设 都选万维科技宁波seo基础入门
  • 凡科轻站系统设置友情链接有什么作用
  • 天马网络网站关键词优化搜索排名
  • 网站的设计与维护摘要重庆seo薪酬水平
  • 一个做日语翻译的网站站内推广方案
  • 不备案网站怎么做推广推广网站有哪些
  • 做网站如何写需求最新seo视频教程
  • 专业建设网站应该怎么做cnzz
  • 怎么自己搭建一个博客网站优化手机性能的软件
  • 新闻网站开发总结2021最火关键词