微机原理知识点纲要

Posted by Yuxuan Zhang on December 20, 2019

微机系统中的数制、编码和逻辑运算

  • 原码和反码
  • 补码
    • 编码规则
    • 转换方式
    • 表示范围
  • BCD码
    • 编码规则
    • 压缩BCD码非压缩(拓展)BCD码
  • ASCII码、奇偶校验
  • 补充
    • 冯诺伊曼计算机的基本原理是存储程序原理

微处理器的基本结构

  • 引脚定义(8088)

    @TEXTBOOK Page41

    Pin Defination
    A0~A19 20位地址总线
    AD0~AD7  
    MN/#MX  
    #RD  
    #WR  
    IO/#M  
    ALE  
    INTR  
    #INTA  
    #TEST  
       
       
       
    HOLD  
    HLDA  
       
  • 内部结构
  • 内部寄存器
    • 通用寄存器
      Register Description
      AX AH常被作中断号, AL常被用作中断传值, I/O操作时数据总线的输入输出均需用AL间接传递
      BX 唯一可以用作变址寻址寄存器的通用寄存器
      CX 使用LOOP和串操作时, CX存放剩余循环次数
      DX 暂无特殊用途
      Question: 上述描述是否正确?I/O操作中,设备的地址是否必须由DX给出?
      
    • 内部寄存器
      Register Description
      SP  
      BP  
      SI  
      DI  
    • 段寄存器
      Register Description
      CS  
      DS  
      SS  
      ES  
    • 标志位寄存器
      Bit Description
      OF 有符号运算溢出标志位
      DF  
      IF  
      TF  
      SF 符号标志位(等同于目标操作数寄存器最高位的值)
      ZF 如果运算结果为 0ZF 1
      AF  
      PF  
      CF 进位标志位
      Question: 上述标志位的顺序是否需要记忆?(P56 图2-15)
      
  • 最大模式和最小模式
    考试要求: 应该能简略描述两种模式的工作方式及其区别
  • 流水线

总线的概念和功能

  • 总线的基本功能
    • 传输同步
    • 总线仲裁
    • 出错处理
    • 总线驱动

微机系统的寻址方式

  • 立即寻址

    操作数均为CPU内部寄存器, 事实在编译成机器码后融入成了指令的一部分, 计算机直接执行.

  • 直接寻址

    寄存器的偏移地址直接显式给出(也可以是一个代号, 由编译器在编译过程中自动转化为常数)

    MOV AL, [1234H] ; 将1234H单元内数据复制到AL
    MOV AL, BUFFER  ; BUFFER 将被编译器展开为数字
    
  • 寄存器寻址
    • 寄存器间接寻址

      使用CPU内部寄存器存储的数值作为目标内存单元的地址, 注意, 只能使用 SI DI BX BP 中的一个作为寄存器间接寻址的指针.

      注意当使用 BP 作为间接寻址寄存器时, 默认段基地址为 SS , 其余三个间址寄存器均默认使用 DS. (考试容易出错)

      所有四个间址寄存器均支持段重设.

      MOV AL, [BX]    ; DS:BX 的 1Byte 数据送给 AL
      MOV AL, [BP]    ; SS:BP 的 1Byte 数据送给 AL
      MOV AL, SS:[BX] ; SS:BX 的 1Byte 数据送给 AL
                      ; (段重设)
      
    • 寄存器相对寻址

      可以在寄存器间接寻址的基础上加上一个偏移地址, 从而更加自由地使用指针.

      这个偏移地址通常是一个变量名称, 将间址寄存器视作偏移量, 即可达到数组指针的效果.

      ; DS:[BUFFER+BX] 的 1Byte 数据送给 AL
      MOV AL, BUFFER[BX]
      MOV AL, [BX]BUFFER  ; 等价
      MOV AL, [BUFFER+BX] ; 等价
      MOV AL, [BX+BUFFER] ; 等价
      MOV AL, [BX]+BUFFER ; 等价
      MOV AL, BUFFER+[BX] ; 等价
      ; BX(或其它等价间址寄存器)必须在方括号内
      ; 加号在不引起歧义(连词)的情况下均可以省略
      ; 不可以使用减法, 但是可能可以通过使BX溢出的方式等价地使用.
      
      Question: 上述示例代码最后一行注释是否正确?
      
    • 基址-变址寻址

      可以通过组合基址寄存器(BX/BP)和变址寄存器(SI/DI)的方法构造一个更加复杂的寻址方式, 需要注意的是, 使用时必须从两组寄存器中各选一个, 同一组寄存器不可以同时出现在一个组合中.

      正确:

      MOV AL,[BX][SI]
      MOV AL,[BX][DI]
      MOV AL,[BX+SI]
      

      错误:

      MOV AL,[BX][BP] ; 错!!!!!!
      MOV AL,[SI][DI] ; 错!!!!!!
      
    • 基址-变址相对寻址

      是上述基址-变址寻址和相对寻址的组合, 不做赘述.

  • MOV 指令

常用指令的用法和注意事项

  • ADD
  • SUB
  • MUL
  • IMUL
  • DIV
  • IDIV
  • SHL , SHR , SAL , SAR (Shift)
    • SHL , SHR

      按位左/右移动, 溢出位丢弃, 空缺位补0

    • SCL , SCR

      按位左/右移动, 溢出位进CF, 空缺位补0

    • SAL , SAR

      按位左/右移动, 最高位不动, SAL最低位补0, SAR次高位与最高位相同

  • ROL , ROR , RCL , RCR (Rotate)
    • SHL , SHR

      按位左/右移动, 溢出位丢弃, 空缺位补0

    • SCL , SCR

      按位左/右移动, 溢出位进CF, 空缺位补0

    注意: 循环/移位操作数除非为1, 否则必须使用CL传递.
    
  • 串操作指令系列
    • MOVS , MOVSB , MOVSW
    • SCAS , SCASB , SCASW
    • CMPS , CMPSB , CMPSW
    • REP , REPZ , REPNZ

汇编语言的语法和基本结构

  • 条件转移
    Command Jump Condition
    JCXZ CX = 0
    JG
    JNLE
    SF==OF AND ZF=0
    JGE
    JNL
     
    JL
    JNGE
     
    JLE
    JNG
     
    JO  
    JNO  
    JS  
    JNS  
    JA
    JNBE
     
    JAE
    JNB
     
    JB
    JNAE
     
    JBE
    JNA
     
    JC  
    JNC  
    JE
    JZ
     
    JNE
    JNZ
     
    JP
    JPE
     
    JNP
    JPO
     
    • 条件转移指令的转移范围
  • 中断
    • 中断向量表
    • 中断命令对堆栈段的影响

存储器的分类、存储器拓展、寻址译码电路设计

输入输出和中断技术

8253和8255芯片

8253芯片

寻址方式

A0 A0 选中
0 0 计数器A
0 1 计数器B
1 0 计数器C
1 1 控制寄存器

控制字格式

Bit 0 1 2 3 4 5 6 7
描述 选择计数器 计数器读写方式 计数器工作方式 BCD/BIN计数
定义 00 计数器0
01 计数器1
11 计数器2
11 NOP
00 锁存(保持)
01 仅低八位
10 仅高八位
11 先低后高
000 方式0
001 方式1
X10 方式2
X11 方式3
100 方式4
101 方式5
0 二进制计数
1 BCD计数

工作方式

  • 方式 0 计数结束中断
  • 方式 1 单脉冲发生器
  • 方式 2 周期脉冲发生器
  • 方式 3 方波发生器
  • 方式 4 软件触发方式计数
  • 方式 5 硬件触发方式计数

    8255芯片

寻址方式

8255有三组输入输出接口和一个控制寄存器, 因此只需两根地址线即可寻址.

A0 A0 选中
0 0 A组
0 1 B组
1 0 C组
1 1 控制寄存器

数模/模数转换芯片