后记:变量是写程序中司空见惯的东西,可是到了机器层面,一切都消失了,只剩下地址,地址,地址。所以CPU和内存非常疑惑,变量到底是什么东西?

熟悉C语言的同学可能对漫画中的汇编有点疑惑,因为C语言代码(x+y)*z没有出现指针,怎么也都变成地址了 ?其实在硬件层面,都是地址,这里展示的是一个C语言函数

int cal(int x, int y,int z){

return (x+y)*z;

}

对于函数调用来说,转化成汇编以后,会对应一个个的栈帧,当前的栈帧(例如函数cal)开始地址保存在ebp这个寄存器当中, 而函数cal的参数保存在上一个栈帧中(也就是调用者的栈帧当中),所以可以用8(%ebp), 12(%ebp),16(%ebp)来引用,意思是把寄存器ebp中的地址加上8,加上12,加上16,所以,一起都是地址。

对于Java虚拟机来说,虽然它运行的是字节码,但是在执行的时候,字节码也得靠机器指令来实现,最底层都是地址。

更多精彩技术漫画,尽在码农翻身

漫画:你们这些奇葩的代码!相关推荐

  1. 你见过最奇葩的代码提交信息是什么?别再为写commit message头疼了!

    写在前面 对一个developer来说,有时候变量命名,提交代码时的提交信息会让人很头疼,本文主要聊聊怎么优雅的书写commit message. 一  你见过最奇葩的代码提交信息是什么? 曾在上家公 ...

  2. 漫画:什么是“低代码”开发平台?

    作者 | 小灰 来源 | 程序员小灰(ID:chengxuyuanxiaohui) 什么是低代码?其实,这并不是最近才出现的新概念. 自从计算机诞生以来,人们就一直在想方设法提升计算机程序编写的效率. ...

  3. 10个奇葩的代码注释,笑出声!

    大家看到过的最奇葩搞笑的代码注释是什么样的?下面来总结几条: // 修改1 - 2016/6/7 产品经理要求跳转到详情页 // 修改2 - 2016/6/8 产品经理说还是跳转到列表页 // 修改3 ...

  4. 漫画源码+小说uniapp代码+全自动采集搭建教程

    漫画小说源码Uniapp是一款基于Vue和uniapp开发的一款漫画小说App.该App包含了漫画.小说.动画等丰富的内容,支持在线阅读,离线下载等功能.该App easy to use,提供了多种阅 ...

  5. python批量把漫画图片转PDF格式代码

    我有个爱好,喜欢看漫画,但是很多漫画找到以后是图片格式,不太好保存,所以写了一个批量把漫画文件按照文件夹的形式转成pdf格式并存储的py小程序,分享出来! import img2pdf import ...

  6. 看漫画学Python 第二章代码

    2.3 变量 greeting = "HelloWorld" print(greeting)student_score = 0.0 print(student_score)y = ...

  7. 看漫画学Python 第八章代码

    8.1 定义函数 def rect_area(width,height):area = width * heightreturn areadef print_area(width,height):ar ...

  8. 世界上有两种公众号,我坚持做第二种

    世界上有两种公众号,一种喜欢追热点,热点过去,文章的价值也就随风而逝.另外一种不追热点,写一些能够经受时间考验的文章. 区分它们的方法很简单: 你看看他会不会定期发文章目录. 相比而言,第二种比较吃亏 ...

  9. 奇葩代码虐我千百遍,我却待它如初恋

    这是哪个天才写的代码?真是神逻辑!!! 告诉我你家的地址,我保证不打你-- 大哥,你真会取名!你的英语是体育老师教的吗? 这八层嵌套是谁写的?老板,我屏太小,能换个显示器吗-- 在你们多年的程序生涯中 ...

最新文章

  1. 大数据时代千帆竞发,三代测序激流勇进
  2. datagrid中巧用loadFilter对数据整形
  3. 【Android 逆向】APK 文件格式 ( Android 应用安装 | Zip 文件格式 | 使用 Python 代码提取 APK 文件 )
  4. 杭州/北京内推 | 蚂蚁集团智能决策团队招聘运筹优化算法工程师/实习生
  5. Spark练习 - 提交作业到集群 - submit job via cluster
  6. c java c时间格式处理_c:foreach 对时间类型进行格式化
  7. 【小马哥】Spring Cloud系列讲座
  8. linux系统vnc无法远程桌面,linux下vnc远程桌面连接方法分享
  9. os.path.basename()
  10. Smart ORM v0.4.1开发计划
  11. c++ win32 获取串口高低电平_串口和USB的区别,几种常见的串口协议
  12. ConcurrentHashMap源码(JDK1.8)
  13. 动软代码生成器使用心得
  14. 《计算机网络教程》(微课版 第五版) 第六章 网络应用层 课后习题及答案
  15. SharePoint上面搜索不到内容
  16. 使用keras框架训练神经网络时显卡内存使用很大很大的解决方案
  17. 王道计算机组成原理课代表 - 考研计算机 第七章 输入输出系统 究极精华总结笔记
  18. 【观察】美达电器:以数字化重塑质量管理体系,构筑车企新“护城河”
  19. 企业考勤,用开源协同办公OA系统来管理!
  20. 【线性 dp】A005_LC_不同的子序列(记忆化 / dp 分类讨论)

热门文章

  1. Real-Time Rendering 4th 译文《二 图形管线》
  2. 一道oj题-字母圣诞树
  3. C# 常用加密方法收集 对称,非对称
  4. ES6详细知识点汇总
  5. 时间序列预测:用电量预测 07 灰色预测算法
  6. 【开发日记】Deep Speaker 开发日记之Triplet选择
  7. Open-Falcon介绍
  8. 山东大学软件学院创新实训——飞讯(九)
  9. 深度之眼——效率提升3倍的Paper 阅读方法
  10. 震惊!居然还有人不懂二叉树!99%的程序员都会了,不会就点进来吧!