【微机原理与接口技术】学习笔记1 微型计算机的结构系统和发展概况

文章目录

  • 一、数的表示方法
    • 1.1 进位计数制(略)
    • 1.2 进制编码(略)
    • 1.3 带符号数的表示方法
      • 1.3.1 符号表示法
      • 1.3.2 原码、反码和补码
        • (1) 原码
        • (1) 反码
        • (3) 补码
    • 1.4 实数的表示(略)
  • 二、计算机的基本结构
    • 2.1 计算机的基本结构(略)
    • 2.2 计算机软件
      • 2.2.1 指令和程序
      • 2.2.2 指令的组成和机器码
      • 2.2.3 汇编语言 Assemble Language
    • 2.3 高级语言 (略)
    • 2.4 操作系统 (略)
  • 三、微型计算机结构和系统
    • 3.1 微处理器(略)
    • 3.2 存储器
    • 3.3 输入输出设备和接口电路
      • 3.3.1 I/O设备
      • 3.3.2 接口电路(Interface)
      • 3.3.3 总线

一、数的表示方法

1.1 进位计数制(略)

学过了,跳过。

1.2 进制编码(略)

这些都学过了,跳过。


1.3 带符号数的表示方法

1.3.1 符号表示法

做法:无论多少位,最高位做符号位。是最早最容易想到的做法。

例:对于长度 8 8 8 位的数( D 7 D_7 D7 D 0 D_0 D0 ),用 D 7 D_7 D7 位作符号位, D 7 = 1 D_7=1 D7=1 表示负数, D 7 = 0 D_7=0 D7=0 表示正数。如:0101 1101B = +931101 1101B = −93
对于长度 16 16 16 位的数( D 15 D_{15} D15 D 0 D_0 D0), D 15 = 1 D_{15}=1 D15=1 表示负数, D 15 = 0 D_{15}=0 D15=0 表示正数。

带符号位的数称为机器数,它表示的实际数值称为机器数的真值

1.3.2 原码、反码和补码

(1) 原码

正数的符号位用 0 0 0 表示,负数符号位用 1 1 1 表示,其余位为数值,这种表示方法称为原码。就是上面的符号表示法。例:

  • X=+105[X]原=0110 1001B
  • X=−105[X]原=1110 1001B

原码简单易懂,与真值换算很方便。若要进行两个异号数相加,或两个同号数相减的运算,就要做减法操作。一般的计算机中没有减法运算部件,减法运算也要用加法部件实现,因此要引进反码和补码

(1) 反码

正数的反码与原码相同。例:

  • [+4]反=0000 0100B
  • [+31]反=0001 1111B
  • [+127]反=0111 1111B (最大值)

负数的反码为它的正数原码按位取反。

  • [−4]反 = 1111 1011B
  • [−31]反 = 1110 0000B
  • [−127]反 = 1000 0000B (最小值)

8 位二进制数的反码范围为 −127~+127

带符号数用反码表示时,最高位为符号位,当它为正数时,后 7 位为真正的值;它为负数时,后7位要取反后才能得到真正的值。比如说, [X]反=1001 0100B,[X]真值=−[110 1011]= −107

(3) 补码

正数的补码同原码;负数的补码为其反码加1,即为它的正数原码按位取反再加1。例:

  • [+4]原=0000 0100B = [+4]反 = [+4]补
  • [−4]原=1000 0100B
    [−4]反=1111 1011B (正数 4 按位取反;或者 [-4]原 后七位按位取反)
    [−4]补=1111 1100B (反码+1)
  • [+127]原=0111 1111B = [+127]反 = [+127]补
    [−127]原=1111 1111B
    [−127]反=1000 0000B
    [−127]补=1000 0001B
  • [−128]补=1000 0000B

补码可看成“带符号位的数”,符号位也参加运算。要减去一个数,只要加上其补码。我们有 [A+B]补=[A]补+[B]补[A-B]补=[A]补+[-B]补 。如,要做减法 7−19 ,可用 7+[−19]补来完成。

  • [7]补 = 0000 0111B; [+19]补 = 0001 0011B
  • [−19]补 = 1110 1101B
        0000 0111B   	    -------- [7]+	1110 1101B   	    -------- [19]1111 0100B = F4H	-------- 和的补码
    
  • 和的补码 = F4H = 1111 0100B
    和的反码 = F3H = 1111 0011B
    和的原码 = 1000 1100B,其真值为 -12
  • 可见,7 +(−19)= −12,答案正确。

1.4 实数的表示(略)

见计算机组成原理。


二、计算机的基本结构

2.1 计算机的基本结构(略)

跳过。

2.2 计算机软件

跳过。

2.2.1 指令和程序

下面是一些概念:

  • 指令—用命令形式表示让计算机执行的各种操作
  • 指令集 — 一台计算机所能识别和执行全部命令称为该机器的指令集Instruction Set)或指令系统。
  • 不同计算机有不同的指令系统,包含的指令数也不一样。
  • 程序—让计算机求解一个数学问题或者完成一项复杂工作前,要把解决问题的过程分解为若干步骤,并用指令序列来表示,以便控制计算机完成这项任务,这样的指令序列就叫程序(Program)。

2.2.2 指令的组成和机器码

计算机只认得二进制,因此指令都用二进制表示,称为机器码(Machine Code)。

指令由操作码Opecode)和操作数(Operand)组成,操作码说明计算机执行什么操作操作数指出参加操作的数的本身操作数所在的地址。这样看来,指令很像语法中的动宾结构。

例如,在 8086 CPU 中,把数字 1200H 取到累加器 AX 中去的指令的机器码为:
【微机原理与接口技术】学习笔记1 微型计算机的结构系统和发展概况_第1张图片
操作码 B8H ,规定了要从后面两个字节单元取出一个 2 2 2 字节数( 1200H ),送到累加器 AX 中的操作。

需要记住的是,这里的数据存放——低字节放在前面,高字节放在后面,或者说,大多数计算机系统中,低位字节放在低地址,高位字节放在高地址

初期,就是用指令的机器码直接来编制程序的,处于机器语言阶段。机器码是一连串的0和1组成的代码,输入计算机时,由纸带穿孔机在纸带上凿孔,有孔表示 1 1 1 ,无孔表示 0 0 0 。这种代码不好理解和记忆,还很容易出错,所以最开始,编程是一件极其繁杂而困难的工作。

2.2.3 汇编语言 Assemble Language

汇编语言用助记符Mnemonic)代替二进制的机器码,用指令功能的英文缩写代替操作码,用符号代替地址,用寄存器存放地址等,用汇编语言程序编程比机器语言方便。

例如,对于8086:

  • 数据传送指令用助记符 MOV(Move)
  • 加法指令用 ADD(Addition)
  • 跳转指令用 JMP(Jump)
  • RESULTSUM 等符号来表示存储单元地址

1200H 送到累加器 AX 中去的指令为:MOV AX,1200H

例:编写求解 2+3=5 的汇编语言程序,要求将和存入 SUM 单元。程序如下:

MOV   	AX, 2     ;累加器AX←2
ADD   	AX, 3     ;AX←AX+3
MOV 	SUM, AX   ;结果单元SUM←和数5

计算机只认识由0、1组成的机器码。因此,汇编语言程序必须翻译(用 MASM )成机器码表示的目标程序Object Program),才能被计算机识别和执行。能让计算机自动完成翻译工作的程序称为汇编程序(Assembler)。

汇编语言程序比机器语言程序进了一大步,但是其本质仍然是助记符,和机器语言一一对应,因此汇编语言程序语句很多,编程工作很繁琐。这是它的不足之处。而且,汇编语言的针对性很强,在某种机器上编写的汇编语言程序,不能直接在别的机器上运行,无法跨平台,程序员必须十分熟悉CPU的指令系统,于是,各种高级语言应运而生。

2.3 高级语言 (略)

2.4 操作系统 (略)


三、微型计算机结构和系统

微型计算机与冯·诺依曼结构计算机无本质区别。主要不同在于:CPU 采用集成化的微处理器各部件通过总线相连所有外设都应通过I/O接口电路才能连到 CPU。微型计算机基本结构框图:
【微机原理与接口技术】学习笔记1 微型计算机的结构系统和发展概况_第2张图片
虽然上图不是放之四海而皆准,架构不完全一样(还有哈佛结构),但是我们可以看出,CPU可以直接访问内存存储器,访问IO接口,而且我们的CPU不可以直接访问IO设备。这是我们需要知道的,而且是我们课程的核心内容。

3.1 微处理器(略)

3.2 存储器

存储器用来存放数据和指令,其内容以二进制表示。每个单元可存 8 8 8 位( 1 1 1 字节)二进制信息。即一个存储器单元为一个字节。

为了正确存取内存单元,需要为每个单元编1个存储器地址(Memory Address)。地址是不带符号整数,从 0 0 0 开始,顺序加 1 1 1 ,到最大值后又回 0 0 0

例如,CPU 16 16 16 根地址线 A 15 A_{15} A15 A 0 A_0 A0 ,可表示的地址范围为 2 16 = 65536 2^{16}=65536 216=65536 个单元,地址编号为 0 0 0 65535 65535 655350000~FFFFH (最后的 H 表示是十六进制的 )

1 1 1 个存储单元中存放的信息称为该存储单元的内容。 例如,下图中, 地址 0003H 单元中存放内容为 3CH ,记作: (0003H)= 3CH。 同理 (1200H)= 8FH
【微机原理与接口技术】学习笔记1 微型计算机的结构系统和发展概况_第3张图片
从上图中,还有如下例子:

  • 0000H 单元开始存放 3 3 3 个字节数据依次为 B8H02H00H
  • 1200H 开始存放字数据 A28FH(1200H)=A28FH
  • 1202 开始存放的字数据1234H,(1202H)字=1234H
  • 如果是32位机,1200H单元开始存放的双字数据为1234 A28FH

地址与内容的关系:

  • 16 16 16 位机,数据以字(Word,W)为单位,用两个字节单元存放一个字,并规定:低位字节在前,高为字节在后。而且,整个数据的地址为最低字节的地址。极少数系统中,字数据也会按高字节在前、低字节在后的规则存放;
  • 32 32 32 位机中, 32 32 32 位数应以 4 4 4 字节双字来表示。

3.3 输入输出设备和接口电路

3.3.1 I/O设备

一些概念:

  • 输入—将原始数据和程序传送到计算机。
  • 输入设备:键盘、鼠标、扫描仪、CD-ROM、数码相机。
  • 输出—将计算机处理好的数据以各种形式(数字、字母、文字、图形、图像和声音等)送到外部。
  • 输出设备:激光打印机、显示终端、七段发光二极管显示器、液晶显示器、扬声器。
  • 磁盘和磁带,既可看成存储设备,也可当成I/O设备

3.3.2 接口电路(Interface)

I/O设备种类繁多,其速度、信号电平与主机不一致,要通过接口电路连到计算机接口电路是主机和外设间的桥梁,提供数据缓冲驱动、信号电平转换、信息转换、地址译码、定时控制等各种功能。声卡和显卡都是接口电路。

各厂商都有与自己CPU配套的外设接口芯片,例如,后面将分别学习的 Intel 可编程接口芯片

  • 8255A 通用并行I/O接口
  • 8253/8254 计数器/定时器
  • 8259A 中断控制器
  • 8251A 串行通信接口
  • 8237A DMA 控制器

目前,它们已被集成到 32 32 32 位、 64 64 64CPU 的配套芯片中,其功能、控制方法和地址等均向前兼容

3.3.3 总线

CPU和各I/O接口芯片的内部各功能电路的连接,到计算机系统内部的各部件间的数据传送和通信,乃至计算机主板与适配器卡的连接,以及计算机与外部设备间的连接,都要通过总线(Bus)来实现。

总线标准,是设计计算机部件、I/O设备甚至计算机软件的依据。
按总线中传送的信息分为:地址总线,数据总线,控制总线,还有电源和地。

  • 地址总线(Address Bus):用于传送地址信息,是单向总线总从CPU指向存储器或I/O。CPU通过地址总线对存储器或I/O端口寻址。
    地址总线数目决定了CPU能直接寻址的范围

    • 8 位CPU,如 8080 ,有 16 根地址线 A15~A0 ,可直接寻址的范围为 2 16 = 65536 2^{16}=65536 216=65536 字节单元,即 64KB
    • 16 位CPU如 8086/8088 ,有 20 根地址线 A19~A0 ,最大可寻址 2 20 = 1048576 2^{20}=1048576 220=1048576 字节单元,即 1MB
    • 8028624 根地址线,可直接寻址 2 24 = 16 M B 2^{24}=16MB 224=16MB
    • 8038632 根地址线,可寻址 2 32 = 4 G B 2^{32}=4GB 232=4GB
    • Pentium 以上CPU有 36 根地址线,寻址范围高达 2 36 = 64 G B 2^{36}=64GB 236=64GB
  • 数据总线(Data Bus):用于传送数据信号的总线,是双向总线,CPU既可以通过它从存储单元或I/O端口读取数据,也可将数据传送到存储单元或I/O端口
    数据总线的多少决定了一台计算机的字长16 位机一次可并行传送16位数据32 位机则可传送32位数据。

    • 80868088 都是16位CPU。但8088内部有16根数据线,外部只有8根,故称它为准16位CPU。
    • 80386、80486Pentium 等为CPU的微型计算机都是 32 位机。
    • 现在的主流微型机是64位机。
  • 控制总线(Control Bus):是CPU对存储器、外围芯片和I/O接口的控制以及它们对CPU的应答、请求等信号组成的总线。例如:

    • CPU要从存储器或I/O端口读出数据时,就要向外部发读( R D ‾ \overline {RD} RD )信号。
    • CPU想向外部写入数据,则要发写( W R ‾ \overline {WR} WR )信号。
    • 控制存储器和外设的信号 M / I O ‾ M/\overline {IO} M/IO访问存储器时该信号为高电平,访问I/O端口时则为低电平。

你可能感兴趣的:(微机原理)