1、微机原理与应用微机原理与应用微机原理与应用微机原理与应用 学习本课程建议学习本课程建议:抓住五个环节抓住五个环节:预习预习 听课听课 复习复习 笔记笔记 作业作业 注重两个能力注重两个能力:自学自学 实践实践 注重两个交流注重两个交流:同学间同学间 师生间师生间 实现一个转变实现一个转变:基础课基础课专业基础课专业基础课本课程考核本课程考核:闭卷(期中、期末)闭卷(期中、期末)总成绩:总成绩:卷面卷面80 平时平时20 注意与单片机课程异同注意与单片机课程异同 讲授内容讲授内容:第第1章章第第8章章 参考书参考书:1,杨文显杨文显,现代微型计算机原理与接口技术教程现代微型计算机原理与接口技术教
2、程,清华大学出版社清华大学出版社,2006年年 2,朱定华朱定华,微机原理、汇编与接口技术学习指导微机原理、汇编与接口技术学习指导,清华大学出版社清华大学出版社,2006年年学习内容:微机原理与应用是一门重要专业基础课程;既有硬件又有软件内容,涉及微处理器内部结构,外部电路扩展以及汇编程序设计等;知识点多,实践性强,内容较繁杂。世上无难事,只要肯登攀。微型计算机组成结构微型计算机组成结构微型计算机系统硬件硬件微型计算机微型计算机(主机主机)微处理器微处理器(CPU)软件软件外围设备外围设备运算器运算器控制器控制器存储器存储器(内存内存)RAMROM外部设备外部设备辅助设备辅助设备 输入设备输入
3、设备(键盘、扫描仪、语音识别仪键盘、扫描仪、语音识别仪)输出设备输出设备(显示器、打印机、绘图仪、显示器、打印机、绘图仪、)辅助存储器辅助存储器(磁带、磁盘、光盘磁带、磁盘、光盘)输入输入/输出接口输出接口(PIO、SIO、CTC、ADC、DAC)(I/O接口接口)总线总线(AB、DB、CB)系统软件系统软件(操作系统,编辑、编译程序,故障诊断操作系统,编辑、编译程序,故障诊断,监控程序监控程序)应用软件应用软件(科学计算,工业控制,数据处理科学计算,工业控制,数据处理)程序设计语言程序设计语言(机器语言、汇编语言、高级语言机器语言、汇编语言、高级语言)电源电路电源电路时钟电路时钟电路第第1章
4、章微型计算机基础知识微型计算机基础知识1.1 1.1 计算机中的数和编码计算机中的数和编码1.2 1.2 逻辑单元和逻辑部件逻辑单元和逻辑部件1.3 1.3 微型计算机的结构和工作原理微型计算机的结构和工作原理1.4 8086/80881.4 8086/8088微处理器微处理器1.5 8086/80881.5 8086/8088存储器结构与堆栈存储器结构与堆栈1.6 80 x861.6 80 x86、PentiumPentium系列微处理器系列微处理器1.7 1.7 新一代微处理器新一代微处理器-Itanium-Itanium1.1 1.1 计算机中的数和编码计算机中的数和编码1.1.1 计算
5、机中的数制计算机中的数制1.1.2 符号数的表示法符号数的表示法1.1.3 二进制数的加减运算二进制数的加减运算1.1.4 二进制数的逻辑运算和逻辑电路二进制数的逻辑运算和逻辑电路1.1.5 二进制编码二进制编码1.1.6 BCD数的加减运算数的加减运算十进制数(D):逢十进一逢十进一1.1.1计算机中的数制基数:数制所使用的数码的个数基数:数制所使用的数码的个数权:数制中每一位所具有的值权:数制中每一位所具有的值.二进制数二进制数(B):逢二进一逢二进一:逢十六进一逢十六进一十六进制数十六进制数(H)二进制数的基数为2,第i 位的权为2i。十进制数、二进制数、十六进制数之间的关系如表所示十进
6、制二进制十六进制012345678012345678000000010010001101000101011001111000十进制二进制十六进制9101112131415169ABCDEF10100110101011110011011110111110000计算机采用二进制数的原因计算机采用二进制数的原因1.物理上容易实现。物理上容易实现。2.运算规则简单。运算规则简单。3.可以用逻辑代数作为设计工具。可以用逻辑代数作为设计工具。数制转换数制转换10321012342)625.27(2120212121202121)101.11011(102101216)0664.939(1611611611
7、1610163)113(AB二二转转十十,十六十六转转十十方法:按权展开相加方法:按权展开相加53221510722613631222222011101011K0K1K2 Kn-1(215)10=11010111B方法:除方法:除2取余法。取余法。十进制数十进制数 二进制数二进制数整数转换整数转换二进制二进制 十六进制数十六进制数1.十六进制数十六进制数 二进制数二进制数 一位十六 用四位二进制 表示。(3AB)16=3ABH=(0011 1010 1011)2=(1110101011)2(0.7A53)16=0.7A53H=(0.0111 1010 0101 0011)22.二进制数二进制数
8、 十六进制数十六进制数四位二进制数用一位十六进制数表示。(1 1011 1110 0011.1001 0111 1)2=(1BE3.978)16#以上未涉及符号(以上未涉及符号(+,-)用一个8位二进制数表示一个有符号数:D7 D6 D5 D4 D3 D2 D1 D0符号位数字位D7=0正数1负数机器数真值01011011B=+9111011011B=911.1.2 符号数的表示法一、机器数和真值一、机器数和真值l机器可使用的带符号数,称为机器可使用的带符号数,称为机器数机器数l机器数所表示的真实数值,称为机器数所表示的真实数值,称为真值真值1.原码原码D7 D6 D5 D4 D3 D2 D1
9、 D0符号位数的大小0正数1负数+105原=01101001B105原=11101001B二、带符号数的三种表示方法二、带符号数的三种表示方法(原码、反码和补码原码、反码和补码)原码的特点:(1)数值部分即为带符号数的二进制数数值部分即为带符号数的二进制数(2)“0”有有+0 和和 0之分之分(+0)原=0 0000000B(0)原=1 000 0000B(3)8位二进制原码表示数的范围位二进制原码表示数的范围1111,1111B 0111 1111B即 127 +127即:数即:数0的原码不唯一。的原码不唯一。2.反码(机器数)反码(机器数)+4原=+4反=0 000 0100B4原=1 0
10、00 0100B正数:反码同其原码负数:符号位不变,数字位按位取反4反=1 111 1011B+127原=+127反=0111 1111B127原=1 111 1111B127反=1 000 0000B 真值?3.补码(机器数)补码(机器数)+4原=+4补=0 000 0100B4原=1000 0100B正数:补码同其原码。负数:反码+1。补码用途:减法转为加法4反=1111 1011B127原=1111 1111B127反=1000 0000B4补=1111 1100B127补=1000 0001B特殊数特殊数11111111B 原码定义:原码定义:(-127)原原 反码定义:反码定义:(-
11、0)反反 补码定义:补码定义:(-1)补补 无符号数无符号数:(11111111)=255注意注意:正数正数:原码、反码、补码原码、反码、补码均同均同原码原码。负数负数:原码为真值、反码为正数取反、补码为反码:原码为真值、反码为正数取反、补码为反码 加加1 1。8位有符号数的表示范围位有符号数的表示范围 对对8位二进制数:位二进制数:原码:原码:-127 +127 反码:反码:-127 +127 补码:补码:-128 +127想一想:想一想:16位有符号数的表示范围是多少?位有符号数的表示范围是多少?求补码求补码=求补?求补?求反码求反码=求反?求反?三、补码加减法的运算规则三、补码加减法的运
12、算规则 补码符号位扩展补码符号位扩展:(:(真值不变)真值不变)正数符号位前补正数符号位前补0,+46补补=2EH=002EH负数符号位前补负数符号位前补1,-46补补=D2H=FFD2H 补码,可将减法运算转为加法运算补码,可将减法运算转为加法运算。X+Y补补=X补补+Y补补 X-Y补补=X补补+-Y补补 其中其中X,Y为正负数均可,为正负数均可,符号位参与运算符号位参与运算。双补还原双补还原:(X补补)补补=X原原 例 X=-0110100,Y=+1110100,求X+Y补 X原=10110100 X补=X反+1=11001100 Y补=Y原=01110100 所以:X+Y补=X补+Y补
13、=11001100+01110100 =01000000补码运算时,向最高位的进借位自然丢失,结果仍补码运算时,向最高位的进借位自然丢失,结果仍为补码。为补码。1.1.3 二进制数的加减运算一、无符号数的运算一、无符号数的运算n位无符号数范围:位无符号数范围:(02n-1)。相加:结果为正。相加:结果为正。相减:无借位结果为正;相减:无借位结果为正;有借位结果为负。有借位结果为负。#进借位进借位二、符号数的运算二、符号数的运算vn位符号数表示的范围:位符号数表示的范围:(-2n-12n-1-1)进进(借借)位位 加法,符号位向更高位产生进位;加法,符号位向更高位产生进位;减法,符号位向更高位产
14、生借位。减法,符号位向更高位产生借位。溢出溢出 运算结果超出表示的范围。运算结果超出表示的范围。溢出的判断方法溢出的判断方法两相加或相减时,若两相加或相减时,若 OF=CY CS,OF1,则结果溢出。则结果溢出。OF0,则结果无溢出。则结果无溢出。CY:符号位向前的进位;:符号位向前的进位;CS:次高位向符号位的进位。:次高位向符号位的进位。OF:溢出标志位:溢出标志位 1100 1110+1111 1011 1 1100 1001CS=1,CY=1OF=1 1=0,无溢出 0110 1001+0011 0010 1001 1011CS=1,CY=0OF=0 1=1,有溢出1.“非非”运算运算
15、(逻辑非,求反)(逻辑非,求反)(NOT)A0101真值表AC AC 若 y=0000 1111BB0000 1111y 则1.1.4 二进制数的逻辑运算与逻辑电路二进制数的逻辑运算与逻辑电路2.“与与”运算(逻辑乘)运算(逻辑乘)(AND,)C=A B 真值表ABC=A B0011110000011100 10100000 11110000 1010例 3.“或或”运算(逻辑加)运算(逻辑加)(OR,+)C=A B 真值表ABC=A B0011110001111100 10100000 11111100 1111例 4.“异或异或”运算运算(逻辑异或)(逻辑异或)(XOR,)C=A B 真值
16、表ABC=A B0011110001101100 10100000 11111100 0101例 本书用国家标准表达门电路本书用国家标准表达门电路(正负逻辑、反相圈正负逻辑、反相圈)一、数字编码一、数字编码BCD码:码:4位二进制数表示位二进制数表示1位十进制数位十进制数。1.1.5 二进制编码数字、字母、符号等二进制数组和压缩压缩BCD码:码:4位二进制数表示位二进制数表示1位十进制数位十进制数。941001 0100B94H(计算机内存放)(计算机内存放)非压缩非压缩BCD码:码:8位二进制数表示位二进制数表示1位十进制数位十进制数。940000 1001 0000 0100B0904H表
17、 标准BCD码表示法(8421 BCD编码)0十进制数0000标准BCD码0000二进制数12345678910111563940001001000110100010101100111100010010001 00000001 00010001 01010110 00111001 010000010010001101000101011001111000100110101011111111111110111100.764=(0.0111 0110 0100)BCD149.4978)1001 0100 0001.1000 0111 1001 0100(BCD二、字符编码二、字符编码ASCII 码是
18、常用的字符编码。ASCII:American Standard Code for Information Interchange,即美国信息交换标准代码。7位二进制代码对字符进行编码位二进制代码对字符进行编码 最高位通常为最高位通常为0,有时也作奇偶校验位。,有时也作奇偶校验位。数字数字09编码:编码:30H39H 英文字母英文字母AZ:41H5AH az:61H7AHASCII 字符表LSDMSD012345670000010100111001011101110123456789ABCDEF000000010010001101000101011001111000100110101011110
19、0110111101111NULSOHSTXETXEOTENQACKBELBSHTLFVTFFCRSOSIBLEDC1DC2DC3DC4NAKSYNETBCANEMSUBESCFSGSRSUSSP!#$%&()*+/0123456789:;?ABCDEFGHIJKLMNOPQRSTUVWXYZ、abcdefghijklmnopqrstuvwxyz|DEL1.1.6 BCD数的加减运算数的加减运算十进制数:逢十进一,借一作十十进制数:逢十进一,借一作十十六进制数:逢十六进一,借一作十六十六进制数:逢十六进一,借一作十六 加法:加加法:加6调正(每位结果调正(每位结果9时)时)减法:减减法:减6调
20、正(向高位借位时)调正(向高位借位时)一般对一般对BCD码的运算结果要调整码的运算结果要调整调整原理:先看一个例子调整原理:先看一个例子 计算1819 0001 1000 见右式 +0001 1001 0011 0001 31 结果应为结果应为3737,而计算机相加为,而计算机相加为3131,原因在于运算过,原因在于运算过程中,如遇到低程中,如遇到低4 4位往高位往高4 4位产生进位时(位产生进位时(此时此时AF=1AF=1,AF:AF:辅助进位标志位辅助进位标志位)是按逢十六进一的规则,但)是按逢十六进一的规则,但BCDBCD码要求逢十进一,因此只要产生进位,个位就会码要求逢十进一,因此只要
21、产生进位,个位就会少少6 6,这就要进行加,这就要进行加6 6调正。调正。这个这个1代表了代表了16,而实际上,而实际上BCD码运算进位仅加了码运算进位仅加了10。1.BCD1.BCD数相加数相加实际上当低实际上当低4 4位的结果位的结果9(9(即即A AF F之间之间)时,时,也应进行加也应进行加6 6调正。调正。(原因是逢十没有进位,原因是逢十没有进位,故用加故用加6 6的方法强行产生进位。的方法强行产生进位。)如对上例的结果进行加如对上例的结果进行加6 6:0011 0001 310011 0001 31 +0000 0110+0000 0110 6 6 0011 0111 37 0011 0111 37 结果正确。结果正确。2.BCD2.BCD数减法数减法调整操作为:调整操作为:本位向高位有借位,本位的结果应进行本位向高位有借位,本位的结果应进行减减6 6处理处理。(与加法进位处理相对应与加法进位处理相对应)例:例:0010 1000 280010 1000 28 -0001 1001-0001 1001 1919 0000 1111 F 0000 1111 F -0000 0110-0000 0110 6 6 0000 1001 0000 1001 9 9