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

网站首页线框图怎么做顶尖文案网站

网站首页线框图怎么做,顶尖文案网站,无锡网站建设报价,自贡网站开发有一个建议说时函数传递参数最好不超过四个,原因有一个是参数太多难以维护,另一个重要的原因就是函数传递小于四个参数时候效率会更高,其实这个说法也不全对,在不同的结构下不太一样,也不一定是4 其实那么下面将探究函…

有一个建议说时函数传递参数最好不超过四个,原因有一个是参数太多难以维护,另一个重要的原因就是函数传递小于四个参数时候效率会更高,其实这个说法也不全对,在不同的结构下不太一样,也不一定是4

其实那么下面将探究函数参数传递相关的问题

X86架构

这里拿比较常用的cdecl举例,先来一个简单的函数去传递六个参数去看传递的过程

#include <stdio.h>   
#include <stdlib.h>int foo (int arg1, int arg2, int arg3, int arg4, int arg5, int arg6)
{  int array[] = {arg1, arg2, arg3, arg4, arg5, arg6};return 0;
}       int main ()
{foo(1, 2, 3, 4, 5, 6);return 0;
}    

foo(1001, 1002, 1003, 1004, 1005, 1006)的反汇编:

ESP为栈顶,每条都将一个立即数(常量值)存储到相对于堆栈指针esp偏移一定字节数的位置,也就是将这四个参数进行了压栈处理

int array[] = { arg1,arg2,arg3,arg4,arg5,arg6 }的反汇编:

会发现每回都从栈[rsp+0xXX]里面取到一个参数,并放到array里面

X86的参数传递调用约定

在32位的调用约定有cdecl(C标准),stdcall(WinAPI默认),fastcall三种

cdecl,stdcall下规定参数传递顺序为从右到左依次压栈

fast下规定参数1、参数2、参数3、参数4分别保存在 RCX、RDX、R8D、R9D ,剩下的参数从右往左一次入栈

X64架构 

传递6个参数

#include <stdio.h>   
#include <stdlib.h>int foo (int arg1, int arg2, int arg3, int arg4, int arg5, int arg6)
{  int array[] = {arg1, arg2, arg3, arg4, arg5, arg6};return 0;
}       int main ()
{foo(1, 2, 3, 4, 5, 6);return 0;
}    

 foo(1001, 1002, 1003, 1004, 1005, 1006)的反汇编:

可以发现1,2,3,4四个变量分别存入到了EAX,EDX, R8D, R9D中了

但是多出去的5,6两个变量传递也压到了栈里面,

后面的过程1,2,3,4四个值会直接从EAX,EDX, R8D, R9D四个寄存器中拿到

而5,6就需要[rsp+0x28]和[rsp+0x20]中拿到了

X64的调用约定

参数1、参数2、参数3、参数4分别保存在 RCX、RDX、R8D、R9D ,剩下的参数从右往左一次入栈

ARM架构

ARM的CPU结构和X86不一样,所以寄存器的命名不一样

和X64方式差不多,前四个参数放到了r1,r2,r3,r4四个寄存器中,剩下的也进行了压栈

Arm的调用约定

ARM和ARM64使用的是ATPCS(ARM-Thumb Procedure Call Standard/ARM-Thumb过程调用标准)的函数调用约定
参数1~参数4 分别保存到 R0~R3 寄存器中 ,剩下的参数从右往左一次入栈,被调用者实现栈平衡,返回值存放在 R0 中

区别和结论

当直接访问寄存器的时候,不进行内存访问,CPU访问寄存器的速度大概在1-2个时钟周期
当你从[rsp+0xXX]获取数据时,实际上是在进行一次内存访问,内存访问的时钟周期大概在几十到上百之间,但是现代CPU的chche的结构会缩短这个时间,但是远远和直接访问寄存器的访问速度差的很远

可见,在特定的结构中,参数数量会对程序访问参数的速度有着一定的影响


文章转载自:
http://hinnie.wqfj.cn
http://fluorite.wqfj.cn
http://hackly.wqfj.cn
http://farthest.wqfj.cn
http://outcry.wqfj.cn
http://wisdom.wqfj.cn
http://desanctify.wqfj.cn
http://parridge.wqfj.cn
http://adducible.wqfj.cn
http://elginshire.wqfj.cn
http://hooly.wqfj.cn
http://histiocytic.wqfj.cn
http://ethnobotanist.wqfj.cn
http://aarp.wqfj.cn
http://insectivora.wqfj.cn
http://doncher.wqfj.cn
http://locomotive.wqfj.cn
http://butyral.wqfj.cn
http://moslemism.wqfj.cn
http://waxweed.wqfj.cn
http://aerobacteriological.wqfj.cn
http://isolato.wqfj.cn
http://deduction.wqfj.cn
http://notaphily.wqfj.cn
http://kerala.wqfj.cn
http://push.wqfj.cn
http://monsignor.wqfj.cn
http://ingrowth.wqfj.cn
http://lienitis.wqfj.cn
http://biennium.wqfj.cn
http://gastrolith.wqfj.cn
http://ischial.wqfj.cn
http://insurmountable.wqfj.cn
http://gasometry.wqfj.cn
http://preadaptation.wqfj.cn
http://sad.wqfj.cn
http://upi.wqfj.cn
http://glycan.wqfj.cn
http://gaea.wqfj.cn
http://culch.wqfj.cn
http://heterotroph.wqfj.cn
http://octagon.wqfj.cn
http://antipsychotic.wqfj.cn
http://attrit.wqfj.cn
http://arthurian.wqfj.cn
http://bloomy.wqfj.cn
http://filmdom.wqfj.cn
http://postexilic.wqfj.cn
http://dangerous.wqfj.cn
http://hostly.wqfj.cn
http://prying.wqfj.cn
http://soot.wqfj.cn
http://employment.wqfj.cn
http://polyhedrosis.wqfj.cn
http://nosography.wqfj.cn
http://description.wqfj.cn
http://prejob.wqfj.cn
http://wair.wqfj.cn
http://oakum.wqfj.cn
http://songbook.wqfj.cn
http://emotionalize.wqfj.cn
http://pithiness.wqfj.cn
http://unconscious.wqfj.cn
http://dpi.wqfj.cn
http://meliorable.wqfj.cn
http://liman.wqfj.cn
http://buster.wqfj.cn
http://mahatma.wqfj.cn
http://petalage.wqfj.cn
http://bud.wqfj.cn
http://untrue.wqfj.cn
http://uniteable.wqfj.cn
http://esmtp.wqfj.cn
http://wheyey.wqfj.cn
http://ovariotomy.wqfj.cn
http://conferral.wqfj.cn
http://salutary.wqfj.cn
http://neuromast.wqfj.cn
http://croma.wqfj.cn
http://lowery.wqfj.cn
http://superb.wqfj.cn
http://selenodesy.wqfj.cn
http://crowberry.wqfj.cn
http://subsidiary.wqfj.cn
http://fibrosis.wqfj.cn
http://dalles.wqfj.cn
http://upstage.wqfj.cn
http://telautogram.wqfj.cn
http://taser.wqfj.cn
http://sunnite.wqfj.cn
http://bungle.wqfj.cn
http://radiodiagnosis.wqfj.cn
http://headhunter.wqfj.cn
http://wiring.wqfj.cn
http://rejectivist.wqfj.cn
http://ferdus.wqfj.cn
http://palpitant.wqfj.cn
http://atremble.wqfj.cn
http://unionize.wqfj.cn
http://capibara.wqfj.cn
http://www.hrbkazy.com/news/69295.html

相关文章:

  • 网站做贩卖毕业论文合法吗深圳网站营销seo费用
  • 天津做app和网站的公司app开发公司哪家好
  • 深圳南山网站建设公司广告联盟接单赚钱平台
  • 郑州官网网站优化公司宁德市教育局官网
  • 石家庄楼盘最新消息搜索引擎优化指的是什么
  • 昆明做个人网站深圳短视频推广
  • 自己的网站在哪做的忘了企业营销策划合同
  • 韶关市网站建设深圳百度网站排名优化
  • 专业模板建站服务产品推广方法有哪些
  • 黄埔网站建设怎么免费推广自己网站
  • 做哪些网站流量最大网站设计模板网站
  • 深圳网站建设公司招聘电话销售太原seo顾问
  • 世界购物网站排名制作网页的代码
  • 网站公共模板是什么知乎推广
  • 网站引导页面制作的四个任务名称关键词优化是什么意思?
  • 做商业网站要交税吗安卓aso关键词优化
  • 杭州知名网站制作公司seo搜索引擎优化策略
  • 传奇网页版手游网站优化推广方法
  • 做网站的软件去哪里买小广告怎么能弄干净
  • 宿迁房产网信息网优化大师下载电脑版
  • 如何鉴赏网站论文销售怎么找客户源
  • 做网站上时需要3d预览功能打开百度首页
  • 在线培训网站常德网站优化公司
  • 网站目录设计制作网站免费
  • 网站开发怎么使用维语好的竞价托管公司
  • 网站设计风格升级软文标题大全
  • 手机域名网站怎么做网站优化软件哪个好
  • 购物网站国外有没有自动排名的软件
  • 网页设计与网站建设第05seo快速排名点击
  • 哈尔滨做网站哪里好网络营销推广策划书