河北专接本微机原理笔记

微机原理

自动生成的md文档,很乱,建议点我主页下载思维导图

存储器

组成

  • 高速缓冲存储器(cache)

    • CPU和内存之间,提高CPU访问存储器的速度

      • 单向,只能从内存读给CPU

        • SRAM
  • 主存储器(随机存储器RAM)

    • 有一定的容量且速度较高的存储器作为内存,CPU可直接用指令对内存储器进行读写,半导体,掉电消失

      • 静态SRAM

        • 一般作cache,MOS管构成,不需要刷新电路就能保存数据,具有静止存储的作用,SRAM追求速度,一般容量比较小
      • 动态DRAM

        • 一般用作内存,DRAM的信息具有一定的时间性,超过一定时间数据就会消失,所以为了数据常在,需要周期性的对所在数据重写,容量大,廉价
  • 外存储器(只读存储器ROM)

    • CPU不能直接用指令对外存进行读写,要使用外存的信息必须先调入内存,容量大,速度低,存放暂时不用的文件,永久保存,掉电不消失

      • PROM

        • 一次性,写入之后不能更改
      • EPROM

        • 可以重复编程,可以多次改写内容,紫外线可擦除
      • EEPROM

        • 电可擦除只读存储器

存取周期

  • 取数时间
  • 启动间隔

容量

  • 2的地址线次方*数据线

    • 2的10次方=1K

      • 单元数*每个单元位数=总容量

SRAM6264

  • CE

    • CS非

      • 使能引脚(片选)

        • 满足对应的电平才能工作
  • WE非

    • 写入允许引脚
  • OE非

    • 读出允许引脚

Intel 2164

DRAM

  • D IN/D OUT 两条数据线(算容量是一位)

  • A0~A7八条地址线,行和列分时工作

    • 第一次送行第二次送列

      • 读写过程

  • RAS

    • 行地址选通信号
  • CAS

    • 列地址选通信号
  • WE非

    • 写入允许引脚

      • 0写1读
  • 2的16次方个单元

    • 64Kb

      • 分为4个128*128
  • 先送行再送列,就选中了某一个单元

    • 一次选中四个存储模块的相同行,每次刷新4*128=512个单元
  • 2ms刷新一遍,每个刷新周期15.625微秒

门电路

38译码器

  • 74LS138

全译码

  • 子主题 1

容量=末字节地址-首地址+1

I/O接口

组成

  • 子主题 4

    • 数据口
    • 状态口
    • 控制口

编址方式

  • 统一编址

    • I/O端口和内存单元统一编址,把IO端口当作内存单元对待,从整个内存空间中划出一个子空间给IO端口,用访问存储器的指令对IO端口进行操作

      • 优点:访问内存的指令访问IO,数据处理能力强,不区分内存和外设,可以减少引脚
      • 缺点:指令操作不清晰,IO端口占用了一部分内存空间
  • 独立编址

    • I/O端口编址和存储器编址相互独立,分开设置,互不影响,对IO端口的操作使用输入输出指令(I/O指令)

      • 优点:不占用内存空间,使用IO指令,程序清晰,容易看出是IO操作还是存储器操作
      • 缺点:需要特定的引脚区分内存和IO单元的访问

指令

  • IN AX/AL,DX/00-FFH
  • OUT DX/00-FFH,AX/AL

CPU与外设交换数据的方式

  • 来自CPU,速度较低,软件上都是用CPU执行程序完成的,硬件上读写控制信号地址信号都是CPU发出的,缺点:程序的执行速度限定了传送的最大速度

  • 程序控制方式

    • 无条件传送方式(同步),总是处于准备好的状态,软件和接口简单,效率低,用于简单外设,适用范围窄

      • 子主题 1
    • 查询传送方式(异步),传送前,CPU对外设状态检测,不是随时准备好,效率要求不高,外设要提供状态信息,效率低

    • 中断传送方式,CPU效率高,实时性好,速度快,缺点程序编制较为复杂

    • DMA传递方式

      • 外设和内存之间直接传递数据的方式,不需要CPU干预,也不需要软件介入,总线由DMAC控制,CPU暂时放弃总线控制权,内存和外设的地址和读写控制信号由DMAC提供

        • 周期挪用
        • 周期扩散
        • CPU停机方式(常用,简单)
      • 传送方式

        • 单字节传送

          • 成组传送

            • 请求传送
      • DMAC基本功能

        • 向CPU发出请求
        • 接收CPU发出的允许DMA相应信号
        • 寻址存储器即能输出地址信息和修改地址
        • 能像存储器和外设发出读写控制信号
        • 控制传送的字节数,判断DMA是否结束
        • DMA传送结束后,能结束DMA请求信号,释放总线,使CPU恢复正常工作

中断

中断过程

  • 中断请求

    • 外部中断源向CPU发出请求,通过INTR(可屏蔽中断请求引脚)或NMI(不可屏蔽)引脚引入CPU
  • 中断优判

    • 判定中断优先权,能实现中断嵌套
  • 中断响应

    • CPU每执行一条指令后查询是否有中断请求,并且此时CPU允许(IF=1)CPU相应中断

      • 响应中断后系统做的工作

        • 关中断(IF清零)

        • 保存FR和断点

          • 保存到堆栈,SP-6
        • 形成中断入口地址

  • 中断处理

    • 执行中断服务程序

      • 保护现场,先PUSH再POP,入栈保护现场
  • 中断返回

    • 在中断返回前,要开中断,以便再次相应中断,最后一条实指令IRET,弹出断点地址送IP和CS,和标志寄存器FR

优先级

  • 软件查询方式

    • 顺序查询,同时有中断请求先查谁执行谁
  • 硬件查询方式

    • 简单硬件方式,菊花链式或链式
    • 专用硬件方式—可编程的中断控制器

结构

  • 分类

    • 256个中断源

      • 硬件中断

        • 外部中断,由外部硬件产生

          • NMI,非可屏蔽中断

            • 不受IF控制,一般只有一个

              • 类型号为2
          • INTR,可屏蔽中断,受IF影响,IF等于1才能相应中断,0屏蔽

            • 中断类型是由外部读入的,7个总线周期

              • (1)执行第一个INTA周期(应答周期)(INTA是中断响应信号)

                • INTA应答
              • (2)执行第二个INTA周期,取中断类项码,CPU接到类型码后将他左移两位(乘四),形成向量表指针存入暂存器

                • INTA取类型码,
                  *4变成中断向量表地址
              • (3)执行一个总线写周期,将FR压栈,同时IF和TF为0,禁止其他可屏蔽中断进入,禁止出现单步中断

                • 压FR,关IF,TF
              • (4)执行一个总线写周期,CS压栈

                • 压CS
              • (5)执行一个总线写周期,IP压栈

                • 压IP
              • (6)执行一个总线读周期,从中断向量表中取出中断服务程序入口地址的偏移量送IP

                • 取入口地址IP
              • (7)执行一个总线读周期,从中断向量表中取出中断服务程序入口地址的段地址送CS

                • 取入口地址CS
      • 软件中断

        • 根据软件指令或者软件产生的,与外部电路完全无关

        • 软中断不受IF影响,无法用软件禁止,固定

          • 0号中断:除法出错中断
          • 1号中断:单步中断
          • 3号中断:断点中断
          • 4号中断:溢出中断
          • INT n :指令中断

中断向量表

  • 存放中断服务程序的入口地址,每个中断服务程序的入口地址都是由段地址:偏移地址,所以每个中断占用4字节,地址为00000h-003FFH共1KB,所以支持1KB/4B=256个中断

    • 中断类型码

      • 0号 00000-00003
        1号 00004-00007
        2号 00008-0000B
        N号中断 4N-4N+3

        • 中断类型码,位于向量表的位置是类型码*4

优先级

  • 内>外(NMI>INTR)>单步

    • 同类型类型号越小优先级越高

8259A可编程中断控制器

  • 特点

    • 8级优先权控制,级连可扩展到64级、

      • 9片8259A
    • 每一级中断可以屏蔽和允许

    • 在中断响应周期(第二个INTA非),8259A可以提供中断向量号

    • 8259A的工作方式可以编程

  • 引脚

    • CS非

      • 使能引脚(片选)

        • 满足对应的电平才能工作
    • D0-D7

      • 双向数据总线

        • 输出类型码
    • WR非

    • RD非

    • A0

      • 片内选择

        • 8259有两个端口地址一个偶地址一个奇地址,0为偶地址,1为奇地址
    • INTA非

      • 中断响应输入

        • 和CPU的INTA非相连接
    • IR0-IN7

      • 中断输入
    • INT

      • 中断输出

        • 通过INT引脚向INTR发出中断申请
    • SP非/EN非

      • 从程序/允许缓冲
    • CAS0-CAS2

      • 级连
  • IMR

    • 中断屏蔽寄存器

      • 8位二进制IMR的Dn位为1,IRn就被屏蔽
  • IRR

    • 中断请求寄存器

      • IRn中断请求,8位二进制IRR的Dn位为1
  • ISR

    • 中断服务寄存器

      • 正在服务IRn,8位二进制ISR的Dn位为1,
        在执行某一位中被另一位优先级高的打断,
        两位同时为1
  • 8259初始化

    • ICW1,芯片控制字,A0偶地址

    • ICW2,中断类型控制字,A0奇地址

      • 低三位为IR0-IR7

      • 高五位初始化写入

      • 高五位和低三位组成中断类型码

        • 此为IR0,后七位顺序加一
      • 类型码=ICW2高五位,IRn低三位

    • ICW3,主/从片初始化

      • 接入IRn位,主片ICW3的Dn位为1,从片ICW3低三位为n
    • ICW4,方式控制字

    • OCW1屏蔽操作命令字

      • 8位二进制屏蔽谁,那一位为1

        • 写IMR
    • OCW2中断方式命令字

      • 设置优先级和中断结束方式

        • EOI
    • OCW3状态操作命令字

      • 读取内部寄存器的值

        • 读ISR,IRR

芯片

二极管

  • 子主题 1

8255A可编程并行通信接口芯片

  • 组成

    • D0-D7

      • 数据总线
    • PA0-PA7

    • PC0-PC7

    • PB0-PB7

    • RESTE

      • 复位
    • A1,A

      • 片内寻址线(输入)

        • 00,A口

          • 01,B口

            • 10,C口

              • 11,控制口
    • C口PC7-PC4可以被A口征用

      • PC3-PC0可以被B口征用
    • A0接8086的A1,A1接8086的A2

    • A口有三个工作方式,B口两个,C口1个

  • 控制字

    • 各端口的方式选择控制字

      • 方式选择控制字

      • MOV AL,控制字(小于255)
        OUT 控制端口地址,AL

    • C端口按位置1/置0控制字

      • 最高位为0

        • 三位任意

          • D1-D3为端口为PC0-PC7

            • D0为要置的0或者1

  • 工作方式

    • 方式0

      • 基本输入输出

        • ABC上C下各端口独立,16种组合
        • 同步传送(无条件)和查询传送
    • 方式1

      • 必须在端口C的配合下工作

        • 三位控制A,另外三位控制B,并提供中断逻辑
  • 子主题 4

8253可编程定时/计数器

  • 组成

    • 通道0/1/2

      • CLK0

        • 输入基准信号

          • 计数对CLK计数
      • GATE0

        • 控制端(工作/不工作)
      • OUT0

        • 输出

          • 记满或者记不满由OUT输出状态
    • DB

      • 8位数据线
    • A1,A0

      • 片内寻址,4个端口地址

        • 计数器0,1,2,控制口
    • WR非/RD非

      • 读写使能
    • CS非

      • 片选信号
  • 启动方式

    • 软件启动(程序指令启动)

      • GATE保持高电平,向8253送入完整初值启动
    • 硬件启动(外部电路信号启动)

      • GATE有一个上升沿启动
  • 结构

    • 16位初值寄存器

      • 不变
    • 16位计数寄存器

      • 自减
    • 控制寄存器

    • 先减一,后判断是否等于0

      • 二进制最大初值0,65536次
      • 十进制(BCD)最大初值0,10000次
  • 初始化

    • 先写控制字

      • D7D6计数器选择

        • 123
      • D5D4读写

        • 00计数器锁存
        • 10只读写高八位
        • 01只读写低八位
        • 11先读写低八位再读写高八位
      • D3D2D1方式选择

        • 000-101方式0-5
      • D0

        • BCD

          • 0二进制

            • 1十进制(BCD)
        - 
      
    • 再写初值

      • 初值=f clk/f out=Tout/Tclk=f clk*Tout(f=频率,T=周期)
  • 工作方式

    • 方式0

      • 计数结束中断

        • 软件启动
    • 方式1

      • 单稳态触发器

        • 硬件启动

          • GATE端控制开启
    • 方式2

      • 频率发生器

        • 工作中高电平,最后一个CLK时输出负脉冲

    • 方式3

      • 方波发生器

        • 输出对称方波,前一半为高,后一半为低(单数就前多后少)

    • 方式4

      • 软件触发选通

        • 软件启动

    • 方式5

      • 硬件触发选通

        • 硬件启动
          GATE端控制开启

  • 连接图

  • 级联

指令

两个操作数不能同为存储器数

传送类指令

  • MOV AL,BL

    • 传送,BL的内容送给AL
  • PUSH AX

    • 压栈,SP-2,把AX的数据放入栈
  • POP BX

    • 出栈,从栈中弹出数据给BX,SP+2
  • XCHG AX,BX

    • 数据交换,AX,BX互换数据
  • LEA AX,[BX]

    • 把BX的地址给AX

算术运算指令

  • ADD AL,3H

    • AL=AL+3H
  • ADC AH,3H

    • 带进位的加法,AH=AH+3H+CF
  • SUB BX,3

    • BX=BX-3
  • SBB BX,3

    • 带借位的减法,BX=BX-3-CF
  • INC AL

    • AL=AL+1,自增
  • DEC AL

    • AL=AL-1,自减
  • NEG AL

    • AL=0-AL,取补,模-AL

      • 对80H和8000H,操作数没变化,但OF=1

        • 只要操作数不为0,CF=1
  • CMP OP目,OP源

    • OP目-OP源,根据结果置标志位

      • ZF=1,相等

        • CF=1,OP源大
  • MUL OP

    • 无符号乘法,AX=ALOP八位,(DX,AX)AXOP十六位

      • 没有用到高位CF=OF=0
  • IMUL OP

    • 有符号乘法,AX=ALOP八位,(DX,AX)AXOP十六位

      • 当AH/DX的每一位等于AL/AX的最高位,OF=CF=0
  • DIV OP

    • 无符号除法,AX/OP八位,AL=商,AH=余数 ,(DX,AX)/OP十六位,AX=商,DX=余数

      • 八位还是十六位根据OP

        • 子主题 1
  • IDIV OP

    • 有符号乘法,转为真值再计算,商和余都是负的
  • CBW

    • 将AL的最高位扩展到AH
  • CWD

    • 将AX的最高位扩展到DX

BCD运算指令

除了除法都是紧跟在运算指令之后

  • AAA

    • 对AL中两个非组合BCD码相加的和进行调整,结果存在AX中

      • 大于10,+6调整
  • DAA

    • 组合BCD加法调整
  • AAS

    • 非组合BCD减法调整指令
  • DAS

    • 组合BCD减法调整
  • AAM

    • 非组合乘法调整指令
  • AAD

    • 非组合除法调整(放在除法之前)

逻辑运算指令

除非外,其余指令会使OF=CF=0

  • AND OP目,OP源

    • 按位与运算

      • &

        • AND AL,0FH,高四位清零

          • 置“0”
  • OR OP目,OP源

    • 按位或

      • |

        • 置“1”
  • NOT OP

      • 按位取反

        • 只能是寄存器数或者存储器数,不能是立即数

          • 不影响标志位
  • XOR OP目,OP源

    • 按位异或

      • 相同为零,不同为1

        • 和0异或不变,和1异或取反
  • TEST OP目,OP源

    • 测试,进行与运算,不回送结果

      • 根据ZF标志位判定某位为1/0

移位指令

计数值只能是1或者CL

  • 非循环移位指令

    • 左移

      • 逻辑SHL OP目,计数值

        • 最高位给CF
      • 算术SAL OP目,计数值

        • 计数值只能是1或者CL
    • 右移

      • 无符号用逻辑SHR OP目,计数值

        • 左补0,最低位给CF
      • 有符号用算术SAR OP目,计数值

        • 左补最高位,最低位给CF
  • 循环移位指令

    • 不带进位

      • 左移

        • ROL OP目

          • 最高位给CF,然后移动到最后
      • 右移

        • ROR OP目

          • 子主题 1
    • 带进位

      • 左移

        • RCL OP目

          • 把CF移动到最后,最高位给CF
      • 右移

        • RCR OP目

          • 把CF移动到最后,最高位给CF

串操作指令

- MOVS OP目,OP源

	- 字符串传送指令

		- MOVSB

			- 字节传送

				- 把DS:[SI]的内容送给ES:[DI],SI+1,DI+1

					- DF=1,变为减法

		- MOVSW

			- 字传送

				- 把DS:[SI]的内容送给ES:[DI],SI+2,DI+2

					- DF=1,变为减法

- CMPS OP目,OP源

	- 字符串比较指令

		- CMPSB

			- 字节比较

				- DS:[SI]的内容是否等于ES:[DI]的内容

					- ZF=1,相等

		- CMPSW

			- 字比较

				- DS:[SI]的内容是否等于ES:[DI]的内容

					- ZF=1,相等

- SCAS OP

	- 字符串搜索指令

		- SCASB

			- 把AL中的内容和ES:[DI]指定的一个字节比较

				- ZF=1找到了

		- SCASW

			- 把AX中的内容和ES:[DI]指定的一个字比较

				- ZF=1找到了

- LODSB

	- 取字符串指令

		- LODSB

			- 把DS:[SI]的内容送给AL

		- LODSW

			- 把DS:[SI]的内容送给AX

- STOSB

	- 存字符串指令

		- STOSB

			- 把AL的内容送给ES:[DI]

		- STOSW

			- 把AX的内容送给ES:[DI]
  • 重复前缀指令

    • 无条件重复

      • REP

        • 若CX=CX-1不等于0重复,等于0跳出
    • 条件重复

      • REPZ/REPE

        • CX不等于0且ZF=1重复
        • 相等,重复
      • REPNZ/REPNE

        • CX不等于0且ZF=0重复
        • 不等,重复

转移指令

  • 寻址方式

    • 直接寻址方式

      • 段内直接寻址方式
      • 段间直接寻址方式
    • 间接寻址方式

      • 段内间接寻址方式
      • 段间间接寻址方式
  • 无条件转移指令

    • 段内转移

      • JMP OP

      • JMP SHORT OP

        • 段内直接短转移(8位)
      • JMP NEAR PTR OP

        • 段内直接近转移(16位)
      • JMP WORD PTR OP
        JMP BX

        • 段内间接转移(16位)
    • 段间转移

      • JMP 2000H:1000H

        • CS:IP
      • JMP FAR PTR OP

        • 段间直接转移

      • JMP DWORD PTR OP

        • 段间间接转移

          • 取新的CS:IP替换当前的
    • CALL OP

      • 调用指令

      • RET

        • 子主题 2

          • 子程序返回
  • 条件转移

    • J+标志位首字母 =1跳
      J+N标志位首字母 =0跳

      • JC

        • 进位为1跳

          • JNC
      • JZ

        • 结果为0跳
      • JO

        • 溢出跳
      • JP

        • 奇偶位1跳
      • JS

        • 符号位1跳
    • 无符号数

      • J+

        • A大于
        • B小于
        • E等于
        • N取反
    • 有符号数

      • J+

        • G大于
        • L小于
        • E等于
        • N取反

循环控制指令

  • 计数循环

    • LOOP 目标标号

      • CX不等于0循环
    • LOOPZ/LOOPE 目标标号

      • CX不等于0且ZF=1循环
    • LOOPNZ/LOOPNE 目标标号

      • CX不等于0且ZF=0循环
    • JCXZ 目标标号

      • CX=0跳到目标标号

处理器控制指令

  • 标志操作指令

    • CLC

      • CF=0

        • STC

          • CF=1

            • CMC

              • CF=CF取反
    • CLD

      • DF=0

        • STD
    • CLI

      • IF=0

        • STI
  • CPU控制指令

    • HLT

      • 处理器暂停指令
    • WAIT

      • 处理器等待指令
    • NOP

      • 空操作指令

        • 3个时钟周期
  • 输入输出指令

    • 用于IO设备,直接寻址范围00H-FFH,8位,间接0000H-0FFFFH,64K个

    • IN 累加器,端口

      • 输入指令

        • IN AL/AX,00H-0FFH

          • IN AL/AX,DX
    • OUT 端口,累加器

      • 输出指令

        • OUT 00H-0FFH,AL/AX

          • OUT DX,AL/AX
  • 中断指令

    • INTO

      • 溢出中断指令

        • OF=1产生一个中断
    • INT n(n是中断类型号)

      • 软中断指令
    • IRET

      • 中断返回指令

        • 压CS IP FR

111

  • ORG 立即数

    • 声明下一条指令的偏移地址
  • OFFSET 变量名或标号

    • 取偏移地址
  • SEG 变量名或标号

    • 取段首地址
  • TYPE 变量名或者标号

    • 返回类型值,1,2,4,-1,-2
  • LENGTH 变量名

    • 求长度
  • SIZE 变量名

    • =TYPE*LENGTH
  • 类型 PTR 表达式

    • 类型声明

伪指令

  • 等值伪指令

    • 符号名 EQU 表达式

      • 不占用存储单元

        • 可以在任意位置
      • 把符号名替换成表达式,等价define

  • 等号伪指令

    • 符号名=表达式

      • 不占内存单元
  • 数值表达式

    • 定义字符串

    • 变量名 DB,数据(一个或者多个)

      • DB字节
    • DW字

      • DD双字
  • ASCII字符串

    • DB定义

      • DATA DB ‘ABCDE’
    • 预留单元

      • DATA DB,1,?,3

        • 数据是残留数据
  • 重复定义子句n DUP(表达式)

    • C DB 100 DUP(0)

      • C单元开始定义100个0
    • 可以多次

      • C DB 3 DUP(1,2,3)

        • c单元开始定义1 2 3 1 2 3 1 2 3
    • 可以嵌套

      • C DB 100 DUP(5 DUP (1),2)

        • 定义5个1,剩下的2
    • 段定义

      • 段名 SEGMENT
      • 段名 ENDS
    • 段寄存器说明伪指令

      • ASSUME 段寄存器:段名
    • 子程序

      • 段名 PROC
      • 段名 ENDP
      • 宏名 MACRO
        指令

DOS系统功能调用

  • INT 21H

    • 系统功能调用
  • 键盘输入单字符,1号

    • MOV AH,1
      INT 21H

      • 键盘输入的单字符的ASCII码存入AL,
  • 输出单字符,2号

    • MOV DL,’A‘
      MOV AH,2
      INT 21H

      • 输出DL中的字符
  • 输出字符串,9号

    • BUF DB ’HELLO WORD$‘
      LEA DX,BUF
      MOV AH,9
      INT 21H

      • 字符串必须以美元符号$结尾
      • 输出DX字符串
  • 返回操作系统,4CH号

    • MOV AH,4CH
      INT 21H

      • 退出
  • 键盘输入字符串,0AH号

    • BUF DB 200,?,200 DUP(?)
      LEA DX,BUF
      MOV AH,0AH
      INT 21H

      • 缓冲区定义的第一个是字节数
        第二个预留,系统填写实际的字符数
        第三个开始存放字符串

汇编语言程序结构

  • 框架

    • DATA SEGMENT
      ;定义数据段
      DATA ENDS
      CODE SEGMENT
      ASSUME CS:CODE,DS:DATA
      START:MOV AX,DATA
      MOV DS,AX
      代码…
      MOV AH,4CH
      INT 21H
      CODE ENDS
      END START
  • 子主题 12

    • 自由主题

      • 子主题 1

        • 子主题 1

杂项

基础知识

  • 1

    • 微处理器

      • 1.微型计算机上的CPU,核心
        2.由运算器ALU,控制器CU,寄存器R组成

        • 高速缓冲
    • 微型计算机

      • 1.硬件系统,微处理器+主存+I/O接口芯片+系统总线
        2.裸机,微型机
    • 微型计算机系统

      • 微型计算机+软件系统(系统软件和应用软件)
    • 字长

      • CPU一次同时传送和处理的二进制位数
      • 位:bit
        字节:Byte,8bit=1B
        字:Wrod,16位机16bit=2B=1Word
    • 五大部件
      二进制
      设计思想

      • 运算器,控制器,存储器,输入输出设备

      • 物理,电,高低/开关

      • 存储程序

        • 自动执行程序
  • 2.21

    • CPU引脚分时复用

      • AB和DB共用引脚,在同一根线上,不同时间,出现不同类型的信息

        • 锁存器存地址
  • 时钟周期

    • 时钟周期是系统主时钟一个周期信号所持续的时间,大小等于频率的倒数,是CPU的基本时间计量单位

  • 总线周期(800ns)

    • 总线周期是CPU通过外部总线对存储器或者I/O端口进行一次读/写操作的过程,总线周期由若干个时钟周期(T)组成,大于等于4个

    • T1状态,CPU向多线复用总线上发送地址信息(A19~A0)指出要寻址的内存单元地址或者I/O端口地址,同时送出地址锁存信号ALE,在ALE的下降沿将地址信息存入锁存器

      • T2状态,CPU从总线上撤销地址,为数据传输做准备

      • T3状态,总线低16位出现CPU要读/写的数据

        • Tw,若外设或者内存来不及与总线交换数据,通过CPU的READY信号判定是否插入等待状态Tw

          • 查询READY信号的次数永远比插入Tw的次数多一次。
      • T4状态,总线周期结束,将数据读入CPU

  • 总线BUS

    • 计算机系统各部件之间传输信息的公共通道

      • 地址总线AB

      • 数据总线DB

        • 低八位,总是出现偶地址单元的数据,D0-D7
        • 高八位,总是出现奇地址单元的数据,D8-D15
      • 控制总线CB

  • 00000~003FFH

    • 中断向量表,能放256个中断
  • 引脚

    • BHE非,数据总线高八位(奇地址数据)是否有效,=0有效
    • AO,地址线最低位(偶地址数据)是否有效
  • 8086重新上电或者复位

    • 地址是FFFF0H
  • 8086有专用的IN、OUT指令

    • I/O和内存独立编址

      • I/O端口使用16位地址A0A15,0000HFFFFH

        • 可寻址空间为64KB
      • 内存A0~A19,20根,1MB

截图

- 
  • 自由主题
- 
  • 自由主题

    • 子主题 2

      • 子主题 1

        • 子主题 1

8086

8086

16位数据总线,20位地址总线,所以可以寻址2的20次方=1MB

  • 执行部件(EU)

    • 通用寄存器

      • 数据寄存器

        都可以拆解位AH,AL,BH,BL

        • 累加器AX

          • 可以拆解为AH,AL存放数据(拆解后不能放地址)
          • 乘除,外设交换信息
        • 基址寄存器BX

          • 间接寻址时放地址(取正常数据)
        • 计数寄存器CX

          • 循环,移位,涉及到次数
        • I/O间接寄存器DX

          • 外设交换信息存地址AX不够用时放高16位
      • 地址寄存器

        • 变址寄存器

          • 源变址寄存器SI

            SI和DI只在串操作中有区别

          • 目标变址寄存器DI

        • 指针寄存器

          • 堆栈指针寄存器SP

            • 可以自动修改

              • 堆栈指针偏移地址
          • 基址指针寄存器BP

            • (取堆栈数据)
    • 控制寄存器

      • 标志寄存器FR

        • 状态标志

          • CF,进位标志位,最高位有进位/借位CF=1

            • 无符号数
          • AF,辅助进位标志位,低四位向高四位有进位/借位AF=1

          • PF,奇偶标志位,低八位“1”的个数,偶数PF=1奇数PF=0

          • ZF,0标志位,运算结果为0,ZF=1

          • SF,符号标志位,运算结果最高位为1,SF=1

          • OF,溢出标志位,超出运算范围,OF=1

            • 有符号数

              • 最高位与次高位同时进位借位不溢出,单独借位溢出
        • 控制标志

          • IF,中断允许标志位,控制中断,IF=1允许中断,IF=0禁止
          • DF,方向标志位,串操作方向起始位,DF=1逆向,DF=0正向
          • TF,单步标志位,陷阱标志位,TF=1,CPU进入单步工作方式,单步中断
    • 算数逻辑单元ALU

      • 可完成8/16位算术逻辑运算,溢出放到FR
    • 内部控制逻辑电路

      • 产生逻辑

        • 从指令队列缓冲器中取出指令,对指令进行译码,并产生各种控制信号,控制各部件的协同工作以完成指令的执行过程。
  • 总线接口部件(BIU)

    • 段地址寄存器

      • 代码段CS

        • IP(指针)
      • 数据段DS

        • SI,DI,BX
      • 堆栈段SS

        • SP(指针),BP
    • 控制寄存器

      • 指令指针寄存器IP(16位)

        • 不能直接访问,CPU专用

        • 存放下一条指令的偏移地址

          • BIU自动修改IP的内容
    • 地址加法器(20位)

      • 逻辑地址向物理地址变换

        逻辑地址=段地址:偏移地址

        • 物理地址=段基址x16+偏移地址
    • 指令队列缓冲器(6字节)

      • 暂存预取指令,放入6字节指令队列

        • 所以BIU和EU不同步工作,BIU提前预取指令
    • 总线控制逻辑

      • 引脚

引脚

  • 输出

  • 输入

  • 双向

    • 数据线
  • 三态

    • 高电平(1)
      低电平(0)
      高阻态()
  • ALE:高电平有效,工作时输出1
    RD非,低电平有效,工作时输出0

    • 有帽子,为非,0有效

引脚

  • VCC,电源

  • GND,接地

  • AD15~AD0,地址/数据复用引脚

  • A19A16/S6S3地址/状态复用引脚(输出)

  • BHE非

    • 高八位数据是否有效引脚

      • BHE非,数据总线高八位(奇地址数据)是否有效,=0有效
  • AO,地址线最低位(偶地址数据)是否有效

  • NMI

    • 非屏蔽的中断引脚(输入)

      • 边沿触发
  • INTR

    • 可屏蔽中断请求(输入)

      • IF=0屏蔽

        • 电平触发
  • RD非

    • 子主题 1
  • CLK

    • 时钟输入引脚

      • CLK引入的时钟
  • RESET

    • 复位引脚

      • 高电平有效

        • 维持4个时钟周期有效

          • 复位信号一出现,CPU立即结束当前操作,进入复位操作,将标志寄存器(FR)、IP、DS、SS、ES清零,指令队列清空,CS置为0FFFFH

            • 第一条指令的地址是0FFFF0H
  • READY

    • 准备好引脚,输入,高电平有效
  • TEST非

  • MN/MX非

    • 最小最大模式控制引脚,输入

      • MN给1是MIN最小,MX非给0是MAX最大

  • M/IO非

    • 存储器或I/O端口访问选择信号,三态输出

      • 判断数据是来自存储器还是外设
  • RD非

    • 读信号,三态
  • WR非

    • 写信号,三态
  • ALE

    • 地址锁存允许信号,单向三态,输出
  • DEN非

    • 数据允许信号

      • 和数据同属出现,三态输出
  • DT/R非

    • 数据发送/接收 控制信号
  • 中断控制信号引脚

    • INTR

      • 可屏蔽中断 请求信号

        • INTA非

          • 中断响应信号

            • 输出三态

              • INTR申请之后通过INTA非应答
    • NMI

      • 不可屏蔽中断 请求信号
  • DMA控制信号引脚

    • HOLD

      • 总线请求信号

        • 外部向CPU发出申请能不能使用总线
    • HLDA

      • 总线请求响应信号

        • 子主题 1
  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值