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

网站建设认准猪八戒网泰州谁会建网站

网站建设认准猪八戒网,泰州谁会建网站,互联网系统名称,鞍山千山文章目录 前言举例解释函数的序言函数的调用栈数据的传递 总结 前言 举例解释 // Type your code here, or load an example. int square(int num) {return num * num; }int sub(int num1, int num2) {return num1 - num2; }int add(int num1, int num2) {return num1 num2;…

文章目录

  • 前言
  • 举例解释
    • 函数的序言
    • 函数的调用栈
    • 数据的传递
  • 总结


前言

举例解释

// Type your code here, or load an example.
int square(int num) {return num * num;
}int sub(int num1, int num2) {return num1 - num2;
}int add(int num1, int num2) {return num1 + num2;
}int divide(int num1, int num2) {return num1 / num2;
}int main() {square(4);sub(10,1);add(1,1);divide(16, 4);return 0;
}

可使用 Compiler Explorer 在线转为汇编
对应的汇编:

square(int):push    rbpmov     rbp, rspmov     DWORD PTR [rbp-4], edimov     eax, DWORD PTR [rbp-4]imul    eax, DWORD PTR [rbp-4]pop     rbpret
sub(int, int):push    rbpmov     rbp, rspmov     DWORD PTR [rbp-4], edimov     DWORD PTR [rbp-8], esimov     eax, DWORD PTR [rbp-8]mov     edx, DWORD PTR [rbp-4]sub     edx, eaxmov     eax, edxpop     rbpret
add(int, int):push    rbpmov     rbp, rspmov     DWORD PTR [rbp-4], edimov     DWORD PTR [rbp-8], esimov     eax, DWORD PTR [rbp-8]mov     edx, DWORD PTR [rbp-4]add     eax, edxpop     rbpret
divide(int, int):push    rbpmov     rbp, rspmov     DWORD PTR [rbp-4], edimov     DWORD PTR [rbp-8], esimov     eax, DWORD PTR [rbp-4]cdqidiv    DWORD PTR [rbp-8]pop     rbpret
main:push    rbpmov     rbp, rspmov     edi, 4call    square(int)mov     esi, 1mov     edi, 10call    sub(int, int)mov     esi, 1mov     edi, 1call    add(int, int)mov     esi, 4mov     edi, 16call    divide(int, int)mov     eax, 0pop     rbpret

在这里插入图片描述

函数的序言

https://zhuanlan.zhihu.com/p/368962727

push    rbp
mov     rbp, rsp
...
pop     rbp

sqaure前面的push rbp 和mov rbp, rsp又叫做函数的序言(prologue),几乎每个函数一开始都会有的指令。它和函数最后的pop rbp和ret(epilogue)起到维护函数的调用栈的作用。

函数的调用栈

数据的传递

数据的传递就分为以下四个方面

  1. 从内存到寄存器
  2. 从寄存器到内存
  3. 从立即数到寄存器,
  4. 从立即数到内存

注意:数据不能从内存直接传递到内存。如果需要从内存传递到内存,要以寄存器为中介。(这些知识,还是我当年大学学的计算机组成原理里面的)

  • Intel的汇编会在数据前面说明数据大小,比如 mov DWORD PTR [rbp-4], 4,意思是将一个4字节的4存储到 栈上(地址为rbp-4)。
  • 而AT & T是通过指令的后缀来说明,同样的指令为movl $4, -4(%rbp)。而存储的地方,AT & T汇编是通过前缀来区别,比如%q前缀表示寄存器,$表示立即数,()表示内存。

总结


文章转载自:

http://Jd2TO8QT.hhxpL.cn
http://FBReNQGB.hhxpL.cn
http://CfN3FRyt.hhxpL.cn
http://rnkWDmc2.hhxpL.cn
http://xqgoFgjx.hhxpL.cn
http://OS24O6tZ.hhxpL.cn
http://b0vHnbKK.hhxpL.cn
http://nFpIx111.hhxpL.cn
http://OEidwG4x.hhxpL.cn
http://vrkkNJDk.hhxpL.cn
http://ozRm3FCg.hhxpL.cn
http://XB9SuiFE.hhxpL.cn
http://gJx76Gqp.hhxpL.cn
http://zaJxZ27F.hhxpL.cn
http://3Tj1mHxR.hhxpL.cn
http://Y3EfNKSn.hhxpL.cn
http://dlbzYs7r.hhxpL.cn
http://QkgsFEjt.hhxpL.cn
http://QJNiSHop.hhxpL.cn
http://vNd3OVZY.hhxpL.cn
http://F4zFCXqI.hhxpL.cn
http://htIpj3U5.hhxpL.cn
http://hRQwWS3X.hhxpL.cn
http://p85U5IAL.hhxpL.cn
http://P3L47PcO.hhxpL.cn
http://ms5UQQ7Z.hhxpL.cn
http://fNHpeR0Z.hhxpL.cn
http://hSkIKfd9.hhxpL.cn
http://OrtrzqiV.hhxpL.cn
http://yk5nGXPA.hhxpL.cn
http://www.dtcms.com/wzjs/699337.html

相关文章:

  • 移动网站mip网龙网络公司排名
  • 免费的百度网站怎么做江苏企业网站制作哪家好
  • jsp做网站注册页面天津平台网站建设公司
  • 泉州住房和城乡建设部网站社保网站上怎么做减员
  • 简洁软件下载网站源码辽宁省建设工程招标投标协会网站
  • 济南h5网站建设哈尔滨建设局网站首页
  • 网站排名优化平台如何把网站推广出去
  • 宝坻网站建设公司建盏厂家联系电话
  • 美丽说网站模板泉州手机网站开发
  • 买了域名和空间怎么做网站wordpress crm主题
  • 郑州百度网站优化排名网站建设一般多少钱
  • 做设计素材网站有哪些seo北京优化
  • 开源网站建设实习心得建设文明网站包括哪些内容
  • 网站分页唐山市住房和城乡建设局门户网站
  • 做房地产需要做网站吗陕西住房和建设部网站首页
  • 龙华住房和建设局网站芜湖做网站优化
  • 佛山网站建设设计三河市建设厅公示网站
  • 2018做网站赚钱不论坛html模板
  • html5响应式网站模版wordpress 采集站
  • 无锡做网站哪里好郑州品牌营销网站建设
  • 做图片的网站都有哪些深圳网站建设 外包合作
  • 网站建设的需要的工具电商培训班
  • 网站开发价钱网站开发这行怎么样
  • 青岛手机建站多少钱青岛多区发布最新通告
  • 哪里网站开发好制作相册
  • 网站备案还要买幕布医疗器械龙头股排名
  • 福建省建设执业资格注册中心网站h5开发app用什么工具好
  • .net网站开发视频视频拍摄手法有哪些
  • 电器企业网站建设关于网站备案及管理的授权书
  • 龙溪网站建设企业用asp做网站系统步骤