第一章微型计算机基础1.1微型计算机系统的概念1、微处理器、微型计算机、微型计算机系统2、本课主要讲授内容及要求计算机中的数、编码及运算1.4微型计算机的运算基础1.“三微”的概念1、微处理器(MPU)算术逻辑单元其核心cpu—运算器和控制器寄存器组是微型计算机的核心部件控制部件2、微型计算机MPU为核心半导体存储器(ROM/RAM)I/O(Input/Output)接口和中断系统系统总线(CBDBAB)集成在一个半导体芯片上组装在一块或数块印刷电路板上多板微型计算机单板微型计算机单片微型计算机微型计算机的两大分支核心器件微处理器微控制器MicroProcessorUnitembedMicroControllerUnitMPUMCU微机组成结构的两大类型冯.诺依曼型哈佛型CPUI/O接口存储器系统总线数据存储器CPUI/O接口程序存储器系统总线DBCBAB例:PC机例:MCS-51单片机3、微型计算机系统硬件系统软件系统硬件系统微型计算机微处理器:运算器、控制器内存储器ROM:ROM、PROM、EPROM、E2PROM、FlashROMRAM:SRAM、DRAM、iRAM、NVRAMI/O接口:并行、串行、中断接口、DMA接口系统总线:数据、地址、控制总线(DB、AB、CB)外围设备输入/输出设备A/D、D/A转换器开关量输入/输出终端微型计算机微处理器:运算器、控制器内存储器ROM:ROM、PROM、EPROM、E2PROM、FlashROMRAM:SRAM、DRAM、iRAM、NVRAMI/O接口:并行、串行、中断接口、DMA接口系统总线:数据、地址、控制总线(DB、AB、CB)外围设备输入/输出设备A/D、D/A转换器开关量输入/输出终端软件系统系统软件操作系统编译系统监控程序汇编程序程序设计语言机器语言汇编语言高级语言应用软件把汇编语言源程序翻译成机器语言目标程序的语言处理程序自汇编程序交叉汇编程序本课的主要内容及要求微型计算机MPU微处理器存储器(内存)I/O接口系统总线连线编程综合应用器件的外特性掌握规律具体机型:MCS-51单片微型计算机Single-ChipMicrocomputerMicro-ControllerMCS-51单片机的基本组成一、中央处理器CPU二、时钟电路三、内部存储器四、定时器/计数器(T/C)五、并行I/O口六、串行口七、中断控制系统1.4微型计算机运算基础(p12)1.4.1计算机中数的表示方法1.4.2计算机中的编码1.4.3计算机中的运算重点解决:计算机的重要职能之一处理数在计算机中如何表示一个数?不同性质数的运算规则和算法。1.几个重要概念2.复习不同进制数之间的互换3.机器数与真值4.带符号数的原码、反码、补码5.数的定点与浮点表示1.4.1计算机中数的表示方法1几个重要概念重点概念1:计算机中的数据都是以二进制形式进行存储和运算的重点概念2:在计算机中存储数据时,每类数据占据固定长度的二进制数位,而不管其实际长度。一般长度为字节的整倍数重点概念3:计算机中不仅要处理无符号数,还要处理带符号和带小数点的数。例如:在八位微机中,整数216存储为11011000B整数56存储为00111000B重点概念4:机器数与真值2不同进制数之间的互换1、不同进制数转换成十进制数——按权展开法表示不同进制数的尾部字母:二B,十六H,八Q,十D(可略)例:10101010B=1×27+0×26+1×25+0×24+1×23+0×22+1×21+0×20=128+32+8+2=1702、十二(1)整数部分——除以2取余法——直到商为0止(2)小数部分——乘以2取整法——直到积为0止或达到精度要求止例:100=B=H=Q例:0.625=B=H=Q0.1=B=H=Q3、二进制数、八进制与十六进制数之间的互换1)二八三合一2)八二一分三3)二十六四合一(重点)4)十六二一分四(重点)例:01110110B=76H9BH=10011011B7610011011例:0.1010110B=0.ACHAC不足四位补0问:01110110B=?Q0.1010110B=?Q4、用权表示数(2n2n-12n-12n-1-1)1)权n位二进制数各位的权从高位到低位依次为:n位二进制数:Bn-1Bn-2Bn-3……………B1B0权:2n-12n-22n-3………21202)用权表示数例:11111……1111B=2n-1,即n个1。01111……1111B=2n-1-1,即n-1个1最高位的权为:2n-1例:n=8,11111111B=FFH=28-101111111B=7FH=28-1-1例:n位二进制数表示无符号数的范围:0~2n-1n=80~28-10~255n=160~216-10~65535n=32?N=64?3.机器数与真值1)机器数:能被计算机识别的数称为机器数。2)真值:机器数所代表的真实值称为机器数的真值。3)对于无符号数其机器数与真值表示方法相同。例:真值:100=64H=01100100B对应的机器数:64H=01100100Bn位二进制数可表示的数的范围是:0~2n-18位二进制数可表示的数的范围是:0~28-1,[0,FFH],[0,255]16位二进制数可表示的数的范围是:0~216-1,[0,FFFFH],[0,65535]例:01100100B其8位全部为数值位。特点:无符号数的机器数与其真值为等值关系4)带符号数的机器数的表示方法(重点和难点)常见的有原码、反码和补码三种表示方式。特点:带符号数的机器数与其真值表示方法不同,两者的关系不是等值关系,仅是一一对应关系。例如:在八位微机中,真值:+65可表示成机器数(原码)为01000001B真值:-65可表示成机器数(原码)为11000001B01100000符号位数值位符号位:“0”表示正号“1”表示负号4带符号数的原码、反码、补码(1)原码定义:在表示带符号数时,正数的符号位为“0”,负数的符号位为“1”,数值位表示数的绝对值,这样就得到了数的原码。例如在八位微机中:[+38]原=[+100110]原=00100110B[-38]原=[-100110]原=10100110B计算公式:对于字长为n位的机器数:当真值X≥0时,X可表示为+Xn-2Xn-3…X0;当真值X<0时,X可表示为-Xn-2Xn-3…X0,则X的原码可定义为:[X]原=0Xn-2Xn-3…X0=X0≤X≤2n-1―11Xn-2Xn-3…X0=2n-1-X=2n-1+|X|-(2n-1―1)≤X≤0可见n位原码可表示数的范围为:-(2n-1―1)~+(2n-1―1)则在八位微机中,码可表示数的范围为-127至+127求真值:带符号数的原码表示法简单易懂,而且与真值转换方便。原码的缺点:l“0”的原码有两种形式,这在运算中非常不方便。[+0]原=00000000B[-0]原=10000000B,即分为+0和-0l原码在进行两个异符号数相加或两个同符号数相减时,需做减法运算,由于微机中一般只有加法器而无减法器,所以,为了把减法运算转变为加法运算就引入了反码和补码。原码的用途:l原码做乘除法运算方便,两数的符号和数值分别处理积的符号为两数符号位的异或运算结果积的数值部分为两数绝对值相乘的结果(2)反码定义:正数的反码表示与原码相同;负数的反码,可将负数原码的符号位保持不变、数值位按位取反得到,或者将负数看作正数求原码,再将所有位按位取反得到。因此,在n位机器数的计算机中,数X的反码定义为:[X]反=0Xn-2Xn-3…X0=X0≤X≤2n-1―11Xn-2Xn-3…X0=11…1B-|X|=2n-1-|X|-(2n-1―1)≤X≤0缺点:“0”的反码也有两种表示法,即+0和-0。[+0]反=00000000B[-0]反=11111111Bn位反码表示数的范围与原码相同,八位二进制反码表示的范围仍是-127至+127。例如八位微机中:[+11]原=00001011B[+11]反=00001011B[-11]原=10001011B[-11]反=11110100B[-38]原=10100110B[-38]反=11011001B[+127]原=01111111B[+127]反=01111111B[-127]原=11111111B[-127]反=10000000B[+0]原=00000000B[+0]反=00000000B[-0]原=10000000B[-0]反=11111111B求真值:由反码求得原码,再由原码求得真值,即可得到反码的真值。例如:反码11011001B,符号位为1,将数值位按位取反,得到原码10100110B,其真值为-0100110B即十进制数-38。(3)补码(难点)定义:正数的补码表示与原码相同负数的补码等于它的反码末位加1即[X]补=[X]反+1例如:[+11]原=00001011B[+11]反=00001011B[+11]补=00001011B[-11]原=10001011B[-11]反=11110100B[-11]补=11110101B[+127]原=01111111B[+127]反=01111111B[+127]补=01111111B[-127]原=11111111B[-127]反=10000000B[-127]补=10000001B[+0]原=00000000B[+0]反=10000000B[0]补=00000000B[-0]原=10000000B[-0]反=11111111B[-128]补=10000000B补码的含义:以时钟对时为例来说明,现由7点钟调到4点钟。顺时针调:7+9=4(mod12)逆时针调:7-3=4(mod12)由于时钟上超过12点时就会自动丢失一个数12,这个自动丢失的数叫做“模”(module,简写为mod)由补码的定义得求补码公式:l则n位补码表示数的范围为:―2n―1~+(2n―1―1)l八位二进制补码表示的数值范围是-128至+127。优点:0的补码为00000000B,只有这一种形式。[X]补=0Xn-2Xn-3…X0=X0≤X≤2n-1―11Xn-2Xn-3…X0+1=2n-|X|=2n+X-2n-1≤X<0(mod2n)已知补码求真值:已知正数的补码求真值与原码相同,只要将符号位的0变为+(正号),即得到它的真值。已知负数的补码求真值方法1:将负数补码的数值位按位取反再加1,将符号位的1变为-(负号),即得到它的真值。方法2:用公式:X=-(2n-[X]补)已知补码为01111111B,其真值为+1111111B=+7FH已知补码为11111111B,其真值为:10000000B+1=10000001B,其真值为—01H或:X=—(28—11111111B)=—(00H-FFH)=—1小结:已知带符号数的机器数求真值1.已知正数的原码、反码、补码求真值,只需将符号位的“0”改为正号“+”即可。2.已知负数的原码,其真值只需将原码的符号位的“1”改为负号“-”即可。3.已知负数的反码,先将它变为原码,再求真值。或用公式计算:真值x=-(2n-1-[x]反)4.已知负数的补码,数值位取反加1,符号为改为-号,或用公式:X=-(2n-[X]补)例:已知带符号数的机器数为56H,求其真值。真值=+56H例:已知带符号数的机器数为0D6H,求其真值。若0D6H是原码,则真值为:-56H11010110B-1010110B若0D6H是反码,则真值为:-29H-(0FFH-0D6H)若0D6H是补码,则真值为:-2AH-(00H-0D6H)当n=8时,几种码的表示范围原码反码补码-127至+127-127至+127-128至+127当n=16时,几种码的表示范围原码反码补码-32767至+32767-32767至+32767-32768至+327675数的定点与浮点表示计算机中如何表示实数中的小数点呢?计算机中不用专门的器件表示小数点