zoukankan      html  css  js  c++  java
  • 《程序员的自我修养》阅读笔记(三):

    第4部分 库与运行库

     第10章 内存

    函数调用惯例。函数返回值通常保存在寄存器eax,然后由调用者读取,对5-8字节返回值,通常由eax保存低4位,edx保存高4位。而返回值大于8字节时,调用过程大致如下:

    声名狼藉的C++返回对象。为此,C++提出了返回值优化(Return Value Optimization,RVO)这样的技术。

    Linux下两种堆空间分配方式,即两个系统调用:brk()系统调用和mmap()。

    第12章 系统调用与API

    中断。中断号对应中断处理程序(Interrupt Service Routine,ISR),这种对应通过中断向量表。

    中断号有限,不一一对应。用户将系统调用号放入eax,然后使用int 0x80调用中断,中断服务程序就可以从eax里取得系统调用号,进而调用对应的函数。

    插入: SS, SP, BP 三个寄存器

    SS:存放栈的段地址;
    SP:堆栈寄存器SP(stack pointer)存放栈的偏移地址;

    BP: 基数指针寄存器BP(base pointer)是一个寄存器,它的用途有点特殊,是和堆栈指针SP联合使用的,作为SP校准使用的,只有在寻找堆栈里的数据和使用个别的寻址方式时候才能用到。比如说,堆栈中压入了很多数据或者地址,你肯定想通过SP来访问这些数据或者地址,但SP是要指向栈顶的,是不能随便乱改的,这时候你就需要使用BP,把SP的值传递给BP,通过BP来寻找堆栈里数据或者地址.

    用户态到内核态的切换:

    软件开发工具包(外语首字母缩写:SDK、外语全称:Software Development Kit)。

    第13章  运行库实现

    操作符函数。new、delete、+、-、*等都有对应操作符函数。

    全局操作符重载;也可以重载某个类的new、delete。

  • 相关阅读:
    Intellij IDEA中Maven解决依赖失效
    Spring Boot 推荐的基础 POM 文件
    Spring Boot启动流程详解(一)
    spring boot应用启动原理分析
    Spring Boot 配置文件详解:Properties和YAML
    Spring Boot 属性配置和使用
    Arcgis for js载入天地图
    Android菜鸟的成长笔记(28)——Google官方对Andoird 2.x提供的ActionBar支持
    Android仿IOS回弹效果 ScrollView回弹 总结
    Android开发有用的站点
  • 原文地址:https://www.cnblogs.com/ph829/p/4322852.html
Copyright © 2011-2022 走看看