第1章基础知识内容安排一.微型计算机系统组成二.微型计算机主机结构三.微机中数的表示方法四.微机中常见的编码五.微机中的运算电路及补码运算外围设备(输入/出设备和过程控制I/O通道)计算机电源硬件软件系统软件(操作系统、监控程序等)应用软件§1.1微型计算机系统组成§1.2微型计算机主机结构主机CPU内存(主存)输入/出接口总线地址译码电路总线结构,系统中各部件“挂”在总线上主机结构突出特点是模块化结构CPU地址译码电路I/O设备RAMROM地址信息片选信号I/O接口DBABCB1.CPU(中央处理单元)MPU(微处理器)嵌入系统中与其他电路及芯片组合称为CPU微机的核心部件,主要由运算器和控制器构成•运算器(ALU)主要负责算术运算和逻辑运算•控制器由指令寄存器、指令译码器和控制电路组成并按指令的要求对微机各部件发出相应的控制信息2.内存储器(主存)例如:01001101用于“记忆”信息的存储元件,均采用集成度高,容量大,体积小,功耗低的半导体存储器芯片字节(Byte)基本单位,规定8位二进制数称为一个字节CPU执行访问内存的指令时,按指定的单元地址对相应存储单元进行“读、写”操作。一个字节数据空间称为一个存储单元,其中每一位称为1Bit微机的存储器是由许多存储单元集合而成,每一个存储单元唯一的对应一个单元地址,也称为存储器的物理地址,微机中的地址一般都用十六进制数表示,如30H存储单元读写取数存数存储器容量(s)=存储单元数(p)×数据位数(i)1024B=1KB1024KB=1MB1024MB=1GB1024GB=1TB字长:一个基本信息单位所占用的最大二进制位数字:微机一条指令所能处理的一个基本信息单位例如:一个数据(25、35.67、-0.0038……;)一个字符(A、a、#、……)等均称为一个字字长越长的微机,其运算速度越快,数的表示范围越宽,数据的运算精度越高,机器的整体功能越强字长是微机的主要性能指标之一!80386、80486、80586(pentium)为32位机,2001年推出的Itanium为64位机51单片机字长为8位,称为8位机8086/8088CPU字长为16位,称为16位机3.总线根据传送信息的内容与作用不同,总线分为:数据总线DB(DataBus)地址总线AB(AddressBus)控制总线CB(ControlBus)传送信息的公共导线①数据总线DB:双向传输数据信息其宽度(根数)与MPU提供的数据线的引脚数有关,表示微机的字长②控制总线CB:传送各种控制信号和状态信号对于每一根来说是单向传送的③地址总线AB:CPU执行指令时,用于单向传送地址信息地址信息操作数在存储器中的地址信息指令代码在存储器中的地址信息AB的宽度决定了微机系统的最大寻址能力最大寻址空间=2N,其中N为AB的宽度51单片机N=16最大寻址空间=216=65536B=64KB8086/8088CPUN=20最大寻址空间220=1MB例:4.地址译码电路凡是“挂”在总线上部件都被系统分配一个地址域,CPU访问某部件时,由指令提供被访问部件的地址信息,该地址信息经地址译码电路译码后唯一的产生一个选通信号(也称片选信号),将被选中的部件“门”打开,使得数据得以传输5.接口接口是主机与外设连接的必然通路,是必经的“桥梁”。每个接口可包含若干个端口,每个端口对应一个端口地址,可由指令按地址访问端口接口功能:①隔离主机与外设之间的数据②向外设传输控制信号和接收外设的状态信号③数据类型的转换§1.3微机中数的表示方法定点法浮点法定点机:用定点表示的微机(51单片机)定点法表示整数,浮点法表示实数浮点机:用浮点表示的微机(PC机)1.定点表示(单片机)纯整数形式纯小数形式定点机中通常采用纯整数形式,以8位机为例,用8位二进制数表示一个纯整数,格式如下:符号Pf为符号位:0—正数,1—负数在微机中,对于带正、负号的数,其符号被数码化了,这种表示数据的形式称为机器数注:机器数并不是指微机中的数2.浮点表示(必须带小数点)对于任意一个二进制数N总可以表示为:N=S×2P其中S是数N的尾数,P是数N的阶码。格式如下:Pf阶码PSf尾数SPf为阶码的符号位,0-正,1-负Sf为尾数的符号位,0-正,1-负111.0101B=1.110101×210B=0.111010×211B当阶码P取不同数值时,尾数小数点位置是可以变动的,因此称为浮点法数。为了使微机在运行过程中不丢失有效数字,提高运算精度,一般都采用二进制浮点规格化数,所谓浮点规格化是指1/2|S|1;即小数点后面的一位必须为1,小数点前面一位为0例:若有二进制数0.0011010B,规格化后的形式为0.11010×2–10B用8位二进制数的格式将其表示为浮点数:注:规格化后尾数超出三位小数部分自动舍去,所以用浮点数表示有可能产生误差设若有m位阶码,n为尾数,则数N的表示范围为:(21)(21)22||2(12)mmnnN注:1)规格化后尾数超出三位小数部分自动舍去,所以用浮点数表示有可能产生误差。2)当微机字长确定以后,阶码与尾数所占的位数由操作系统决定。当阶码越长则尾数越短,数的表示范围越宽,但精度低;当阶码越短则尾数越长,数的表示范围越窄,但精度高练习题将下列十进制数用浮点表示法表示:①-3.756②+0.573答案:①00101111②00000100微机编码:用规定好的二进制组合表示数据、字符、汉字等信息§1.4微机中常见的编码1.ASCII码(字符编码)ASCⅡ码是美国标准信息交换码,有两种版本问题:对于一些数据、字符、汉字等信息在微机中如何表示?96个图形字符10个十进制数字52个英文字符34个其他字符32个控制字符回车符、换行符、退格符设备控制符和信息分隔符等7位二进制数表示一个字符,早期用于电信行业,后被移植入微机,可表示128个字符采用8位二进制数表示一个字符的ASCⅡ码,最高位为扩展位,最高位若为0,则为基本ASCⅡ码。最高位为1,则为扩展的ASCⅡ码,一般用来表示键盘上不可显示的功能键编码ASCⅡ码表中:A~Z的ASCⅡ编码是41H~5AHa~z的ASCⅡ编码是61H~7AH0~9的ASCⅡ编码是30H~39H在微机中用二进制数表示十进制数的方法很多,常用的有8421BCD码,即用四位二进制数表示一位十进制数,因组成它的4位二进制数码的权为8、4、2、1而得名。(参看8421BCD码表)2.BCD码(十进制数的二进制编码)8421BCD编码表注:4位二进制数称为一位8421BCD码字BCD码与非BCD码00000B10001B20010B30011B40100B50101B60110B70111B81000B91001BA1010BB1011BC1100BD1101BE1110BF1111B非BCD码冗余码非法码BCD码注:在0~9之间十进制数的BCD码与十六进制是相同的,10以后的称为非BCD码压缩BCD码与非压缩BCD码压缩BCD码:是一个字节中存放两个十进制数字位如:将十进制数8962用压缩BCD码表示1000100101100010在主存中存放形式:非压缩BCD码:是指每个字节中只存放一个十进制数字位如:将十进制数8962用非压缩BCD码表示00001000000010010000011000000010在主存中存放形式:①BCD码加法运算BCD加法就是按“逢十进位”的原则进行相加,其和也是一个BCD数。但微机只能进行二进制加法,在相邻BCD码字之间只能“逢十六进位”。导致出现非BCD码。因此需要对结果进行调整,做到“逢十进位”结果仍为BCD码96[34]BCD=00110100B+[62]BCD=01100010B10010110B34+62=例:例:89+95=184[89]BCD=10001001B+[95]BCD=10010101B100011110B←运算结果的低4位出现非BCD码高4位出现进位,均应做加6调整←结果仍为BCD码进位→01100110B+110000100B低位向高位产生进位,高位出现非BCD码均应作加6调整相加结果为无符号数,最高位进位有效进位结果仍为BCD码117例:48+69=[48]BCD=01001000B+[69]BCD=01101001B10110001B100010111B01100110B+在BCD加法过程中,进制不同导致出现非BCD码或某位向高位产生进位,使运算结果不正确。在这种情况下均应作加6调整,以补上多拿走的6。十进制调整在微机中有专门的调整电路自动完成总结:练习题①[65]BCD+[78]BCD=?②[35]BCD+[82]BCD=?BCD码减法运算与加法运算同理减法运算的调整原则:在运算过程中某位出现借位或非BCD码,相应位作减6调整,减去多借的6。也是有专门的指令来完成的例:58-25=[58]BCD=01011000B[25]BCD=00100101B-00110011B结果仍为BCD码33②BCD码减法运算例:35-28=←低四位向高四位借位←运算结果的低4位出现非BCD码700001101B[35]BCD=00110101B_[28]BCD=00101000B00000111B00000110B_←个位做减6调整←结果仍为BCD码练习题①[95]BCD-[78]BCD=?②[85]BCD-[27]BCD=?§1.5微机中的运算电路及补码运算1.微机中的运算电路微机中的运算都是在运算器中运行的,运算器是由加法器构成的,只会做二进制加法运算,一位二进制全加器电路如图所示:FASiAiBiCi+1Ci全加器真值表组成八位二进制数加法器电路如图所示FA6FA7FA5FA0OVCYS7S6S5C6C7C8C1C0SUBS0a7b7a6b6a5b5a0b0a0a1a2a3a4a5a6a7为被加数/被减数b0b1b2b3b4b5b6b7为加数/减数S0S1S2S3S4S5S6S7为和或差C1C2C3C4C5C6C7C8为加法运算中低位向高位的进位SUB为加减控制信号当执行减法指令时,SUB=1,图中各异或逻辑门均为反相逻辑门,则Si=ai-bi+ci=ai+bi+ci,并且FA连同SUB的状态一起做加法运算当执行加法运算指令时,SUB=0,图中各异或逻辑门均为同相逻辑门,对加数没有任何影响,则Si=ai+bi+ci结论:微机作减法运算时,其运算过程是:一个数减去另一个数,等于加上另一个数的反码并加1,这个运算过程称为补码运算图中OV是溢出标志位,运算结果有溢出时,OV=1,否则OV=0,溢出的原因是运算结果超出了微机中数的表示范围图中Cy是进位(或借位)的状态标志位,做加法运算时若最高位(FA7)有进位,则Cy=1,否则Cy=0;做减法运算时若FA7位无进位,说明不够减,有借位现象,则Cy=1,否则,Cy=0Cy=C8⊕SUBOV=C7⊕C82.补码运算研究表明,微机中的数一律用补码的形式表示的,两个数加法运算时,应将参加运算的数化成补码形式,相加后的结果仍为补码,对于有符号数来说,符号位无须单独处理,符号位可直接参加运算,不影响最终结果[X]补+[Y]补=[X+Y]补正数的补码表示与原码相同;负数的补码表示等于该数的原码取反(反码)加1。理论依据:[X]补=模+X(如何理解?)举例:假设现在的标准时间是4点整,而一只时钟却指示7点整。如何校准时钟?①7-3=4②7+9=7+5+4=12(自动丢失)+4=47+9=4(mod12)[-3]补=12+9=9=12-3[5]补=12+5=58位单片机mod128(28)11111111(127)(100000000)[X]补=2n+X(mod2n)数的补码nnnXXXXXXB2mod11101111012012XXXXnn220补,当XXXXn20补,当例:35+42=[35]补=00100011+[42]补=00101010001001101Cy=0,OV=0,结果为