chap1 绪论

1. 冯诺伊曼体制

  • 采用二进制代码表示数据和指令
  • 采用存储程序工作方式
  • 由运算器、控制器、存储器、输入设备、输出设备构成计算机硬件

2. 存储程序工作方式

  • 事先编制程序
  • 事先存储程序
  • 自动、连续地执行程序

3. 指令执行的过程

  1. 取指令和分析指令
  2. 读取操作数
  3. 运算
  4. 后继指令地址

4. 提高CPU性能的技术

  • 流水线处理技术
  • 超标量技术

chap2 计算机中的信息表示

1. 十进制小数->二进制:乘2取整,顺序排列(结果可能循环)
2. 常用寻址方式

  • 立即寻址:指令直接给出操作数

优点:不访问内存,执行时间短缺点:灵活性差

e.g. MOV AX 12H

  • 直接寻址:指令直接给出操作数地址,根据该地址从主存读取操作数

优点:速度快缺点:寻址受地址码长度影响,只能访问固定单元

e.g. MOV AX [12H]

  • 寄存器寻址:指令直接给出寄存器号,该寄存器存放操作数(属于直接寻址的一种)

优点:寄存器存取比内存快(不需要经过系统总线,只经过内部总线) 寄存器数目比内存单元数目少,指令的OA长度可以缩短e.g. MOV AX BX

  • 间接寻址:指令给出存放操作数地址的主存单元的地址(地址的地址)

优点:编程灵活缺点:增加访存的次数,速度慢

  • 寄存器间接寻址:指令给出存放存放操作数地址的寄存器号
  • 变址寻址:指令的一部分给出形式地址,另一部分指定一个寄存器存放变址值,相加得到有效地址(常用)
  • 相对寻址:用PC的内容作为基准地址,指令中给出的形式地址作为基准量,相加得到有效地址

即操作数的地址是通过与当前指令地址之间的距离得到的

  • 堆栈寻址:操作数在堆栈中,指令隐含通过SP提供堆栈栈顶单元地址

用途:中断处理时保存现场信息

chap3 微体系结构——CPU组织

1. 取指令过程1⃣️ (PC) -> IRPC -> MARM -> MDR -> IR2⃣️ PC + 1 -> PC
2. 时序控制方式

  • 同步控制方式:各项操作由统一的时序信号控制

多级时序系统

  • 机器周期(组合逻辑控制器中才有,微程序控制器的多级时序系统不存在这一级)
  • 节拍(时钟周期)
  • 时钟脉冲:下降沿配合节拍作切换,上升沿配合节拍作数据传输
  • 异步控制方式:应和答

3. 移位

  • 逻辑移位:只是位置变化,移掉补0
  • 循环移位:最高/低位移入最低/高位
  • 祘术移位
    • 原码祘术移位:符号位不变,左/右移补0
    • 补码祘术移位
      • 补码祘术左移:各位左移,末尾补0,符号位发生变化时溢出中断
      • 补码祘术右移:保持符号位,复制符号位至最高位

4. 模型机时序系统

  1. 工作周期划分
    1. 取指周期 FT
    2. 源周期 ST
    3. 目的周期 DT
    4. 执行周期 ET
    5. 中断响应周期 IT
    6. DMA周期 DMAT

5. 微程序控制的基本思想:用微程序/指令完成一个节拍的操作将机器指令分解为基本的微命令序列,用二进制代码表示这些微命令,并编成微指令,多条微指令再形成微程序。每条机器指令对应一段微程序,固化在CPU中的控制存储器(CM)中。本质:不断读取CM中的指令实现操作控存CM

  • 一个单元的内容:一条微指令
  • 一个单元的地址:微地址

6.微程序执行过程:

  1. CM --取指微指令-> μIR ---> 译码器 --机器指令-> IR
  2. IR --机器指令的操作码-> 微地址形成电路 --微程序入口地址-> μMAR
  3. CM --根据入口地址取出的微指令-> μIR ---> 译码器 --机器指令-> 操作部件 (重复3直至微程序执行完毕)
  4. 回到步骤1,取出下一条机器指令

chap4 指令系统层

1. 8086 CPU 中,取指令和执行指令的功能分别由总线接口部件(BIU)和执行部件(EU)两个部件独立完成
2. 结果标识位

  • OF(OverFlow Flag)溢出标志 1溢出 0未溢出
  • SF(Sign Flag)符号标志 1负 0正
  • ZF(Zero Flag)零标志 1表示结果全0
  • CF(Carry Flag)进位标志 1表示有进位
  • IF(Interrupt Flag) 中断标志 1表示准许CPU响应可屏蔽中断

3.常用指令整理

  • MOV 传送指令
  • PUSH 进栈指令
  • POP 出栈指令
  • XCHG 交换指令
  • LEA 有效地址送寄存器
  • LDS/LES/LSS 地址指针送寄存器和段寄存器指令

LDS DEST, SRC

DEST <= SRCDS <= (SRC + 2) or DS <= (SRC + 4)

  • ADD 加法
  • ADC 带进位加法
  • INC 加1
  • SUB 减法
  • SBB 带进位减法
  • DEC 减1
  • CMP 比较

CMP DEST, SRC作用:DEST - SRC 不改变原操作数与目的操作数结果:ZF = 1 DEST = SRC 对于无符号数 CF = 0 DEST >= SRC CF = 1 DEST < SRC 对于带符号数 OF = SF DEST > SRC OF != SF DEST < SRC

  • MUL 乘法
  • DIV 除法
  • AND 与
  • OR 或
  • NOT 非
  • XOR 异或
  • TEST 测试

TEST DEST, SRC

作用 DEST ^ SRC (与)

  • SHL(SHift logical Left) 逻辑左移
  • SHR(SHift logical Right) 逻辑右移
  • SAL(Shift Arithmetic Left) 祘术左移
  • SAR(Shift Arithmetic Right) 祘术右移
  • ROL(ROtate Left) 循环左移
  • ROR(ROtate Right) 循环右移
  • RCL(Rotate Left through Carry) 带进位循环左移
  • RCR(Rotate Right through Carry)带进位循环右移
  • CLC(CLear Carry flag) CF置0
  • STC(SeT Carry flag) CF置1
  • CMC(CoMplement Carry flag) CF取反
  • CLD(CLear Direction flag) DF置0
  • STD(SeT Direction flag) DF置1

chap5 汇编语言层

1. 地址表达式AT1 DW ARYAT1存放ARY的偏移地址(16位)AT1 DD ARYAT1前两字节存放ARY偏移地址,后两字节存放ARY的段地址
2. 数值返回运算符

  • SEG 返回段基值
  • OFFSET 返回偏移地址
  • TYPE BYTE返回1,WORD返回2,DWORD返回4
  • SIZE LENGTH * TYPE
  • LENGTH DUP重复的次数,没有DUP返回1

3. 属性修改运算符 PTRMOV WORD PTR DA_BYTE[10], AX强制转换DA_BYTE为WORD类型,将AX赋值给他
4. 跳转指令

  • JMP 无条件跳转
  • JC CF = 1
  • JNC CF = 0
  • JE/JZ ZF = 1
  • JNE/JNZ ZF = 0
  • JA/JNBE CF = 0 && ZF = 0
  • JAE/JNB CF = 0 || ZF = 1
  • JB/JNAE CF = 1 && ZF = 0
  • JBE/JNA CF = 1 || ZF = 1
  • JG/JNLE SF = OF && ZF = 0
  • JGE/JNL SF = OF || ZF = 1
  • JL/JNGE SF != OF && ZF = 0
  • JLE/JNG SF != OF || ZF = 1

chap6 存储系统

1. DRAM重写:因为破坏性读出,只针对某个单元动态刷新:因为电荷泄漏,针对全部单元
cache组织 P278 (三种地址格式)

  • 直接映像
  • 全相联映像
  • 组相联映像

2. 磁介质写入:电磁转换读出:磁电转换
3. Cache工作原理:基于程序和数据访问的局部性
写方式写回法:块内容替换出cache是才写入主存写直达法:写入cache时同时写入主存
4. 虚存组织方式:页式虚拟存储器段式虚拟存储器段页式虚拟存储器

chap7 输入输出系统

1. I/O接口编址:与存储器统一编址,I/O端口单独编址(IN/OUT)
2.直接程序控制方式立即程序传送方式程序查询方式
3.程序中断方式中断入口地址形成方式

  • 查询法
  • 单独请求线编码
  • 向量中断法


又香又白人人夸