汇编指令2
数据段或门的特权级别
构建类型系统
适配不同的目标语言和目标机器
Intel CPU的发展历史
运算器
中间表示(Intermediate Representation) ---- IR
Intel286
源语言代码
即时编译器JIT
8086
汇编指令5
栈顶寄存器
LLVM
IA-32家族第一代32位处理器
汇编指令1
数据
冯诺依曼体系
只读和只执行段选项
汇编指令6
栈内存
汇编指令3
代码生成
字节码文件
添加数据从栈顶往栈内添加数据
汇编语言的基本操作
地址
专用寄存器
使用16进制给内存每个字节编了一个号
后端部分(back end) ----- 综合(synthesis)
代码段与代码段之间的跳转使用call指令跳到另一块代码段执行使用ret指令回到原来的代码段进行执行
中间指令被翻译成为能够完成相同任务的 机器指令序列
用来描述数据的基本结构
Complex Instruction Set Computer(CISC 复杂指令集计算机)代表: Intel
一门编程语言出现步骤
前端部分(front end) ----- 分析(analysis)
触发器
用于存放代码段中固定的静态数据的地方叫做数据内存
DPL
对ISA指令的编码
逻辑门
增加一些BPF支持的字节码和可操作空间
汇编指令8
汇编指令4
操作系统专享内存
1. 控制器从寄存器中获取数据
内存
计算机体系结构
屏蔽内存单元大小的访问信息
这三类总线的位数与计算机CPU的位数密切相关
时序
汇编指令7
高速缓存
1.它有一条无限长的纸带,纸带分成了一个一个的小方格,每个方格有不同的颜色。2.有一个机器头在纸带上移来移去。机器头有一组内部状态,还有一些固定的程序。3.在每个时刻,机器头都要从当前纸带上读入一个方格信息,然后结合自己的内部状态查找程序表,根据程序输出信息到纸带方格上,并转换自己的内部状态,然后进行移动。
连续内存
优化后的最终目标语言
程序和其输入可以先保存到存储带上,图灵机就按程序一步一步运行直到给出结果,结果也保存在存储带上
顺序执行
图灵机
C语言程序
计算机编程语言的本质是什么??对低一级编程语言的高度抽象
删除数据从栈顶弹出数据
1byte
数字电子技术和数字逻辑
内存中一个单元就是一个字节(1byte)
Intel386
寄存器组
SRAM 静态随机存取存储器
多个指令流共享数据的内存区域
运算单元Arithmetic Logic Unit (ALU)
32位
将汇编语言的如下部分进行抽象:汇编指令段 函数方法操作的内存单元大小 C语言类型系统(基本数据类型: byte int float... ; 结构体 不规则的内存单元 ; 数组 多个内存单元的组合)
操作系统
ISA指令集
堆内存
代码段B(指令段B)私有数据代码段B的栈帧
外部设备
栈顶
计算单元
汇编语言
程序运行就需要开辟内存
段描述符
利用六个晶体管来存储数据->贵->不能大量使用->制作缓存
控制总线
支持虚拟内存管理
用于指定数据总线上的数据的源或目的地
汇编器
代码段内存
windows
并行操作
数据总线可以由32、64、128或甚至更多单独的线组成,这些线数被称为数据总线的宽度。
计算机组成原理
重要部分是类型检查
机器码(机器语言)
段的大小和位置,以及访问控制和状态信息
操作码
系统总线
调整后的中间代码
IR
特权级PRIVILEGE LEVELS
权限等级依次由0~3降低
如:面向对象... ...
通用寄存器
输入和输出
一些概念
代码段A调用代码段B
20位地址总线
代码段A(指令段A)
存储器
data line提供了在系统模块之间移动数据的路径。这些line被统称为数据总线。
数据总线8位
栈
32位地址总线
GCC
编译器
代码段A(指令段A) 私有数据代码段A的栈帧
RPL
地址总线的宽度决定了系统的最大可能内存容量
后端
0~3等级特权级
计算机中的 存储器 就是内存和硬盘
控制单元
栈底寄存器 BP
识别词性和词义
栈顶和栈底
段选择子
... ...
栈顶寄存器 SP
中间表示
二进制计数器
三个基本原则
语义分析 (Semantic analysis)
代码优化
x87浮点运算单元(FPU)
每一个比特的数据都只需一个电容跟一个晶体管来处理->相对便宜->掉电丢失信息->制作主存
带有语义的语法树
面向汇编器编写汇编程序
数据结构
控制器
允许向下兼容
DRAM 动态随机存取存储器
为何会出现十六进制
栈底
动态分配的数据内存空间
以非破坏性读出方式工作,只能读出无法写入信息->用在基本上不需要太多改变的部件上->制作BIOS
计算机组成
告诉计算机当前指令是要做什么事的
添加自身的语言特性
数据总线
实现方式
计算机中的 控制器 和 运算器 就是CPU 进一步说明了CPU是整个计算机的核心
将CPU单独拎出来放大来看
CPU
Intel486
Reduced Instruction Set Computer(RISC 精简指令集计算机)代表: ARM
词法分析 (lexical analysis)
Scala
Linux
ROM 只读存储器
增加8k的芯片一级缓存
8088
引入保护模式
数据内存
重点就在于有一个东西叫做:状态机
中间代码生成(Intermediate Code Generation)
根据指令执行状态进行跳转执行
定义语法
BPF
静态数据内存
晶体管
数学
CISC的压力在于CPURISC的压力在于指令编写人员
基本结构
多个指令流私有数据的内存区域
算法
java
欲 一统编译器的万物
材料化学
扫描和解析
共享数据几个指令段共享的数据
JVM的解释器和JIT
地址总线
汇编代码
处理器的指令解码和执行单元扩展到五个流水线阶段
二进制
抽象对数据的操作
那我代码也需要有个地方放啊
因为我们是主要针对Intel平台的CPU所以我们需要看Intel手册
锁存器
16位
五个部分
font color=\"#ff00ff\
栈底寄存器
编译原理
汇编指令9
提供省电和系统管理
将代码段A放大来看
CPL
实现拓展
主要研究计算机硬件之间的交互行为
指令
硬盘
提供原始链路层封包的收发
2.将数据放到ALU中运算
试图改进中间代码,以便生成更好的目标 代码
前端
参与指令操作的东西(寄存器/内存 中的值或者地址)
物理学中电学知识
计算机其他部分
代码段A的栈帧
指令地址寄存器
A的栈底寄存器
计算机
存储单元(寄存器组)Memory Unit(MU)
一个先进后出的数据结构
Unix
语法分析 (Syntax Analysis)
Kotlin
两大阵营实现
分段内存模型和扁平化内存模型
当前正在执行的程序或任务的权限级别
用于控制对数据和地址行的访问和使用
GraalVM
代码段B(指令段B)
ISA
实现
3.运算完的结果交由控制器写回寄存器中
Intel手册
C语言
解释器
AT&T编码
状态寄存器 SR
16位寄存器
不连续内存
分配给段选择器的覆盖特权级别
保护模式: 存放虚拟内存地址的指令地址寄存器+段寄存器查表 最终获取到真实地址
ebpf
操作数
内存(用来存放执行时数据的部分)
16位外部数据总线
单词流/符号流
语法树
控制单元Contol Unit(CU)
实模式: 直接通过指令地址寄存器+段寄存器获取到的真实物理地址
私有数据几个指令段私有的数据
Intel编码
段限制检查
存储器类型