1/55《微机原理与应用》备课笔记(上)10年3月1日第一章微型计算机系统导论1.1微型计算机系统组成1.1.1计算机系统组成计算机系统由硬件系统和软件系统组成。1、硬件:实物,看得见、摸得着计算机五大组成部分控制器运算器内部存储器(主存储器)输出设备输入设备CPU主机计算机硬件系统五大组成部分2、软件:信息1)系统软件——通用性2)应用软件——针对性3)支撑软件、数据库管理软件2/551.1.2微型计算机硬件系统组成一般的微机系统控制器运算器内部存储器(主存储器)输出设备输入设备I/O接口μP主板微型计算机硬件系统组成I/O接口运算器控制器CPU内存(ROM、RAMI/O接口输入设备(键盘、鼠标等输出设备(显示器、打印机等外部存储器(磁盘、光驱、U盘等过程控制通道主机外设电源硬件软件微型计算机系统系统软件(操作系统、语言编译等应用软件3/551.2微型计算机的总线结构微型计算机的结果特点就是采用总线结构。微处理器CPUROMRAMI/O接口外设:输入设备输出设备外存等ABDBCB典型的微机硬件系统总线结构1)什么是总线——用于传送信息的一组公共导线。2)总线的特点:(1)分时、共享(2)系统结构(互连)简单、易扩展(3)信号的传输控制管理较复杂,必须有一定的规范和协议微机采用以CPU为核心,其它部件全部通过总线与CPU相连,由CPU负责总线的传送控制管理。所有的数据都必须经过CPU,并由CPU控制传送过程。为了确保其它部件能够与CPU准确、有序地传送数据信息,通常采用三总线结构。3)三总线的定义:数据总线DB——传送数据的通道,双向;地址总线AB——指示与CPU传送数据的对象地址,单向;控制总线CB——控制数据传送的时间、方向,以及协调微机各部件的工作时序,双向。4/551.3微处理器组成ALUI1I2OAFRAPLAIDIRPCABDBRAMCPUABDB定时与控制微处理器结构1.3.1运算器ALU1.3.2控制器1.3.3内部寄存器1.4内部存储器概述1.4.1基本概念在计算机中,程序和数据均以二进制数码的形式存储在内存中。存储二进制数码的电路就是数字电路中介绍的寄存器和触发器。基本术语:bit——位。一位二进制数。一位触发器可保存一位二进制数码信息,称为1bit。Byte——字节。8位二进制数码。Word——字。16位二进制数码。存储单元————对应于高级语言中的变量;存储单元的地址——对应于高级语言中的变量名;存储单元的内容——对应于高级语言中的变量值。单元内容XXXX单元地址XXXX存储单元5/551.4.2存储器的组织存储器的组织结构如右图所示,由三部分组成。存储体,地址译码器读/写控制电路1.4.3存储器读写操作过程1)读操作过程:(内存总线CPU)○1AB提供内存单元地址译码器译码选中指定存储单元,○2/RD信号有效,将选中单元中的内容输出DB,选中单元内容不变。2)写操作过程:(CPU总线内存)○1AB提供内存单元地址译码器译码选中指定存储单元,○2/WR信号有效,DB上的数据写入(取代)选中的单元中内容。该单元中原来的内容消失。具有以上功能的存储器称为RAM.1.5微机工作过程1.5.1微机工作过程就是执行指令的过程。也就是逐条执行指令序列的过程。指令是预先存放在内存中的,所以首先要取指令,然后再执行指令。指令如何执行要根据地址译码器00单元01单元02单元03单元254单元255单元读/写控制00010203ABDBRDWR255254存储体存储器组织结构示意图6/55指令的内容。所以微机的工作过程就是:取指令,执行指令,取指,执行,取指,执行,。。。。。。。的过程。1.5.2指令格式操作码Opcod+操作数Operand操作码——指示CPU进行何种操作;操作数——被操作的对象。它可以是被操作的数本身,也可以是被操作数所在的地址。究竟是数还是地址,在操作码中说明。1.5.3工作过程举例以计算3+2=?为例,说明工作过程:1)计算机比人笨,需要人事先编程告诉它做什么,如何运行;2)编程序要根据指令系统(CPU懂得的语言)。就好比人讲话、写作必须按照某种语言规范,否则别人听不懂。3)程序:MOVA,3ADDA,2HLT4)机器码程序指令名称助记符机器码说明立即数取入累加器MOVA,31011000nB0Hn双字节指令,第一字节为操作码,指令功能:把第二字节n当做立即数取入累加器A中加立即数ADDA,200000100n04H双字节指令,第一字节为操作码,指令功能:把第二字节n当做立即数取入,与累加器A中内容相加,结果暂存A中暂停HLT11110100F4HCPU暂停运行第一字节是操作码,第二字节是操作数7/555)先把机器码程序放入内存,地址存储器中指令的机器码指令的助记符十六进制二进制000000000010110000MOVA,n01000000010000001103020000001000000010ADDA,n03000000110000001002040000010011110100HLT0500000101…………………6)执行程序:a)程序开始运行前,程序计数器PC的内容指向程序的指令第一字节;b)根据PC所提供的地址,到存储器中取指令第一字节CPU的指令寄存器IR;同时PC计数值自动加1;c)CPU执行该指令,具体动作是:控制器对该指令操作码进行译码,知道了该指令还有第二字节,因此首先执行取第二字节操作,产生各种执行指令所需要的控制信号,取回第二字节n后,再继续执行指令规定的操作,将第2字节A中暂存。同时PC计数值自动加1。到此,第1条指令执行完毕;d)根据PC所提供的地址,到存储器中取指令第一字节CPU的指令寄存器IR;同时PC计数值自动加1;e)CPU执行该指令,具体动作是:控制器对该指令操作码进行译码,知道了该指令还有第二字节,因此首先执行取第二字节操作,产生各种执行指令所需要的控制信号,取回n后,再继续执行指令规定的操作,将第2字节n和A中暂存数同时送入ALU进行加法运算,运算结果送回A暂存。同时PC计数值自动加1。到此,第2条指令执行完毕;f)根据PC所提供的地址,到存储器中取指令第一字节CPU的指令寄存器IR;8/55同时PC计数值自动加1;g)CPU执行该指令,具体动作是:控制器对该指令操作码进行译码,知道了该指令的功能是暂停CPU运行,执行该指令,暂停CPU的运行。9/55第二章计算机运算基础计算机只认识二进制数,故所有的信息和数据都必须采用二进制数码表示。如何表示?2.1计数制1)十进制2)二进制3)十六进制0~9,A~F,十六个字符表示。逢十六进一。用途:二进制数的简洁书写、记忆方法。特点:与二进制数之间转换极为方便,且一字节二进制数正好用二位十六进制数表示。书写规则:必须以0~9的数字符打头,以H字符结尾,例如:67H,3FH,0AH,0B7H,2.2计数制之间的转换(自学)2.3二进制编码数和码的一异同:相同点——都以数字形式读、写;不同点——数是自然的,是可以运算的,(如+、-、*、/等),码是人造的,不具有可运算性,但是可以处理。2.3.1二进制编码的十进制数最常用的二进制编码的十进制数是8421BCD编码,其编码规则如下表。十进制数BCD编码十进制数BCD编码0000081000100019100120010101030011101140100110050101110160110111010/55每一位十进制数用四位二进制编码表示,且逢十进一。多位十进制数的BCD码,123.45=[000100100011.01000101]BCD2.3.2ASCII码(美国标准信息交换代码)ASCII码是专门用于英文文件的计算机编码。用来把英文文本输入计算机,它包括了:1)英文字母和数字符2)标点符号和常用书写符号3)控制书写格式的控制符号,如回车、换行等每一个ASCII码由7位二进制编码组成,代表一个ASCII字符。ASCII字符共有128个=27。ASCII字符编码表参加教材。2.4二进制运算(自学)2.4.1算术运算2.4.2逻辑运算——按对应位相与、或、非、异或运算逻辑运算没有算术运算中的进位、借位关系。2.5带符号数的表示法2.5.1机器数与真值一个带符号数字包括数值位和符号位。在计算机中带符号数也用二进制表示为:符号位数值位+70===01000110B-70===11000110B真值机器数机器数——完全用二进制数码表示的,机器能够识别、存储的数;70111111111/55真值———机器数表示的实际数值。2.5.2机器数的种类和表示方法(以八位为例)1)原码表示法:[+70]原==01000110[-70]原==110001102)反码表示法:[+70]反==01000110==[+70]原[-70]反==10111001==对[+70]反码按位取反。3)补吗表示法:[+70]补==01000110==[+70]原[-70]补==10111010==[-70]反+1[-70]反==101110014)带符号数的表示范围八位原码的表示范围:-127~-0,+0~+127,有二个0。八位反码的表示范围:-127~-0,+0~+127,有二个0。八位补码的表示范围:-128~0~+127,只有一个0。2.5.3补码的意义1)模、同余、补数先以右图钟表为例,介绍模的概念:问:右图所指现在几点?3点?15点?都正确!在这个时钟系统中,3点==15点。将此现象抽象到数学中就可表示为:3==15(mod12)Mod12表示以12为模模——一个循环计数系统所能表示的数字个12369015182112/55数,或状态数。例如:右图时钟的模为12。同余——当任意二个数除以模n,其余数相等时,称这二个数对模n同余。例如:右图时钟中,3与15同余,记作:3==15(mod12)补数——当二个同余数的绝对值之和等于模n时,称这二个数对模n互补。例如:要从上图变化到下图,既可以在上图的基础上加7小时(顺时针旋转),也可以减去5小时(逆时针旋转。记作:3+7==3-5==10(mod12)即:+7==-5(mod12)可见:+7和-5对模12同余。同时,因为︱+7︱+︱-5︱==12(模),所以,称+7和-5对模12互补,或称+7和-5对模12互为补数。由上可见,任意二个互补数,符号必定相反。对一个模为n的循环计数系统,减去一个数就等于加上一个该数的补数。例如:8-4=8+8==16==12+4(mod12)其中-4和+8互为补数。二进制数的求补运算用数字逻辑电路很容易实现。所以,计算机中带符号数常用补码表示和运算。2)补码的意义为了用二进制表示带符号数,先设定规则:○1二进制补码的最高位为符号位,且0——正,1——负;○2应该符合加减运算规则○3数字0的补码为00000000。那么,对8为二进制补码:12369015182113/55数字0的补码=[0]补==00000000B数字+1的补码=[0]补+1==00000001B数字+2的补码=[1]补+1==00000010B数字+3的补码=[2]补+1==00000011B*******数字+127的补码=[126]补+1==01111111B数字+128的补码=[127]补+1==10000000B符号位改变,不符合前面所定规则,所以非法。因此,正数的表示范围是:0~+127。同理:数字0的补码=[0]补==00000000B数字-1的补码=[0]补-1==11111111B数字-2的补码=[-1]补-1==11111110B数字-3的补码=[-2]补-1==11111101B*******数字-127的补码=[-126]补-1==10000001B数字-128的补码=[-127]补-1==10000000B数字-129的补码=[-128]补-1==01111111B符号位改变,不符合前面所定规则,所以非法。因此,负数的表示范围是:0~-128。总之,8位补码的表示范围:-128~0~+127,16位