《程》学习笔记3

  • 应用通过操作系统控制硬件。
  • 操作系统的硬件控制功能,通常是通过一些小的函数集合体的形式来提供的。这些函数及函数调用的行为统称为系统调用。也就是应用对操作系统的功能进行调用的意思。
  • 间接调用系统调用:
    图片.png
  • 文件是操作系统对磁盘媒介空间的抽象化。
  • Windows通过名为API的函数集来提供系统调用。(Application Programming Interface,应用程序接口)
  • Windows是通过时钟分割技术来实现多任务功能的。
  • 时钟分割指的是在短时间间隔内,多个程序切换运行的方式。在用户看来就是多个程序在同时运行。
    图片.png
  • 设备驱动是操作系统的一部分,提供了同硬件进行基本的输入输出的功能。
  • 程序是操作系统、中间件、应用等所有软件的统称。
  • 把高级编程语言转化成机器语言的叫编译器;把汇编语言转化成机器语言的叫汇编器。
  • 用汇编语言编写的源代码和机器语言是一一对应的。
  • 命令提示符中的CD:change dirctory
  • 伪指令本身无法汇编转换成本地代码
  • 举例


    由伪指令segment和ends围起来的部分,是给构成程序的命令和数据的集合体加上一个名字而得到的,成为段定义。段定义的英文表达segment具有“区域”的意思。一个汇编程序由多个段定义构成。
  • 汇编语言指令的语法结构是 操作码+操作数,操作码形式由CPU种类决定。
  • 代码的运行:
    图片.png

    -CPU中的寄存器
    图片.png

  • 图片.png
  • 函数调用机制
    图片.png

    (2)esp的值被直接存储在了edp寄存器中
  • 函数的内部处理
    图片.png

    (1)先将ebp的值暂时保存在栈中,因为这个值可能是有用的。
    (2)esp寄存器保存着栈地址。
    (3)用[ebp+8]指定栈中存储的123,将其读到eax寄存器(累加寄存器)中。
    (4)把[ebp+8]指定的数据和[ebp+12]指定的数据加到一起再存到eax寄存器中
    (6)执行后,函数返回目的地的内存地址会自动出栈,程序流程就会返回10-4的Call_AddNum的下一行。
  • 函数的参数是通过栈来传递的,返回值是通过寄存器来返回的。
  • 全局变量定义在内存空间中;局部变量只在函数处理运行期间临时保存在寄存器和栈中。
    (第十章还是看书吧)
  • 一个来自编书者的建议:

你可能感兴趣的:(《程》学习笔记3)