微型计算机原理与接口技术主讲:王桂兰辅导时间:周四下午地点:综合楼网管中心102(7522474)•教材:《16/32位微机原理及接口技术》朱有产主编,中国电力出版社,2009.8•主要参考书:《微机原理与接口技术》冯博琴主编,清华大学出版社,2002.2•考核方式期末考试(80%)+实验(10%)+考勤与作业(10%)第1章微型计算机基础知识概述回顾微型计算机系统:•硬件系统•软件系统系统软件应用软件1.1微型计算机系统构成微型计算机硬件系统包括:中央处理单元(CPU)内存储器系统主机板外存储器显示卡与显示器声卡与音箱网卡机箱、鼠标、键盘…微机的基本结构数据总线(DB)控制总线(CB)地址总线(AB)中央处理器CPU(运算器+控制器)内存储器I/O接口I/O接口外部设备外部设备微型计算机系统微型计算机微处理器本课程主要内容之一!机器语言汇编语言高级语言程序设计语言本课程主要内容之二:区别?机器语言汇编语言高级语言00111110x=3;00000011MOVAL,3;y=5;11000110ADDAL,5z=x+y;00000101例如:计算3+51.2微型计算机的基本知识1.2.1计算机常用的数制1、二进制数B用0和12.十进制数D用0~93.八进制数Q用0~74.十六进制数H用0~9和A~F例:1010B—二进制1010D—十进制1010Q—八进制1010H—十六进制1.十进制数与二进制数之间的转换(1)(215)10=(11010111)2“除2取余法”(2)(0.6875)10=(0.1011)2“乘2取整法”(3)(11111111.111)2=(255.875)10“按权展开求和”1.2.2各种数制间的转换例如,将(11111111.111)2转换成十进制数1×27+1×26+1×25+1×24+1×23+1×22+1×21+1×20+1×2-1+1×2-2+1×2-3=128+64+32+16+8+4+2+1+0.5+0.25+0.125=(255.875)10快速转换:11111111B27262524232221201286432168421D2.二进制数与十六进制数之间的转换(1)1010111.110110B=57.D8H四位合一位(2)3B.11H=00111011.00010001B一位拆四位。十进制(D)二进制(B)八进制(Q)十六进制(H)0123456789101112131415011011100101110111100010011010101111001101111011110123456710111213141516170123456789ABCDEF各数制对应关系十进制、二进制、八进制、十六进制数码对照表1、无符号数:8位、16位、32位的正整数2、二进制的算术运算3、二进制数的逻辑运算4、无符号数的表示范围:0~2n-18位无符号整数的表示范围0~25516位无符号整数的表示范围0~6553532位无符号整数的表示范围0~4G-11.2.3无符号二进制数计算机中的有符号数可表示为:符号位:“0”-表示正“1”-表示负+1=+0000001=00000001(机器数)-1=-0000001=10000001(机器数)符号位数值位1.2.4有符号数的表示方法真值1、原码定义1:最高位为符号位,其余为数值部分用“0”表示正,用“1”表示负;一、机器数的表示法定义2:当X≥0时,[X]原=X当X≤0时,[X]原=2n-1-XX=+0000001BY=-0000001B[X]原[Y]原=00000001B=10000001B[+0]原码=00000000B[-0]原码=10000000B定义2:当X≥0时,[X]反=X当X≤0时,[X]反=2n-1+X2、反码定义1:正数的反码与原码相同负数的反码为其原码除符号位之外逐位取反.X=+0000001BY=-0000001B[X]反[Y]反=00000001B=11111110B=[X]原[+0]反=00000000B[-0]反=11111111B定义1:正数的补码与原码相同;负数的补码为除符号位之外逐位取反加1.X=+0000001BY=-0000001B[X]补码[Y]补码=[X]原=[Y]反+1=00000001B=11111111B定义2:当X≥0时,[X]补=X当X≤0时,[X]补=2n+X3、补码[+0]补=[-0]补=00000000B提示:-1在计算机内的存储形式为:11111111=FFH(8位)1111111111111111=FFFFH(16位)3、补码举例:X=-1010111B,Y=+1110001B,求X,Y的补码[X]原=11010111B,[X]补=10101001B[Y]原=01110001B,[Y]补=01110001B请同学考虑计算机如何计算:2-1=?1-2=?二、有符号数的运算微机中采用补码系统,所有的数据均为补码.[X+Y]补=[X]补+[Y]补[X-Y]补=[X+(-Y)]=[X]补+[-Y]补变补:各位取反后末位加1正数补码变补负数的补码负数补码变补正数的补码(负数绝对值)已知补码,求真值(用十进制数表示)•[X]补=00000010B真值为:X=+0000010B=+2•[X]补=11111111B绝对值为:|X|=00000000+1=1真值为:X=-1举例:已知负数补码求真值:变补操作得到绝对值1、数的表示范围(1)无符号整数(0~2n-1)8位无符号整数,取值范围是0~25516位无符号整数,取值范围是0~65535三、加法的溢出判断(2)有符号整数,用补码表示(-2n-1~2n-1-1)取值范围:-128~+127(8位)-32768~+32767(16位)2、若运算的结果超过数的范围,则称为溢出3、溢出判断方法D7D6D5D1D0CFD7D6D5D1D0CFCPCS1、无符号数判断:当运算后CF=1有溢出2、有符号数判断:当运算后CPCS=1有溢出若:X=01111111B,Y=00000001B则:X+Y=•当X、Y为无符号数,其结果无溢出•当X、Y为有符号数,其结果有溢出(事实上,两正数相加得出负数,结果出错)10000000B0000000101111111BB举例:左移:乘以2右移:除以2(1)正数:补0例:00000010B(+2)与00000001B(+1)四、算术移位(2)负数:左移最低位补零右移最高位补1例:11111111B(-1)与11111110B(-2)计算机只能处理和识别二进制数,对于字符、符号和十进制数都要用二进制编码表示出来1.2.5二进制编码的表示1、十进制数的二进制编码BCD码2、字母与字符的编码:ASCII码3、汉字的二进制编码表示1、BCD码(二进制编码的十进制数)BCD(BinaryCodeDecimal)码:用若干个二进制位表示一位十进制数的编码,BCD码有多种编码方法十进制数209.56D压缩BCD码001000001001.01010110B压缩BCD码,例如8421BCD码用4位二进制数表示一位十进制数扩展BCD码用8位二进制数表示一位十进制数,仅低四位有效2、字符的编码:ACSII码(AmericanStandardCodeforInformationInterchange美国标准信息交换码)D7D6D5D4D3D2D1D00用7位二进制数表示一个字符的编码,共计128个编码置0例:字符“0~9”的编码用30H~39H来表示;字符“A~”的编码从41H~开始,字符“a~”的编码从61H~开始,ASCII码的校验•奇校验加上校验位后编码中“1”的个数为奇数。例:A的ASCII码是41H(1000001B),以奇校验传送则为C1H(11000001B)•偶校验加上校验位后编码中“1”的个数为偶数。上例若以偶校验传送,则为41H。3、汉字的编码:GB2312-1980国标码:字母、数字、符号681个,一、二级汉字6763个。例:“常”字,区位码0010011B0000011B国标码0110011B0100011B区位码:94行×94列(行号-区号,列号-位号)国标码:行号,列号分别加100000B(32)内码:国标码行号与列号最高位分别置11.3常用术语解析1、位和字节•位(bit)•字节(Byte)=8位二进制数•1KB=1024×8b•1MB=220×8b•1GB=230×8b•1TB=240×8b1.4计算机基础指令程序和指令系统初级计算机的基本结构简单程序举例1.4.1指令程序和指令系统1、指令:是一组二进制编码信息,主要包括两个内容:告诉计算机进行什么操作;指出操作数或操作数地址操作码操作数2、指令系统:计算机所能执行的各种不同指令的集合1.4.2初级计算机的基本结构CPU存储器内存储器的结构及工作原理内存单元地址内存单元内容1011011038F04H......Bit7654321001011000*内存单元有时又称为地址单元内存储器的结构及工作原理读:将内存单元的内容取入CPU,原单元内容不改变;写:CPU将信息放入内存单元,单元中原内容被覆盖;地址总线读写命令存储器00H…06H…FFH地址地址译码器读写控制电路…00000100…数据总线1.4.3简单程序举例首先编制一个程序;第二步程序应该放入存储器中;第三步是执行程序:(1)取指令(2)译码(3)执行例题:求两个数7和10的和助记符形式:MOVAL,7;数7送AL寄存器ADDAL,10;AL寄存器内容与数10;相加,和值保存在AL中HLT;CPU暂停指令的存放:地址内容00H00000000B01H00000001B02H00000010B03H00000011B04H00000100B第一条指令----取指令00000001第一条指令----取操作数00000010第二条指令----取指令00000011第二条指令----执行指令00000100作业:P251.21.31.61.71.8