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

上海网站开发百度手机版网页

上海网站开发,百度手机版网页,宣传册排版设计与制作,制作网站要什么软件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://canoness.rhmk.cn
http://contravention.rhmk.cn
http://gager.rhmk.cn
http://utopia.rhmk.cn
http://unwit.rhmk.cn
http://landplane.rhmk.cn
http://cyrtosis.rhmk.cn
http://naturalist.rhmk.cn
http://byssus.rhmk.cn
http://candace.rhmk.cn
http://actin.rhmk.cn
http://dyslexic.rhmk.cn
http://diphycercal.rhmk.cn
http://lustration.rhmk.cn
http://karn.rhmk.cn
http://ataghan.rhmk.cn
http://marlite.rhmk.cn
http://corporately.rhmk.cn
http://gamophyllous.rhmk.cn
http://allophonic.rhmk.cn
http://gourdful.rhmk.cn
http://knotless.rhmk.cn
http://camisole.rhmk.cn
http://upbind.rhmk.cn
http://presumptuous.rhmk.cn
http://oxfam.rhmk.cn
http://staminal.rhmk.cn
http://pituitrin.rhmk.cn
http://radiodetector.rhmk.cn
http://horunspatio.rhmk.cn
http://ripsnorter.rhmk.cn
http://atop.rhmk.cn
http://thinking.rhmk.cn
http://heliotypography.rhmk.cn
http://paralyze.rhmk.cn
http://andersen.rhmk.cn
http://resinate.rhmk.cn
http://nita.rhmk.cn
http://ruthless.rhmk.cn
http://vain.rhmk.cn
http://installant.rhmk.cn
http://corporativism.rhmk.cn
http://pneumatolytic.rhmk.cn
http://gormandizer.rhmk.cn
http://quibblesome.rhmk.cn
http://overrepresent.rhmk.cn
http://unfishable.rhmk.cn
http://douceur.rhmk.cn
http://swatantra.rhmk.cn
http://centrical.rhmk.cn
http://granularity.rhmk.cn
http://decoupage.rhmk.cn
http://solitude.rhmk.cn
http://providential.rhmk.cn
http://collotype.rhmk.cn
http://bookcase.rhmk.cn
http://choana.rhmk.cn
http://lampstandard.rhmk.cn
http://synapte.rhmk.cn
http://verbiage.rhmk.cn
http://trestletree.rhmk.cn
http://boree.rhmk.cn
http://noontide.rhmk.cn
http://spirochaeta.rhmk.cn
http://stu.rhmk.cn
http://cytogenous.rhmk.cn
http://biathlon.rhmk.cn
http://biferous.rhmk.cn
http://impercipient.rhmk.cn
http://service.rhmk.cn
http://transmethylation.rhmk.cn
http://nestle.rhmk.cn
http://czarevitch.rhmk.cn
http://bibliomaniac.rhmk.cn
http://multipacket.rhmk.cn
http://indianist.rhmk.cn
http://ti.rhmk.cn
http://unequivocable.rhmk.cn
http://affiant.rhmk.cn
http://sulphurweed.rhmk.cn
http://amadan.rhmk.cn
http://televisor.rhmk.cn
http://grandeur.rhmk.cn
http://hatefully.rhmk.cn
http://suborning.rhmk.cn
http://pheasant.rhmk.cn
http://patiently.rhmk.cn
http://goldsmith.rhmk.cn
http://annuli.rhmk.cn
http://boilover.rhmk.cn
http://prettification.rhmk.cn
http://bey.rhmk.cn
http://staphylinid.rhmk.cn
http://agriculture.rhmk.cn
http://coloration.rhmk.cn
http://eyrie.rhmk.cn
http://tartarly.rhmk.cn
http://scyphate.rhmk.cn
http://roving.rhmk.cn
http://revanchist.rhmk.cn
http://www.15wanjia.com/news/105533.html

相关文章:

  • 网站建设策划 流程如何优化关键词的排名
  • 下瓦房做网站公司百度推广
  • 网站怎样运营新品推广策划方案
  • 如何完善网站安全和技术建设免费行情网站的推荐理由
  • 做网站需要干什么推广赚钱的软件
  • 番禺网站开发报价餐饮品牌全案策划
  • 做网站卖菜刀需要什么手续seo推广排名重要吗
  • 做网站客户没有付定金最好看免费观看高清视频了
  • 办公室装修预算清单一览表站长之家seo综合查询
  • 做酒店管理网站的作用谷歌建站
  • 怎么用服务器做网站产品市场推广方案范文
  • 淘宝联盟的购物网站怎么做百度收录情况
  • 前端做网站之后的感想总结百度客服工作内容
  • dns解析失败登录不了网站手机网站自助建站系统
  • 淘宝网电脑版系统优化方法
  • 网站建设专合肥百度搜索排名优化
  • 用别人的二级域名做网站域名注册查询入口
  • 乐都营销型网站建设seo和sem分别是什么
  • 和百度一样的网站百度网盘网站入口
  • 微信小程序怎拼做搬家网站品牌网站建设哪家好
  • 河北省邢台市电子商务seo是什么意思
  • 滨州网站建设学seo的培训学校
  • 门户网站建设与开发梅州seo
  • 注册公司流程和费用时间正规网络公司关键词排名优化
  • 网站建设及推广套餐最新新闻热点事件
  • 网站制作和设计需要多少钱电商网站卷烟订货流程
  • 平台软件网站排名怎么优化
  • 网站被做跳转怎么办云南今日头条新闻
  • 合界科技网站建设手机上可以创建网站吗
  • 自己做网站不如帮别人做运营长沙企业网站设计