计算机组成原理学习笔记

218 阅读2分钟

一:

二:认识CPU

超大规模集成电路

执行各种计算机指令的逻辑机器

三:计算机指令

本质是一种机器语言

Intel架构的cpu和arm架构的cpu计算机指令集不同

高级语言——》汇编语言——》机器语言

汇编语言就是给程序员看的机器码,add,mov

指令的分类:

算术类指令  add
逻辑类指令  or
数据传输类  load word
条件分支类  branch on equal
无条件跳转类    jump

CPU内部寄存器

PC寄存器:存放下一条需要执行的计算机指令的内存地址
指令寄存器:用来存放当前正在执行的指令
条件码寄存器:用里边的一个一个标记位,存放cpu计算的结果

cpu运行程序的过程

cpu从PC寄存器中取地址,找到地址对应的内存位子,取出其中指令送入指令寄存器执行,然后指令自增,重复操作。
所以只要程序在内存中是连续存储的,就会顺序执行;
而实际上跳转指令就是当前指令修改了当前PC寄存器中所保存的下一 条指令的地址,从而实现了跳转。
当然各个寄存器实际上是由数电中的一个一个门电路。

编译——》汇编——》机器码

stack overflow

Java的跨平台运行是如何做到的

Java是通过实现不同平台上的虚拟机,然后即时翻译javac生成的中间代码来做到跨平台的。
跨平台的工作被虚拟机开发人员来解决了

程序运行核心

链接器
    把多个文件合并成一个可执行文件
装载器
    解析ELF或者PE格式的可执行文件,把对应的指令和数据加载到内存,让CPU执行

内存地址

虚拟内存地址:
    指令中用到的地址
物理内存地址:
    硬件中的内存空间地址
关系建立:
    映射表维护着物理地址到虚拟地址的映射关系,因为是连续的内存空间
    所以只需要维护起始地址和对应空间大小

静态链接与动态链接

静态链接:
    符号表和重定向
    绝对地址空间
动态链接:
    相对地址空间