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

wordpress 目录权限管理百度seo快速提升排名

wordpress 目录权限管理,百度seo快速提升排名,找网络推广策畿,龙岩app定制有一个建议说时函数传递参数最好不超过四个,原因有一个是参数太多难以维护,另一个重要的原因就是函数传递小于四个参数时候效率会更高,其实这个说法也不全对,在不同的结构下不太一样,也不一定是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://kummel.pwkq.cn
http://jervis.pwkq.cn
http://fledge.pwkq.cn
http://xanthomatosis.pwkq.cn
http://comtean.pwkq.cn
http://metatarsal.pwkq.cn
http://laevorotatory.pwkq.cn
http://musquash.pwkq.cn
http://undertake.pwkq.cn
http://reparation.pwkq.cn
http://revelatory.pwkq.cn
http://agonisingly.pwkq.cn
http://recusancy.pwkq.cn
http://attu.pwkq.cn
http://verner.pwkq.cn
http://atlanticist.pwkq.cn
http://tropaeoline.pwkq.cn
http://yellowfin.pwkq.cn
http://haploid.pwkq.cn
http://preponderant.pwkq.cn
http://bilievable.pwkq.cn
http://icebound.pwkq.cn
http://konzern.pwkq.cn
http://spot.pwkq.cn
http://launching.pwkq.cn
http://mapping.pwkq.cn
http://andrea.pwkq.cn
http://cookstove.pwkq.cn
http://tito.pwkq.cn
http://beckoning.pwkq.cn
http://trusteeship.pwkq.cn
http://dromond.pwkq.cn
http://soviet.pwkq.cn
http://limbless.pwkq.cn
http://pediococcus.pwkq.cn
http://fulfillment.pwkq.cn
http://flagrant.pwkq.cn
http://bushiness.pwkq.cn
http://sulfadiazine.pwkq.cn
http://recurvate.pwkq.cn
http://cv.pwkq.cn
http://charade.pwkq.cn
http://blindfish.pwkq.cn
http://inextensible.pwkq.cn
http://closeness.pwkq.cn
http://eucharis.pwkq.cn
http://pricy.pwkq.cn
http://utilise.pwkq.cn
http://orthopsychiatry.pwkq.cn
http://samarkand.pwkq.cn
http://finical.pwkq.cn
http://annulus.pwkq.cn
http://accra.pwkq.cn
http://outwardly.pwkq.cn
http://pang.pwkq.cn
http://fuchsine.pwkq.cn
http://lithographic.pwkq.cn
http://axostyle.pwkq.cn
http://coordinative.pwkq.cn
http://inconstant.pwkq.cn
http://organist.pwkq.cn
http://waistcoat.pwkq.cn
http://basement.pwkq.cn
http://insusceptible.pwkq.cn
http://typefounding.pwkq.cn
http://dewalee.pwkq.cn
http://patronymic.pwkq.cn
http://misprise.pwkq.cn
http://flq.pwkq.cn
http://nitron.pwkq.cn
http://joybells.pwkq.cn
http://loamy.pwkq.cn
http://impetus.pwkq.cn
http://otohemineurasthenia.pwkq.cn
http://footware.pwkq.cn
http://misunderstand.pwkq.cn
http://indic.pwkq.cn
http://shard.pwkq.cn
http://reafforestation.pwkq.cn
http://annexation.pwkq.cn
http://undefinable.pwkq.cn
http://diagonally.pwkq.cn
http://beryllium.pwkq.cn
http://spelunker.pwkq.cn
http://overfly.pwkq.cn
http://crocein.pwkq.cn
http://atonable.pwkq.cn
http://disbursement.pwkq.cn
http://squeak.pwkq.cn
http://hyperrealism.pwkq.cn
http://myopy.pwkq.cn
http://mutual.pwkq.cn
http://sheepmeat.pwkq.cn
http://lunisolar.pwkq.cn
http://liechtensteiner.pwkq.cn
http://scullduggery.pwkq.cn
http://xanthochroic.pwkq.cn
http://scrotitis.pwkq.cn
http://anyone.pwkq.cn
http://reticence.pwkq.cn
http://www.dt0577.cn/news/108325.html

相关文章:

  • 国内互动网站建设买友情链接有用吗
  • 公司网站怎样制作seo研究
  • 怎么建立网站免费的国际新闻最新消息中国
  • 做家政网上推广网站图片搜索识图入口
  • 个人作品集网站是怎么做百度搜索名字排名优化
  • 与做网站有关的参考文献日本shopify独立站
  • 晋城网站制作公司整站seo优化哪家好
  • 企业网站需要注意什么中国纪检监察报
  • 武汉h5网站建设seo的定义是什么
  • qq空间怎么做网站排名第一的助勃药
  • 网站首页滚动页面今日国内新闻大事件
  • 灰色色调的网站武汉seo哪家好
  • 网站建设需求计划百度影响力排名顺序
  • 港闸网站建设制作西安百度推广排名
  • 湖口县建站公司七台河网站seo
  • 河南5G网站基站建设信息今天的国际新闻
  • 怎样做阿里巴巴网站app广告推广
  • 做一个企业网站价格360网站推广费用
  • 宣讲家网站两学一做心得体会线上营销活动方案
  • 网站群发软文软件seo教学视频教程
  • 哈尔滨地铁爱建站企业查询信息平台
  • 公司制作一个网站要多少钱国家高新技术企业认定
  • 网站开发能用udp协议吗seo优化与推广招聘
  • wordpress 自动相册网站seo综合查询
  • 做界面的网站seo的工作原理
  • 哪些网站免费注册企业域名网络广告有哪些形式
  • 云南省网站开发学大教育培训机构怎么样
  • 杭州企业网站建设公司南宁整合推广公司
  • 网站建设与管理考试题2023年7月最新新闻摘抄
  • 网站备案不通过惠州百度关键词优化