【时间】2021.11.19

【题目】《深入理解计算机系统》读书笔记(3)  第3章 程序的机器级表示

目录

一、简介

二、一些重点图

1、常见数据类型格式

2、16个整数寄存器

3、寄存器寻址方式

4、栈操作示例

5、汇编代码示例

6、运行时栈的结构

7、函数调用过程(call与ret)

8、struct数据对齐例子

三、思维导图


一、简介

本章主要主要介绍了跟汇编有关的相关知识(以x86-64为例子),如:

  1. 数据格式和位数(如word 16bit)
  2. 寄存器和地址寻址
  3. 汇编指令(mov、push、pop、算术操作、逻辑操作等)
  4. 流程控制(while、if、for、switch等)及其转换成的汇编代码
  5. 函数调用的过程(栈帧的结构等)
  6. 数组的内存分配与访问
  7. struct的结构与数据对齐
  8. 内存越界造成的缓冲区溢出的原因、典型例子和解决方法
  9. 浮点代码

二、一些重点图

1、常见数据类型格式

2、16个整数寄存器

3、寄存器寻址方式

4、栈操作示例

5、汇编代码示例

  • C代码:

  • 汇编代码

6、运行时栈的结构

7、函数调用过程(call与ret)

8、struct数据对齐例子

  • 中间补齐

  • 结尾补齐

三、思维导图

【《深入理解计算机系统》读书笔记(3)】 第3章 程序的机器级表示相关推荐

  1. 计算机系统导论第九章,计算机系统导论 -- 读书笔记 -- 第三章 程序的机器级表示 (持续更新)...

    计算机系统导论 -- 读书笔记 -- 第三章 程序的机器级表示 (持续更新) 第三章 程序的机器级表示 3.1 历史观点 3.2 程序编码 1. 命令行 (1)编译 Linux> gcc -Og ...

  2. 《深入理解计算机系统》(CSAPP)读书笔记 —— 第三章 程序的机器级表示

    本章主要介绍了计算机中的机器代码--汇编语言.当我们使用高级语言(C.Java等)编程时,代码会屏蔽机器级的细节,我们无法了解到机器级的代码实现.既然有了高级语言,我们为什么还需要学习汇编语言呢?学习 ...

  3. 深入理解计算机系统读书笔记(第二章 信息的表示和处理)

    这里写自定义目录标题 第二章 信息的表示和处理 2.1 信息存储 2.1.1 十六进制表示法 2.1.2 字数据大小 2.1.3 寻址和字节顺序 2.1.4 表示字符串 2.1.5 代码表示 2.1. ...

  4. 深入理解计算机系统读书笔记

    由于这本书的前半部分习题大多是相关计算和简单汇编代码编写,所以当时都是在稿纸上练习的,不过现在那些稿纸似乎也不见了: ( 所以现在仅有后半部分的课后习题代码以及示例练习代码(家里作业习题当时并没有做, ...

  5. 深入理解计算机系统----读书笔记

    第二部分    信息的表示和处理 信息存储: 二进制(0101001), 八进制,十六进制(0x32FD) 字(word size)指明整数和指针数据的标称大小(normal size),对于w位的机 ...

  6. 深入理解计算机系统 第3章 程序的机器级表示

    目录 第3章 程序的机器级表示 数据格式 操作数指示符 练习题 数据传送指令 习题3.4 访问信息 压入和弹出栈数据 算数和逻辑操作 移位操作 讨论 特殊的算数操作 问题 第3章 程序的机器级表示 数 ...

  7. CSAPP第三章——程序的机器级表示:学习笔记总结

    花了半个多月,补完王爽老师的汇编语言后,跟着CMU的视频课+课本,学完了第三章的知识,最深的感触就是CSAPP无论是视频还是书的质量都非常的硬,不愧它的盛名.(lab6和课后的家庭作业还没做,之后再补 ...

  8. 深入理解计算机系统 第三章笔记,《深入理解计算机系统》笔记.PDF

    <深入理解计算机系统>笔记 <深入理解计算机系统>笔记 目錄 介紹 0 第1章计算机漫游 1 1.1信息就是位+上下文 1.1 1.2程序被其他程序翻译成不同的格式 1.2 1 ...

  9. Think in Java第四版 读书笔记10 第16章 数组

    Think in Java第四版 读书笔记10 第16章 数组 数组和容器很像 但他们有一些差别 16.1 数组为什么特殊 数组与容器的区别主要在效率和存储类型 效率:数组是简单的线性序列 使得数组的 ...

最新文章

  1. Nginx日志格式设置
  2. 在线实时大数据平台Storm单机部署
  3. Linux两块磁盘挂载指向一个文件夹LVM磁盘管理(一)
  4. mysql 时间函数大全_mysql常用的日期函数汇总
  5. php对象的表示方法,PHP对象相关知识总结
  6. 怎么彻底删除电脑上的软件_1个神器彻底删除流氓软件,瞬间清出十几个G,你的电脑有救了!...
  7. Python入门--流程控制语句continue
  8. 移动端的meta标签
  9. 190609每日一句,科比·布莱恩特:这就是我成功的原因,即使身陷低谷,也要抬头仰望星空
  10. turbo c是什么?
  11. 怎样快速做个 BI 系统
  12. 黑客帝国角色 之 尼奥解读
  13. Servlet实现一个登陆界面
  14. 6大页面数据抓取工具
  15. js+ajax编码三级联动
  16. AHB到标准握手时序桥 - 逻辑设计部分
  17. 芯片设计公司有哪些小而美的选择?
  18. 脉冲神经网络大致流程
  19. 今日免费PNG图标集下载 - SweetiePlus
  20. 嵌入式系统概论-6-软件与内核

热门文章

  1. Java实战之图书管理系统(swing版)(5)——图书类别添加界面及功能实现
  2. 前端页面获取访问者的IP地址、经纬度和地理位置
  3. 【git安装配置 / 拉取上传】仓库流程
  4. python+opencv旋转图片并求旋转之后的特征点坐标
  5. linux下的shm目录
  6. 2021中国宏观经济形势分析与预测年中报告
  7. 南京python培训周末班
  8. BootLoader的解锁方法
  9. 低压和中压交流电机和交流驱动器市场
  10. 7-36 复数四则运算 (15 分)(python编写)