• 《程序员的自我修养》阅读笔记(三):


    第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。

  • 相关阅读:
    实现ls(课上作业)
    20181217 (2)
    20181217 (1)
    ubuntu开启远程ssh登陆本机功能
    解决ubuntu下Could not get lock的问题
    博客园生成目录结构
    np.mean以及np.std用法
    解决 Could not find a version that satisfies the requirement torch==1.4.0
    github下载ocr模型 windows直接解压出问题
    centos7 连接不上网络解决办法
  • 原文地址:https://www.cnblogs.com/ph829/p/4322852.html
Copyright © 2020-2023  润新知