1、微型计算机原理教材及主要参考书教材及主要参考书教材:微机原理与接口技术,冯博琴主编,清华大学出版社,2002.2主要参考书:微型计算机原理,姚燕南、薛钧义主编 姚向华、欧文编著,高等教育出版社硬件技术基础,冯博琴主编,邮电出版社微机原理及应用,李伯成等编,西安电子科技大学出版社考核方式考核方式n平时及实验30%n期末考试 70%机械07-1.2.3.4.5班 星期二第3.4节 机电楼B231 星期五第3.4节(单周)机电楼B231(高职)机械07-1、2班n 星期二第1.2节 机电楼A511n 星期五第1.2节(单周)机电楼A511 课程目标课程目标掌握:n微型计算机的基本工作原理n汇编语言程
2、序设计方法n微型计算机接口技术n建立微型计算机系统的整体概念,形成微机系统软硬件开发的初步能力课程主要内容n微型计算机的基础知识;n微处理器结构及组成,引脚及时序,寻址方式、指令系统与汇编语言程序设计;n半导体存储器及存储器管理技术 n中断、异常及输入输出接口技术 基基 础础 知知 识识第第 1 章章主要内容:n计算机中的常用计数制、编码及它们 相互间的转换n二进制数的算术运算和逻辑运算n符号数的表示及补码运算n二进制数运算中的溢出问题1.1 电子计算机的发展概述电子计算机的发展概述v1.1.1 1.1.1 电子计算机的问世及其经典结构电子计算机的问世及其经典结构1946年年2月月15日日,第
3、一台电子数字第一台电子数字计算机问世,这计算机问世,这标志着计算机时标志着计算机时代的到来。代的到来。(CALCULATOR)ENIAC(“埃尼阿克埃尼阿克”)与现代的计算机相比,有许多不足,但与现代的计算机相比,有许多不足,但它它的问世开创了计算机科学技术的新纪元,的问世开创了计算机科学技术的新纪元,对对人类的生产和生活方式产生了巨大的影响人类的生产和生活方式产生了巨大的影响。ENIAC是电子管计算机,时钟频率仅有是电子管计算机,时钟频率仅有100 KHz,但能在,但能在1秒钟的时间内完成秒钟的时间内完成5000次加法次加法运算。运算。匈牙利籍数学家匈牙利籍数学家冯冯诺依曼诺依曼在方案的设计
4、在方案的设计上做出了重要的贡献。上做出了重要的贡献。1946年年6月,他又提月,他又提出了出了“程序存储程序存储”和和“二进制运算二进制运算”的思的思想,进一步构建了想,进一步构建了计算机由运算器、控制计算机由运算器、控制器、存储器、输入设备和输出设备组成器、存储器、输入设备和输出设备组成这这一计算机的经典结构。一计算机的经典结构。(EDVAC-ELECTRONIC DISCRETE VARIABLE AUTOMATIC COMPUTER)电子计算机技术的发电子计算机技术的发展,相继经历了五个时展,相继经历了五个时代:代:电子管计算机;电子管计算机;晶体管计算机;晶体管计算机;集成电路计算机;
5、集成电路计算机;大规模集成电路计算机;大规模集成电路计算机;超大规模集成电路计算机。超大规模集成电路计算机。计算机的结构仍然没有突破冯计算机的结构仍然没有突破冯诺依曼提诺依曼提出的计算机的经典结构框架。出的计算机的经典结构框架。PC机的选购n品牌机n兼容机(DIY)总线和接口n计算机的各种硬件设备通过总线互连n外部设备通过接口与主机相连计算机公司nMicrosoft:windows操作系统、office办公软件、Visual C+、ExplorernIntel:CPU的主要生产厂商nIBMnDell第一章 微型计算机基础知识微型计算机基础知识 1.2.1计算机中的数制n了解:各种计数制的特点及
6、表示方 法n掌握:各种计数制之间的相互转换1.2 计算机中的数制计算机中的数制一、常用计数法一、常用计数法 数制:数的表示方法基数:一种数制中包含数码的个数 权:数码在不同位置所代表的数的大小十进制:以十为基数二进制:以二为基数计算机中常用的其他进制:八进制、十六进制数的位置表示法数的位置表示法设待表示的数为设待表示的数为N则则 式中式中 X为基数为基数ai为系数(为系数(0aiXl)m为小数位数为小数位数n为整数位数为整数位数1.十进制十进制特点:以十为底,逢十进一;共有09十个数字符号。用D代表。表示:111002211101010101010nmiiimmnnnnDDDDDDD2.二进制
7、二进制特点:以2为底,逢二进一;只有0和1两个符号。用B表示。表示:111002211n2222222)(nmiiimmnnnBBBBBBB3.十六进制十六进制n特点:有0-9及A-F共16个数字符号,逢16进位。用H表示。n表示:11616116101602162n116116)(nmiiiHmmHHHnHnnHH例例1:n234.98D或(234.98)10n1101.11B或(1101.11)2nABCD.BFH或(ABCD.BF)16 (1)二进制数二进制数 10011.11B=124023022121 12012-112-2=19.75(2)八进制数八进制数 7345.6Q=7833
8、82481580 68-1=3813.75(3)十六进制十六进制 4AC6H=41631016212161 6160=19142例例2表表1-1 计算机中不同计数制的基数、数码、计算机中不同计数制的基数、数码、进(借)位关系和表示方法进(借)位关系和表示方法计数制形式基数计数制采用的数码计数制的进位及借位关系计数制表示方法举例二进制20、1逢二进一、借一当二1 1 1 0 B 或(1110)2八进制80、1、2、3、4、5、6、7逢八进一、借一当八73Q或73O或(73)8十进制100、1、2、3、4、5、6、7、8、9逢十进一、借一当十95D或(95)10十六进制160、1、2、3、4、5、
9、6、7、8、9、A、B、C、D、E、F逢十六进一、借一当十六2 A 3 B H 或(2A3B)161.2.2 各种数制间的转换各种数制间的转换1.非十进制数到十进制数的转换非十进制数到十进制数的转换按相应的权表达式展开按相应的权表达式展开(101101.1)2 或或 101101.1 B=125+024+123+122+021+120+12-1=45.5D 2.十进制到非十进制数的转换十进制到非十进制数的转换n对二进制的转换:对整数:除2取余倒着写;对小数:乘2取整顺着写。n对十六进制的转换:对整数:除16取余倒着写;对小数:乘16取整顺着写。【例1.1】将十进制整数(213)10转换为 二进
10、制整数。转换过程如下:取余数2 213 1 2 106 02 53 12 26 02 13 12 6 02 3 12 1 1 0 所以,(213)10(11010101)2【例1.2】将十进制小数(0.8125)10转换为 二进制小数0.812521.625 取整数位10.62521.25 取整数位1 0.2520.5 取整数位00.521.0 取整数位1所以,(0.8125)10(0.1101)23.二进制与十六进制间的转换二进制与十六进制间的转换n用4位二进制数表示1位十六进制数11110.01B=0001 1110.0100 B =1 E.4 H1111101.001B=0111 110
11、1.0010 B =7 D.2 H十六进制数十六进制数二进制数二进制数将每位十六进制数用其对应的将每位十六进制数用其对应的4位二进位二进制数代替即可。制数代替即可。例例:1E.4H=0001 1110.0100B=11110.01B7D.2H=0111 1101.0010B=111 1101.001B本节习题(1)124.625=B=H(2)35.5=B=H(3)110101101B=H=Q(4)9AF1H=B答案:(1)1111100.101B 7C.AH (2)100011.1B 23.8H (3)1ADH 655Q (4)1001 1010 1111 0001B 1.3 无符号二进制数的
12、算术运算、无符号二进制数的算术运算、逻辑运算逻辑运算n1.3.1 二进制的算术运算二进制的算术运算 包括:加法运算 减法运算 乘法运算 除法运算 加法加法 逢逢2进进1减法减法 借借1为为2 1 0 1 1 0 1 0 1 +1 0 0 0 1 1 1 1 1 0 1 0 0 0 1 0 0对二进制数,乘对二进制数,乘2相当于左移一位,乘相当于左移一位,乘2n相当于左移相当于左移n位;位;除以除以2则相当于右移则相当于右移1位,除以位,除以2n相当于相当于右移右移n位。位。l000010110100=00101100B l000010110100=00000010B 即:商=00000010B
13、 余数=11B1.3.2 无符号数的表示范围无符号数的表示范围1.无符号二进制数的表示范围p对8位二进制数,所能表示的数的范围为:0255 (00HFFH)p对16位二进制数,所能表示的数的范围为:065535 (0000HFFFFH)p一个n位的无符号二进制数X,它可表示的数的范围为:0 X 2n-1 2.无符号二进制数的溢出判断p若运算结果超出数的可表示范围,则会产生溢出。p无符号二进制数的溢出判断 令无符号二进制数加法(或减法)中最高有效位Di的进(借)位为Ci,则Ci=1,产生溢出。1.3.3 二进制数的逻辑运算二进制数的逻辑运算 与 或 非 异或1.4 带符号数在计算机中的表示及运算
14、n无符号数:每一位都表示数值n带符号数:最高位为符号位 “0”表示正 “1”表示负机器数与真值n机器数:符号数值化了的数n真值:机器数所代表的真实数值 +52=+0110100=0 0110100 符号位 数值 -52=-0110100=1 0110100 符号位 数值1.4.1 带符号数的表示方法带符号数的表示方法计算机中的一个带符号数有3种表示方法n原码 X原 n反码 X反n补码 X补1.原码 X原 n不论数的正负,数值部分均保持原真值不变。举例n已知真值X=+42,Y=-42,求X原和Y原解:因为(+42)10=+0101010B (-42)10=-0101010B 所以X原=+42原=
15、0 0101010 符号位 数值部分 Y原=-42原=1 0101010 符号位 数值部分 8位数位数0的原码:的原码:+0原原=0 0000000 -0原原=1 0000000 即:数即:数0的原码不惟一的原码不惟一2.反码 X反n正数:X反=X原n负数:符号位保持不变,其数值部分为真值的各位按位取反。8位数0的反码:的反码:+0反=00000000 -0反=11111111即:数0的反码也不惟一举例已知:X=-52,求x原和X反解:X=-52=-0110100B X原=1 0110100 X反=1 10010113.补码X补计算机中用计算机中用补码补码表示带符号数表示带符号数正数的补码正数
16、的补码:最高位为:最高位为 0,与原码及,与原码及反码相同,即反码相同,即X补补=X反反=X原原 负数的补码负数的补码:最高位为:最高位为1,反码加,反码加1 即即X补补=X反反+1+0补=+0原=00000000-0补=-0反+1=11111111+1 =1 00000000 对8位字长,进位被舍掉即:数0的补码表示惟一 X=52=0110100 X原=10110100 X反=11001011 X补=X反+1=11001100举例n正数 原码、反码、补码相同n负数 原码:机器数本身 反码:符号位保持不变,其余位 按位求反 补码:反码加一总结举例n已知真值X=+0110100,Y=-01101
17、00 求X补和Y补解:X0,所以X补=00110100 Y0,所以 Y补=Y反+1 =11001011+1 =11001100 例:对例:对 8 位二进制数位二进制数 11110001B进行进行求补运算求补运算解:解:1.判断数的正负判断数的正负 2.按位取反,最低位加按位取反,最低位加1 1111 0001B反反=1000 1110B 1111 0001B补补=1000 1110B+1 =1000 1111B直接求补法n对负数而言n直接从原码求补码:从最低位起,到出现第一个1以前(包括第一个1)原码中的数字不变,以后逐位取反,但符号位不变。符号位不变取反第一个1不变符号位不变取反第一个1及其
18、后边各位不变 1.4.2 真值与补码之间的转换真值与补码之间的转换 对用补码表示的二进制数转换为带符号的十进制数:1)求出真值 2)进行转换 先判断是正数,还是负数。先判断是正数,还是负数。由最高位判断:由最高位判断:0 正数正数 1 负数负数 再求真值大小再求真值大小 对正数,补码的真值等于该二进制数值。对正数,补码的真值等于该二进制数值。对负数,先对该数进行求补运算,再求真值大小。对负数,先对该数进行求补运算,再求真值大小。X原=X补补 =X补反+1求补码真值的方法求补码真值的方法将一个用补码表示的二进制数转换为十进制数将一个用补码表示的二进制数转换为十进制数lX补补=0 0101110B
19、 真值为:真值为:+010 1110B 正数正数 所以:所以:X=+46lX补补=1 1010010B 真值为:真值为:-010 1110B 负数负数 从而有:从而有:X=-46举例p已知X补=01101101B,试求其真值 解:因为X补的最高位为0,即它是一个正数,它的数值部分就是它的真值。即 X=+1101101=109 已知X补=10110111B,试求其真值方法1:X原=X补补 =X补反+1 =11001000+1 =11001001B 所以X=-1001001B=-73方法2:利用直接求补法引进补码的意义计算机中,减法实现过程计算机中,减法实现过程(补码减法)补码减法)先对减数进行求
20、补运算;先对减数进行求补运算;再将求补后的数与被减数相加;再将求补后的数与被减数相加;相加的结果即为用补码表示的两数相减结果相加的结果即为用补码表示的两数相减结果 通过引进补码,可将减法运算转换为加法运算,通过引进补码,可将减法运算转换为加法运算,将减法用加法实现,省去减法器,简化硬件将减法用加法实现,省去减法器,简化硬件1.4.3 带符号数的算术运算带符号数的算术运算 即:X+Y补=X补+Y补 X-Y补=X补+-Y补n运算规则:1)和的补码等于补码之和 X+Y补=X补+Y补 2)差的补码等于补码之差 X-Y补=X补-Y补 3)X-Y补=X补+-Y补 -Y补称为对补码数Y补变补,变补规则:对Y
21、补的每一位(包括符号位)按位取反加 1,则结果就是-Y补。解:解:例:已知X=+0110100,Y=+1110100,用补码求Y-X=?解:-X原=10110100 -X补=X反+1=11001100 Y补=Y原=01110100所以:Y-X补=Y补+-X补 =01110100+11001100 =01000000 则 Y-X=010000001.4.4带符号数的表示范围带符号数的表示范围 对8位二进制数,原码、反码和补码所能表示的数的范围为:n原码:-127 +127 (FFH 7FH)n反码:-127 +127 (80H 7FH)n补码:-128 +127 (80H 7FH)对16位二进制
22、数,原码、反码和补码所能表示的数的范围为:n原码:-32767 +32767(FFFFH 7FFFH)n反码:-32767 +32767 (8000H7FFFH)n补码:-32768 +32767 (8000H7FFFH)一个n位的有符号二进制数X,它可表示的数的范围为:n原码:-2n-1+1 X 2n-1-1n反码:-2n-1+1 X 2n-1-1n补码:-2n-1 X 2n-1-1有符号数运算中的溢出问题有符号数运算中的溢出问题n溢出只能出现在两个同号相加或异号相减的情况下。n 1,结果产生溢出。则:X+Y=11100001,1,结果产生溢出。即:次高位向最高位有进位,而最高位向前无进位,
23、产生溢出。(事实上,两正数相加得出负数,结果出错)例1:X=01111000,Y=01101001,计算X+Y=?解:采用公式X-Y补=X补-Y补进行减法运算,并判断溢出情况。1,结果产生溢出。即:次高位向最高位有借位,而最高位向前无借位,产生溢出。(事实上,负数减正数得出正数,结果出错)例2:设X=-110,Y=32,试对减法操作“X-Y”进行溢出判别。1.5 二进制编码二进制编码l计算机处理的信息:数值、字符计算机处理的信息:数值、字符(字母、汉字等字母、汉字等)。l 各字符在计算机中由若干位的二进制数表示。各字符在计算机中由若干位的二进制数表示。l 二进制数与字符之间一一对应的关系,称字
24、符的二进制数与字符之间一一对应的关系,称字符的二进制编码。二进制编码。1.二进制编码的十进制数 n用二进制编码表示的十进制数,称为二十进制码,简称BCD码(Binary Coded Decimal)。n它的特点是保留了十进制的权,而数字则用0和1的组合编码来表示。n十进制数只有09这10种状态,而4位二进制数可表示16种状态(00001111),所以BCD码只使用了00001001这10种状态来表示十进制数的09,剩余的6种状态10101111在BCD码中是非法编码。BCD码与十进制数、二进制数之间的转换码与十进制数、二进制数之间的转换n一个十进制数用BCD码表示,只要对十进制数的每一位按对应
25、关系单独进行转换即可。nBCD码与二进制数之间的转换,一般需要借助于十进制数作为中间桥梁进行转换。即先转换为十进制数,再转换成二进制数;反之同样。n例:(0001 0001.0010 0101)BCD =11.25=(1011.01)2 计算机中计算机中BCD码的存储方式码的存储方式n压缩BCD码 用4位二进制数表示一位十进制数,即用一个字节表示2位BCD码。例如,压缩BCD码0101 0100B=54H,其十进制值为54。n非压缩BCD码 用8位二进制数表示一位十进制数,即高四位为0,低四位表示BCD码。例如,非压缩BCD码0000 0101B=05H,其十进制值为5。而同样是十进制数54,
26、用非压缩BCD码表示为00000101 00000100。二、字母与字符的二进制编码表示1.ASCII码(码(american standard code for information interchange):美国):美国国家标准信息交换码,国家标准信息交换码,微机中普遍采用微机中普遍采用的字符编码。的字符编码。2.表示方法:用表示方法:用7位二进制数表示一个字位二进制数表示一个字符,最高位为符,最高位为0。常见数字、字母和控制字符的ASCII码码ASCII数数字字0 930H39H小小写写a z61H7AH大大写写A Z41H5AH回回车车符符0DH换换行行符符0AH奇偶校验位n在通信过
27、程中,将最高位用作奇偶校验位,以校验数据传送中是否有一位出现错误。n奇校验 加上校验位后编码中“1”的个数为奇数。例:A的ASCII码是41H(100 0001B),具有偶校验的A的ASCII码为41H(0100 0001B)具有奇校验的A的ASCII码为C1H(1100 0001B)n偶校验 加上校验位后编码中“1”的个数为偶数。上例若以偶校验传送,则为41H。n见课后习题1.10 1.111.6 常用术语解释常用术语解释1.位;bit 计算机中的最小存储单位 1Mb=10241024bit=220bit 1Gb=230bit=1024Mb 1Tb=240bit=1024Gb2.字节:Byt
28、e 1 Byte=8bit,1KB=1024 Byte 8位二进制数称为一个字节,数据在内存中常以 Byte为单位进行存储。3.字(word):2个字节为1个字。4.双字(double word):4个字节为1双字。第一章 习题1.1计算机中常用的计数制有哪些?1.2什么是机器码?什么是真值?1.3完成下列数制的转换。(1)10100110B=()D=()H(2)0.11B=()D(3)253.25=()B=()H(4)1011011.101B=()H=()BCD 1.4 8位和16位二进制数的原码、补码和反码可表示的数的范围分别是多少?1.5写出下列真值对应的原码和补码的形式。(1)X=-1
29、110011B(2)X=-71D(3)X=+1001001B1.6符号数10110101B的反码=?补码=?1.7已知X和Y的真值,求X+Y的补码(1)X=-1110111B Y=+1011010B(2)X=56D Y=-21D1.8已知X=-1101001B,Y=-1010110B,用补码求X-Y。1.9请写出下列字符的ASCII码。4A3=!1.10若给字符4和9的ASCII码加奇校验,应是多少?1.11上题中若加偶校验,结果如何?1.12 计算下列表达式 (1)(4EH+10110101B)*(0.0101)BCD=()D (2)4EH-(24/08H+B/2H)=()B?第一章习题答案
30、1.3(1)166,A6H (2)0.75 (3)11111101.01B,FD.4H (4)5B.AH,(1001 0001.0110 0010 0101)BCD1.5(1)原码:11110011 补码:10001101 (2)原码:11000111 补码:10111001 (3)原码:01001001 补码:010010011.6反码:11001010 补码:11001011 1.7(1)X=-1110111B Y=+1011010B解:X+Y补=X补+Y补 X原=11110111B,X补=10001001B Y补=Y原=01011010则:X+Y补=10001001B+01011010B
31、 =11100011B X+Y=-99()X+Y=-29(无溢出)1.7(2)X=56D Y=-21D解:X+Y补=X补+Y补 X原=00111000B,X补=00111000B Y原=10010101B,Y补=11101011B则:X+Y补=00111000B+11101011B =100100011B 自然丢失(无溢出)nX+Y=351.8 X=-1101001B Y=-1010110B解:X-Y补=X补+-Y补 X原=11101001B,X补=10010111B -Y原=01010110B,-Y补=01010110B则:X-Y补=10010111B+01010110B =11101101
32、B X-Y原=10010011 X-Y=-19(无溢出)1.9 34H 41H 33H 3DH 21H1.10 34H,B9H1.11 B4H,39H解:4的ASCII码为34H,即0110100B 所以奇校验为:00110100B即34H 偶校验为:10110100B即B4H1.12(1)(4EH+10110101B)*(0.0101)BCD=?解:4EH=01001110B 01001110B+10110101B =1,00000011B=259 (0.0101)BCD=0.5 所以:259*0.5=129.5(2)4EH-(24/08H+B/2)=?解:4EH=0100 1110B 24/08H=3H B/2=42H/2=21H 21H+3H=24H=0010 0100B 01001110B-00100100B =00101010B