第二章 微型计算机系统基础
第二章 微型计算机系统基础
2.1指令系统
2.1.1程序设计语言
1、指令系统
指令:是要计算机执行某种操作的命令。
程序:是一组指令的有序集合,计算机通过执行程序能够完成用户所要求的功能。
指令系统:一台CPU能识别的所有指令的集合。
机器指令:计算机能直接识别的命令,是一串“0”和“1”表示的二进制代码。每条指令包括指令操作码和操作数。指令操作码规定指令的操作类型。操作数规定指令的操作对象。
2、汇编语言和汇编程序
机器语言:由机器指令构成的编程语言。
汇编语言:一种符号语言,使用英文缩写表示机器指令操作码,用人们熟悉的数码及数学符号等表示操作数、地址,便于理解和记忆。
汇编:使用汇编程序将汇编源程序自动翻译成机器语言。
3、算法语言
算法语言(高级语言):指按照实际需要规定好的一套基本符号,以及由这套基本符号构成程序的规则。编译系统包括编译程序和运行系统。
编译程序:将源程序翻译成目标程序。
运行系统:辅助目标程序运行。
2.1.2处理器体系结构
1、系列计算机
指令系统(指令集体系结构):是CPU物理硬件和上层软件之间的一个接口,也是编译程序开发者和CPU设计者之间的一个抽象层。
系列计算机:指具有相同的基本指令系统和基本体系结构,但具有不同组成和实现的一系列不同型号的机器。
2、CISC和RISC
复杂指令系统计算机(CISC):具有庞大的指令系统、较多的寻址方式、复杂的指令格式,CPU结构复杂、设计成本高。
精简指令集计算机(RISC):将那些不常用的复杂指令去除,硬件只支持常用的简单指令。通过减少指令种类、规范指令格式和简化寻址方式,以及存储器的并行处理,从而大幅度提高处理器的总性能。
2.2微型计算机系统结构
2.2.1微处理器与微型计算机
微处理器:将运算器和控制器集成在一起的*处理器部件。
微型计算机:指以微处理器为核心,配上内存储器、输入/输出接口电路及系统总线所组成的计算机。
微型计算机系统:指以微型计算机为中心,配以相应的外围设备、电源、辅助电路,以及控制微型计算机工作的系统软件所构成的计算机系统。
2.2.2微处理器中主要的寄存器
1、指令寄存器
指令寄存器:用来保存当前正在执行的一条指令。
指令译码器:对指令寄存器的操作码进行译码,以产生指令所要求操作的控制信号,送入控制总线。
2、程序计数器:指出下一条将要执行的指令在主存储器中的地址。
3、地址寄存器:用来保存CPU当前所访问的主存单元的地址。
4、数据寄存器(数据缓冲器):作为CPU和主存、外设之间信息的中转站,用以弥补CPU和主存、外设直接按操作速度上的差异。
5、通用寄存器:为运算器提供一个工作区,暂时保存操作数或运算结果。
6、程序状态字寄存器:用来保存挡墙各种运算状态条件,以及程序的工作方式。
2.2.3微型计算机中的存储器与地址分配
1、内存组织
微型计算机内存按字节来组织,每个字节有一个地址,如图所示:
2、地址分配
I/O端口:能够被CPU直接访问的寄存器。包括数据端口、状态端口和控制端口。对I/O端口的编址方式通常有两种:如图所示:
- 统一编址:将I/O端口和内存储器统一编址,即从整个内存空间中划出一个子空间给I/O端口,每个I/O端口分配一个地址,用访问内存的指令对I/O端口进行操作。(无须设置专门的I/O指令,访问外设接口和访问内存可以使用同样的指令。
- 独立编址:内存储器和I/O端口地址空间各自独立编址,即I/O端口地址空间与内存储器地址空间分开设置,互不影响。(需要对I/O端口的操作使用专门的输入/输出指令(I/O指令)。
3、堆栈
堆栈式按后进先出原则进行存取的存储结构。
2.2.4微机系统中采用的先进技术
1、流水想技术:为了提高微机的工作速度,将某些功能部件分离,使一些大的顺序操作分解为由不同功能部件分别完成、在时间上可以重叠的子操作。
2、哈佛结构:将指令和数据分别放在两个独立的存储器中,每个存储器独立编址、独立访问。
3、Cache技术:在CPU和主存之间设置一个高速度、小容量的缓冲存储器Cache,可以有效减少CPU的访问时间,减轻总线的负担。
4、虚拟存储管理技术:
虚拟存储器:通过操作系统和必要的硬件,使辅存和主存构成一个有机的整体,就像一个单一的、可供CPU直接访问的大容量主存。大量的程序和数据平时是存放在辅助存储器中的,等用时才调入内存,当程序规模较大、内存容量相对不足时,操作系统分批将程序调入内存运行。使程序员不在受到实际主存空间大小的限制。
5、多核处理器结构:指制作芯片时在单个处理器内部安排两个或多个基于微处理器的执行核或计算引擎。
2.3输入/输出系统
2.3.1信息交换方式
主机和外围设备之间的信息传送控制方式:程序查询方式、中断控制方式、直接存储器存取控制方式、通道方式、外围处理机方式
2.3.2程序中断方式
中断:当外设的数据准备就绪或完成操作后,通过I/O接口主动向CPU发送请求中断的信号,使CPU暂时中断目前正在执行的程序(主程序),转去执行I/O操作程序;等到中断服务程序结束之后,CPU返回被暂时中止的程序继续执行。
中断源:能够引发中断的事件。包括内部中断源(处理机内部引起)和外部中断源(外围设备引起)。
中断处理过程:中断请求、中断响应、中断处理、中断返回
其中,中断响应包括保护断点、保护现场、识别中断源
中断的过程如图所示:
2.4嵌入式系统
嵌入式系统是一种完全嵌入受控器件内部,为特定应用而设计的专用计算机系统。也是以应用为中心、可靠性、实时性、成本、体积功耗等指标的严格要求的专用计算机系统,用于对其他设备的控制、监视或管理等功能。
嵌入式系统由嵌入式微处理器、外围硬件设备、嵌入式操作系统及用户的应用程序组成,如图所示:
嵌入式系统的特点:专用性强、技术融合、集成度高、实时性好、资源受限、固化代码。
本地编译:在当前编译平台下,编译出来的程序只能放到当前平台下运行。
交叉编译:在当前编译平台下,编译出来的程序能够运行在另外一种体系结构的目标平台(目标机)上,但是该编译平台(宿主机)本身却不能运行。
第三章 8086微处理器
3.2 8086的存储器组织
一、寻址空间和数据存储格式
1、寻址空间
当存储器按字节编址时,若地址总线为n位,CPU寻址范围是2n字节
2、8086存储器的组织及寻址
(1)8086地址总线为20位,寻址能力为1MB,每个字节用唯一的一个地址码标识。即地址范围为0-220-1(0-1048575),采用十六进制表示为00000H-FFFFFH。
(2)虽然按照字节编址,但是实际一个变量可以是字节、字或者双字类型。
①字节数据(BYTE)
字节数据为8位,分为奇地址、偶地址。
②字数据(WORD)
字数据16位,存放在两个连续的字节单元中。
③双字数据(DOUBLE WORD)
双字数据占用4个连续字节单元,并规定最低字节地址为双字的地址
(3)8086系统把1MB的内存分为两个块,每个块分别为512KB,其中和数据总线D15-D8相连的块是高位地址块,有所有的奇地址单元组成(00001 00003 00005 …. FFFFF,奇地址块),其中和数据总线D7-D0相连的块是低位地址块,有所有的偶地址单元组成(00000 00002 00004 …. FFFFE,偶地址快)。
二、存储器的分段结构和物理地址形成
1、存储器的分段结构
(1)由于8086中的地址寄存器都是16位的,用户不能直接使用20位的物理地址,编程时需要使用逻辑地址来寻址存储单元。一般的逻辑地址有两个16位数构成,形式为:
段的起始地址 :段内的偏移地址
(16位段地址):(16位偏移量)
(2)1MB最多可以分为16个不重叠的段,每段长度为216=64KB,段内偏移量也是16位数表示。
2、物理地址的形成
每个存储单元都有一个唯一物理地址(00000H~FFFFFH),20位二进制数,该地址在指令执行时由地址加法器形成,并进行硬件寻址。地址加法器的具体做法:段地址左移4位,然后加上偏移地址就得到20位物理地址。
3、按照信息特征分段存储
存储器可以划分为:程序区、数据区、堆栈区
程序段中存储程序的指令代码;数据段和附加段中存储数据、中间结果和最后结果;堆栈段存储压入堆栈的数据或状态信息。
附录emu8086的简单使用
1、安装好后自动进入如下界面:
2、点击code examples,选择Hello,world
3、点击emulate
4、在弹出的窗口中single step单步运行,显示屏逐字打印出“Hello,World!”
5根据菜单可以查看程序运行情况