Upload
others
View
12
Download
0
Embed Size (px)
Citation preview
2015年3月5日星期四7时50分45秒 1
2015.3-2015.6
中国科学技术大学 信息科学技术学院
关胜晓
Email:[email protected]
电二楼417(O)、423(Lab.)
2015年3月5日星期四7时50分45秒 2
课程目标
本课程是学习和掌握微机硬件知识和汇编语言程序设计的入门课程,主要内容包括:
16位微型计算机的基本工作原理
汇编语言程序设计微型计算机接口技术32位微机的原理
目的:通过本课程的学习,深入了解微型计算机的基本结构,掌握汇编语言编程方法和接口技术的设计能力,熟悉16/32位机的原理和应用技术。
2015年3月5日星期四7时50分45秒 3
教材周荷琴 冯焕清,微型计算机原理与接口技术(第5版),中国科学技术大学出版社,2013.3
2015年3月5日星期四7时50分45秒 4
成绩评定
四部分组成:课堂作业10%课后作业10%实验成绩10%期末考试70%
2015年3月5日星期四7时50分45秒 5
教学内容
第1章绪论第2章 8086CPU第3章 8086/8088 CPU的指令系统第4章汇编语言程序设计第5章存储器系统第6章 IO接口和并行接口芯片8255A第7章可编程计数器定时器8253及其应用第8章中断和可编程中断控制器8259A第9章串行通信和可编程接口芯片8251A第10章模数(AD)与数模(DA)转换第11章 DMA控制器8237A第12章总线技术第13章 32位微型机的基本工作原理
2015年3月5日星期四7时50分45秒 6
第1章绪论
主要内容:
微型计算机发展概况 各种常用记数制和编码以及它们相互间的转换; 二进制数的算术运算和逻辑运算; 符号数的表示及补码运算; 二进制数运算中的溢出问题
2015年3月5日星期四7时50分45秒 7
1.1 微型计算机发展概况
电子计算机的发展
第一台电子管计算机
阿塔纳索夫-贝瑞计算
机(Atanasoff–Berry
Computer,通常简称
ABC计算机)是世界上
第一台电子数字计算
设备。
阿塔纳索夫-贝瑞计算机的复制品,位于艾奥瓦州立大学达勒姆中心1层
发明者:阿塔纳索夫和克利福德·贝瑞
2015年3月5日星期四7时50分45秒 8
2015年3月5日星期四7时50分45秒 9
1.1 微型计算机发展概况
ABC计算机
功能:求解线性方程组。
利用两个具有29个变量和一个常数项的方程,消掉其中一个变量。
John Vincent Atanasoff Clifford Berry
2015年3月5日星期四7时50分45秒 10
1.1 微型计算机发展概况
ABC计算机
专利问题:ENIAC与ABC
J.·Presper·埃克特和约翰·莫齐利发明了ENIAC,是第一个电子计算设备专利的获得者。
1973年10月19日,美国地方法院法官厄尔·拉尔森认为ENIAC的专利无效,判决说ENIAC从阿塔纳索夫-贝瑞计算机上继承了很多基础思想。
2015年3月5日星期四7时50分45秒 11
1.1 微型计算机发展概况 第一台通用电子计算机ENIAC
重达30吨,占地170平方米,耗电140千瓦,用了18800多个电子管,每秒钟能做5000次加法。
五个基本部件:输入器、输出器、运算器、存储器和控制器。
2015年3月5日星期四7时50分45秒 12
1.1 微型计算机发展概况
电子计算机的发展
第一代:电子管计算机(1939-1956)
2015年3月5日星期四7时50分45秒 13
1.1 微型计算机发展概况
电子计算机的发展
第二代:晶体管计算机(1954-1964)
1954年,贝尔实验室使用800只晶体管组装了世界上第一台晶体管计算机TRADIC。
1961年,世界上最大的晶体管电子计算机ATLAS安装完毕。
1964年,中国制成了第一台全晶体管电子计算机441-B型。
2015年3月5日星期四7时50分45秒 14
1.1 微型计算机发展概况
电子计算机的发展
第三代:中小规模集成电路计算机(1964-1970)
以1964年IBM公司研制成功的360系列通用计算机为标志。
2015年3月5日星期四7时50分45秒 15
1.1 微型计算机发展概况
电子计算机的发展
第四代:大规模、超大规模集成电路计算机(1971-今)
以Intel公司研制的第一代微处理器Intel 4004为标志,这个时期的计算机最为显著的特征是使用了大规模和超大规模集成电路。
2015年3月5日星期四7时50分45秒 16
1.1 微型计算机发展概况
电子计算机的发展第四代:大规模、超大规模集成电路计算机(1971-今)
经历了四个阶段:
第一阶段,是1971~1973年,微处理器有4004、4040、8008。
第二阶段,是1973~1977年,微型计算机的发展和改进阶段。微处理器有8080、8085、M6800、Z80。
第三阶段,是1978~1983年,十六位微型计算机的发展阶段,微处理器有8086、8088、80186、80286、M68000、Z8000。
第四阶段,是从1983年开始为32位微型计算机的发展阶段。微处理器相继推出80386、80486。386、486微型计算机是初期产品。1993年, Intel公司推出了Pentium。
2015年3月5日星期四7时50分45秒 17
1.1 微型计算机发展概况
电子计算机按其性能分类 大中型计算机/巨型计算机(Mainframe Computer) 小型计算机(Minicomputer) 微型计算机(Microcomputer) 单片计算机(Single-Chip Microcomputer),嵌入式计算机
2015年3月5日星期四7时50分45秒 18
1.1 微型计算机发展概况
电子计算机发展趋势 智能化─ 模拟人类大脑思维和交流方式,多种
处理能力
系列化、标准化─ 便于各种计算机硬、软件兼
容和升级
网络化─ 网络计算机和信息高速公路
多机系统─ 大型设备、生产流水线集中管理(独
立控制、故障分散、资源共享)
2015年3月5日星期四7时50分45秒 19
1.1 微型计算机发展概况
微型计算机时代 微型计算机的核心:微处理器(中央处理器
CPU)
微型计算机历程 1974年,罗伯茨用8080微处理器装配了一种专供业余爱好者试验用的计算机“牛郎星”(Altair8800)
1976年,乔布斯和沃兹尼克设计成功了他们的第一台微型计算机(后追认为Apple I)
1977年,第一台真正的个人计算机——Apple II
第一代微机,PC机,以IBM公司的IBM PC/XT机为代表,CPU是8088,诞生于1981年。
2015年3月5日星期四7时50分45秒 20
1.1 微型计算机发展概况
第二代微机——IBM公司于1985年推出的IBM PC/AT,采用80286为CPU,其数据处理和存储管理能力都大大提高第三代微机——1987年,Intel公司推出了80386微处理器。该档次的微机,如386DX第四代微机——1989年,Intel公司推出了80486微处理器。486也分为SX和DX两档,即486SX、486DX第五代微机——1993年Intel公司推出了第五代微处理器Pentium(中文名“奔腾”)。Pentium实际上应该称为80586,但Intel公司出于宣传竞争方面的考虑,改变了“x86”传统的命名方法。
2015年3月5日星期四7时50分45秒 21
1.1 微型计算机发展概况
Intel CPU的发展见下页表。
第六代微机——1998年Intel公司推出了Pentium II、Celeron,后来推出了Pentium Ⅲ、Pentium 4,主要用于高档微机。其他公司也推出了相同档次的CPU,如K6、Athlon XP、VIA C3等第七代微机——面向台式机的64位处理器的出现,标志着64位微机的到来。如LGA 775 奔腾4处理器、酷睿至尊、酷睿i7、酷睿i5、酷睿i3等,AMD的APU A10、APU A8、APU A6等。
2015年3月5日星期四7时50分45秒 22
代发表年份
字长(bits)
型号线宽(m)
晶体管数(万个)
时钟频率(MHz)
速度(MIPS)
一19711972
48
40048008
500.20.3
<1 0.05
二 1974 8 8080 20 0.5 2-4 0.5
三19781982
168086/808880286
2-32.913
4.77-108-20
<11-2
四19851989
328038680486
1-227.5120
12-3325-66
6-1220-40
五 1993 32 Pentium 0.6-0.8 330 60-200 100-200
六
19951996199719992001
32
P/ProP/MMXPIIPIIIP4
0.60.6
0.35.25-.13.18-.13
550450750850
3000
133-200166-233233-450
450-12001300-3000
>300
七2002?
64Itanium?
0.08CPU:2.5KCache:30K
800(20条指令/时钟周期)
>3000
2015年3月5日星期四7时50分45秒 23
Intel第一块CPU 4004,4位主理器,主频108kHz,运算速度0.06MIPs(Million Instructions Per Second, 每秒百万条指令),集成晶体管2,300个,10微米制造工艺,最大寻址内存640 bytes,生产曰期1971年11月8085,8位主理器,主频5M,运算速度0.37MIPs,集成晶体管6,500个,3微米制造工艺,最大寻址内存64KB,生产曰期1976年
8086,16位主理器,主频4.77/8/10MHZ,运算速度0.75MIPs,集成晶体管29,000个,3微米制造工艺,最大寻址内存1MB,生产曰期1978年6月
80486DX,DX2,DX4,32位主理器,主频25/33/50/66/75/100MHZ,总线频率33/50/66MHZ,运算速度20~60MIPs,集成晶体管1.2M个,1微米制造工艺,168针PGA,最大寻址内存4GB,缓存8/16/32/64KB,生产曰期1989年4月
Pentium 4 (478针),至今分为三种核心:Willamette核心(主频1.5G起,FSB400MHZ,0.18微米制造工艺),Northwood核心(主频1.6G~3.0G,FSB533MHZ,0.13微米制造工艺, 二级缓存512K),Prescott核心(主频2.8G起,FSB800MHZ,0.09微米制造工艺,1M二级缓存,13条全新指令集SSE3),生产曰期2001年7月
Celeron一代, 主频266/300MHZ(266/300MHz w/o L2 cache, Covington芯心(Klamath based),300A/333/366/400/433/466/500/533MHz w/128kB L2 cache, Mendocino核心 (Deschutes-based), 总线频率66MHz,0.25微米制造工艺,生产曰期1998年4月)
2015年3月5日星期四7时50分45秒 24
2014年初参考价格:¥7999
Intel Core i7 3970X Extreme Edition64位处理器:是i7-3970X依然保持SNB-E架构接口类型:LGA 2011 生产工艺:32纳米核心数量:六核主频:3.5GHz Turb:支持三级缓存:15M 显示核心:无支持内存:DDR3 1333MHz,DDR3 1600MHz 工作功率:150W
CineBench R11.5 3D渲染测试
2015年3月5日星期四7时50分45秒 25
1.2 微型计算机系统
主要了解 系统的体系结构;
微处理器、微型计算机、微型计算机系统等不同概念的区分。
2015年3月5日星期四7时50分45秒 26
微型计算机系统结构
微型计算机系统
硬件
微型计算机(主机)
微处理器(CPU)
软件
外围设备
运算器控制器
存储器(内存)
RAMROM
外部设备
辅助设备
输入设备(键盘、扫描仪、语音识别仪…)
输出设备(显示器、打印机、绘图仪、…)
辅助存储器(磁带、磁盘、光盘)
输入/输出接口(PIO、SIO、CTC、ADC、DAC…)
(I/O接口)
系统总线 (AB、DB、CB)
系统软件(操作系统,编辑、编译程序,故障诊断,监控程序…)
应用软件(科学计算,工业控制,数据处理…)
程序设计语言(机器语言、汇编语言、高级语言)
电源电路时钟电路
2015年3月5日星期四7时50分45秒 27
主板 微型计算机系统
2015年3月5日星期四7时50分45秒 28
嵌入式系统 嵌入式系统,是将计算机主机(CPU、内存和I/O接口)
集成在一小块硅片上的微型机。
为工业测控而设计的,被称为微控制器MCU。具有:
集成度高、可靠性高、性价比高等优势。
主要应用于工业检测与控制、计算机外设、智能仪器仪表、通讯设备、家用电器等。特别适合于嵌入式微型机应用系统。
2015年3月5日星期四7时50分45秒 29
加深概念
控制器、CPU
微型计算机主机
微型计算机硬件系统
微型计算机软件系统
微型计算机系统
字长:CPU并行处理二进制的数据位数(内部直接处理数据的寄存器位数)。8位机、16位机、32位机和64位机。
2015年3月5日星期四7时50分45秒 30
性能指标
主频
字长
内存容量
存取周期
运算速度
内核数目
高速缓存
2015年3月5日星期四7时50分45秒 31
1.3 计算机中的数制
了解
特点;
表示方法;
相互间的转换。
2015年3月5日星期四7时50分45秒 32
一、常用记数制
十进制——符合人们的习惯
二进制——便于物理实现
十六进制——便于识别、书写
八进制
2015年3月5日星期四7时50分45秒 33
1. 十进制
特点:以十为底,逢十进一;
共有0-9十个数字符号。
表示:
1
11
011
102110
10
10101010
)(
n
mi
ii
mmo
nn
mnn
k
kkkk
kkkkkD
2015年3月5日星期四7时50分45秒 34
2. 二进制
特点:以2为底,逢2进位;
只有0和1两个符号。
表示:
1
11
011
10212
2
2222
)(
n
mi
ii
mmo
nn
mnn
k
kkkk
kkkkkD
2015年3月5日星期四7时50分45秒 35
3. 十六进制
特点:
以16为底,逢16进位;
有0-9及A-F共16个数字符号(数码)。
表示:
1
11
011
102116
16
16161616
)(
n
mi
ii
mmo
nn
mnn
k
kkkk
kkkkkN
2015年3月5日星期四7时50分45秒 36
进位计数制的一般表示
一般地,对任意一个N进制数S都可表示为
其中:ki -- 第i位数码,可以是N个符号中任何一个;n,m – 整数和小数的位数;N -- 基数;Ni -- N进制数的权
1
11
011
1021)(n
mi
ii
mmo
nn
mnnN
NkNkNkNkNk
kkkkkD
2015年3月5日星期四7时50分45秒 37
区分不同进制数字的标识
在数字后面加一个字母进行区分:
二进制:数字后面加B, 如1001B
八进制:数字后面加O, 如1001O
十进制:一般不加, 如1001
十六进制:数字后面加H , 如1001H
在明显可以区分其记数制的情况下,可以省略数字后面的字母
2015年3月5日星期四7时50分45秒 38
0 0000 0 8 1000 8
1 0001 1 9 1001 9
2 0010 2 10 1010 A
3 0011 3 11 1011 B
4 0100 4 12 1100 C
5 0101 5 13 1101 D
6 0110 6 14 1110 E
7 0111 7 15 1111 F
十进制 二进制 十六进制 十进制 二进制 十六进制
不同进制的数码表示
2015年3月5日星期四7时50分45秒 39
二、各种数制间的转换
1. 非十进制数到十进制数的转换
按相应进位计数制的权表达式展开,再按十进制求和。
例:10110010B = (?)10
13FAH = (?)10
2015年3月5日星期四7时50分45秒 40
2. 十进制到非十进制数的转换
十进制 → 二进制的转换:
整数部分:除2取余;
小数部分:乘2取整。
十进制 → 十六进制的转换:
整数部分:除16取余;
小数部分:乘16取整。
以小数点为起点求得整数和小数的各个位。
2015年3月5日星期四7时50分45秒 41
2. 十进制到非十进制数的转换
例:39转换成二进制数39 =100111B
2 39 1 ( b0)2 19 1 ( b1)2 9 1 ( b2)2 4 0 ( b3)2 2 0 ( b4)2 1 1 ( b5)
0
例:208转换成十六进制数
208 = D0H
16 208 余 0
16 13 余 13 = DH
0
2015年3月5日星期四7时50分45秒 42
2. 十进制到非十进制数的转换
1) 0.625转换成二进制数
0.625 ×2 = 1.250 1 (b-1)
0.25 ×2 = 0.50 0 (b-2)
0.5 ×2= 1.0 1 (b-3)
0.625 = 0.101B
2) 0.625转换成十六进制数
0.625 × 16 = 10.0
0.625 = 0.AH
3)208.625 转换成十六进制数
208.625 = 0D0.AH
2015年3月5日星期四7时50分45秒 43
3. 二进制与十六进制间的转换
用4位二进制数表示1位十六进制数
例: 10110001001.110 = (?)H
0101 1000 1001.1100
5 8 9. C
注意:位数不够时要补0
2015年3月5日星期四7时50分45秒 44
1.4 无符号二进制数的运算
无符号数 算术运算
有符号数 逻辑运算
2015年3月5日星期四7时50分45秒 45
一、无符号数的运算
算术运算
包括:
加法运算
减法运算
乘法运算
除法运算
2015年3月5日星期四7时50分45秒 46
1. 规则
加法:1+1=0(有进位), …
减法:0-1=1(有借位), …
乘除法:…
一个数乘以2相当于该数左移一位;除以2
则相当于该数右移1位。
2015年3月5日星期四7时50分45秒 47
例
00001011×0100=00101100B
00001011÷0100=00000010B…11B
即: 商=00000010B
余数=00000011B
2015年3月5日星期四7时50分45秒 48
2. 无符号数的表示范围
一个n位的无符号二进制数X,其表示范围为
0 ≤ X ≤ 2n-1
若运算结果超出这个范围,则产生溢出。
(或者说运算结果超出n位,则产生溢出)
判别方法:
运算时,当最高位向更高位有进位(或借位)时则产生溢出。
2015年3月5日星期四7时50分45秒 49
例
1111 1111
+ 0000 0001
1 0000 0000
结果超出8位(最高位有进位),发生溢出。(结果为256,超出8位二进制数所能表示的范围0-255)
2015年3月5日星期四7时50分45秒 50
3. 逻辑运算
与( .)、或(+)、非( ' ) 、异或(⊕)
特点:按位运算,无进借位
运算规则
…..
例:A=1011 0110, B=0110 1011
求:AB, A+B, A⊕B
2015年3月5日星期四7时50分45秒 51
4. 逻辑门
逻辑门:完成逻辑运算的电路
掌握:
与、或、非门逻辑符号和逻辑关系(真值表);
与非门、或非门的应用。
2015年3月5日星期四7时50分45秒 52
与门(AND Gate)
Y = AB
A B Y
0 0 0
0 1 0
1 0 0
1 1 1
&A
BY
注:基本门电路仅完成1位二进制数的运算
2015年3月5日星期四7时50分45秒 53
或门(OR Gate)
Y = A+B
A B Y
0 0 0
0 1 1
1 0 1
1 1 1
Y
A
B
≥1
2015年3月5日星期四7时50分45秒 54
非门(NOT Gate)
1A Y
Y = A'
A Y
0 1
1 0
2015年3月5日星期四7时50分45秒 55
异或门(eXclusive OR Gate)
Y = A⊕B
YA
B =1
A B Y
0 0 0
0 1 1
1 0 1
1 1 0
2015年3月5日星期四7时50分45秒 56
5. 译码器
74LS138译码器:
G1
G2A
G2B
C
B
A
Y0
Y7
•
•
•
•译码输出
译码输入
译码使能
2015年3月5日星期四7时50分45秒 57
74LS138真值表使 能端 输 入端 输 出 端
G1 #G2A #G2B C B A #Y0 #Y1 #Y2 #Y3 #Y4 #Y5 #Y6 #Y7
0 1 1 0 1 1 0 1 0 01 0 01 0 01 0 01 0 01 0 01 0 01 0 0
0 0 00 0 10 1 00 1 11 0 01 0 11 1 01 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 11 1 1 1 1 1 1 10 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 0
2015年3月5日星期四7时50分45秒 58
1.5 带符号二进制数的运算
计算机中的带符号二进制数
将二进制数的最高位定义为符号位
符号位为 0 表示正数,符号位为 1 表示负数
连同符号位一起数值化了的数,称为机器数。
机器数所表示的真实的数值,称为真值。
2015年3月5日星期四7时50分45秒 59
1.5 带符号二进制数的运算
举例:一个8位机器数与它的真值对应关系如下:
真 值: X1=+84=+101 0100BX2= -84= -101 0100B
机器数: [X1]机= 0101 0100
[X2]机= 1101 0100
2015年3月5日星期四7时50分45秒 60
[例]
+52 = +0110100 = 0 0110100
符号位 数值位
-52 = -0110100 = 1 0110100
真值 机器数
2015年3月5日星期四7时50分45秒 61
1. 符号数的表示方法
对于符号数,机器数常用的表示方法有原码、反码和补码三种。
数X的原码记作X原,反码记作
X反,补码记作X补。
注意:对正数,三种表示法均相同。
它们的差别在于对负数的表示。
2015年3月5日星期四7时50分45秒 62
•原码X原
定义
符号位:0表示正,1表示负;
数值位:真值的绝对值。
11
1
202
02nn
n
XX
XXX原
2015年3月5日星期四7时50分45秒 63
原码的例子
真值 X=+18= + 001 0010X=-18= - 001 0010
符号
原码 X原 = 0 001 0010X原 = 1 001 0010
符号位
n位原码表示数值的范围是
对应的原码是1111~ 0111。
- (2n-1-1) ~ + (2n-1-1)
2015年3月5日星期四7时50分45秒 64
数0的原码
8位数0的原码:+0 = 0 0000000
- 0 = 1 0000000
即:数0的原码不唯一。
2015年3月5日星期四7时50分45秒 65
•反码X反
定义
若X≥0 ,则 X反=X原
若X≤0,则 X反= 对应原码的符号位
不变,数值部分按位求反
1
1
201-2
02nn
n
XX
XXX反
2015年3月5日星期四7时50分45秒 66
[例]
X= - 52 = -011 0100
X原 = 1011 0100
X反 = 1100 1011
2015年3月5日星期四7时50分45秒 67
反码的例子
真值 X=+18= +001 0010X= -18= -001 0010
符号
反码 X反 =0 001 0010X反 =1 110 1101
符号位
n位反码表示数值的范围是
对应的反码是1000~ 0111。
- (2n-1-1) ~ + (2n-1-1)
2015年3月5日星期四7时50分45秒 68
0的反码:
+0反 = 0000 0000
-0反 = 1111 1111
即:数0的反码不唯一。
2015年3月5日星期四7时50分45秒 69
•补码
定义:
若X≥0, 则X补= X反= X原
若X≤0, 则X补= X反+1
1
1
202
02nn
n
XX
XXX
2015年3月5日星期四7时50分45秒 70
[例]
X= –52= – 011 0100
X原 = 1011 0100
X反 = 1100 1011
X补 = X反+1=1100 1100
n位补码表示数值的范围是
对应的补码是1000~ 0111。
- 2n-1 ~ + (2n-1-1)
2015年3月5日星期四7时50分45秒 71
0的补码:
+0补= +0原=0000 0000
-0补= -0反+1=1111 1111+1
=1 0000 0000
对8位字长,进位被舍掉
∴+0补= -0补= 0000 0000
2015年3月5日星期四7时50分45秒 72
•特殊数1000 0000
该数在原码中定义为: -0
在反码中定义为: -127
在补码中定义为: -128
对无符号数:(1000 0000)2 = 128
2015年3月5日星期四7时50分45秒 73
8位有符号数的表示范围:
对8位二进制数:
原码: -127 ~ +127
反码: -127 ~ +127
补码: -128 ~ +127
思考:16位有符号数的表示范围是多少?
2015年3月5日星期四7时50分45秒 74
2. 有符号二进制数与十进制的转换
对用补码表示的二进制数:
1)求出真值
2)进行转换
2015年3月5日星期四7时50分45秒 75
例
将一个用补码表示的二进制数转换为十进制数。
1) X补 = 0 010 1110B 真值为:+ 010 1110B
正数
所以:X=+46
2) X补 = 1 101 0010B
负数
X = [[X]补]补= [1101 0010]补= - 010 1110B
所以:X = - 46
2015年3月5日星期四7时50分45秒 76
3. 补码加减法的运算规则
通过引进补码,可将减法运算转换为加法运算。规则如下:
[X+Y]补=[X]补+[Y]补
[X-Y]补=[X]补+ [-Y]补
其中X、Y为正负数均可,符号位参与运算。
2015年3月5日星期四7时50分45秒 77
*补码的运算原理
模(module)就是一个计数系统的最大容量。例如,钟表的模为12,8位二进制数的模为28。
凡是用器件进行的运算都是有模运算,运算结果超过模的部分会被运算器自动丢弃。因此,当器件为n位时,有
X=2n+X (mod 2n)
不难验证,[X]补=2n+X (mod 2n)
因此,[XY]补= 2n + (XY) (mod 2n)
= (2n+X) + (2n Y) (mod 2n)= [X]补+ [Y]补
2015年3月5日星期四7时50分45秒 78
例
X=-011 0100,Y=+111 0100,求[X+Y]补[X]原=1011 0100
[X]补= [X]反+1=1100 1100
[Y]补= [Y]原=0111 0100
所以: [X+Y]补= [X]补+ [Y]补=1100 1100+0111 0100
=1 0100 0000
舍弃
2015年3月5日星期四7时50分45秒 79
4. 符号数运算中的溢出问题
进(借)位——
在加法过程中,符号位向更高位产生进位;
在减法过程中,符号位向更高位产生借位。
溢出——
运算结果超出运算器所能表示的范围。
2015年3月5日星期四7时50分45秒 80
溢出的判断方法
方法1:
同号相减或异号相加——不会溢出。
同号相加或异号相减——可能溢出:
两种情况:
同号相加时,结果符号与加数符号相反——溢出;
异号相减时,结果符号与减数符号相同——溢出。
方法2:
对于两个n位有符号二进制数相加或相减时,若异或:
Cn-1Cn-2=1
则结果产生溢出。
Cn-1为最高位的进(借)位;Cn-2为次高位的进(借)位。
2015年3月5日星期四7时50分45秒 81
有符号数运算,有溢出,表示结果错误;无符号数运算,有进位,表示结果错误。
1 0 1 1 0 1 0 1+ 1 0 0 0 1 1 1 11 0 1 0 0 0 1 0 0
例1:
结论:若为无符号数,则因为最高位产生进位,故溢出;若为有符号数,最高位为符号位,均为负数,所得结果产生相反的符号(+),故也溢出。
进位 符号位
2015年3月5日星期四7时50分45秒 82
0 1 0 0 0 0 1 0+ 0 1 1 0 0 0 1 1
0 1 0 0 1 0 1
例2:
结论:若为无符号数,相加后没有产生进位,即没有超出无符号数的表达范围,故无溢出;若为有符号数,两个正数相加,结果也应该为正,由于C7=0,C6=1,故C7C6=1,则溢出。
1
2015年3月5日星期四7时50分45秒 83
0 1 0 0 0 0 1 0+ 1 1 0 0 1 1 0 11 0 0 0 0 1 1 1 1
例3:
+66+ (-51)+ 15
结论:若为无符号数,相加后产生进位,即超出无符号数的表达范围,故溢出;若为有符号数,一个正数与一个负数相加。由于C7=1,C6=1,故C7C6=0,则无溢出。
2015年3月5日星期四7时50分45秒 84
1.6 二进制编码
一、十进制数的表示——BCD码 用4位二进制数表示一位十进制数。有两种表示法:压缩BCD码和非压缩BCD码。
压缩BCD码的每一位用4位二进制表示,0000 ~ 1001表示0~9,一个字节表示两位十进制数。
非压缩BCD码用一个字节表示一位十进制数,高4位总是0000,低4位的0000~1001表示0~9。
2015年3月5日星期四7时50分45秒 85
计算机中除了能够处理数值数据以外,还可以处理文字、语音、图像等各种信息,这些信息统称为非数值数据。
非数值数据在计算机中也必须以二进制形式表示,非数值数据的表示本质上是编码的过程。
最常用的数据编码:美国标准信息交换代码(American Standard Code for Information Interchange, ASCII码)
(见下页ASCII编码表,教材中的附录A)
二、非数值数据的表示
2015年3月5日星期四7时50分45秒 86
ASCII码—美国标准信息交换代码 ASCII字符表
000 001 010 011 100 101 110 111
0000 NUL DLE SP 0 @ P ` p 0001 SOH DC1 ! 1 A Q a q 0010 STX DC2 " 2 B R b r 0011 ETX DC3 # 3 C S c s 0100 EOT DC4 $ 4 D T d t 0101 ENG NAK % 5 E U e u 0110 ACK SYN & 6 F V f v 0111 BEL ETB ' 7 G W g w 1000 BS CAN ( 8 H X h x 1001 HT EM ) 9 I Y i y 1010 LF SUB * : J Z j z 1011 VT ESC + ; K [ k { 1100 FF FS , < L \ l | 1101 CR GS - = M ] m } 1110 SO RS . > N n ~
1111 SI US / ? O o DEL 注:H 表示高 3 位,L 表示低 4 位。
H L
2015年3月5日星期四7时50分45秒 87
ASCII码
采用7位二进制代码对字符进行编码
数字0~9的编码是0110000~0111001,它们的高3位均是011,后4位正好与其对应的二进制代码(BCD码)相符。
英文字母A~Z的ASCII码从1000001(41H)开始顺序递增,字母a~z的ASCII码从1100001(61H)开始顺序递增,这样的排列对信息检索十分有利。
最高位通常总为0,有时也用作奇偶校验位。
2015年3月5日星期四7时50分45秒 88
汉字编码
“国家标准信息交换用汉字编码”(GB2312-80标准),简称国标码。
用两个七位二进制数编码表示一个汉字
例如“巧”字的代码是39H、41H
“保”字的国标码为31H、23H
汉字内码:在计算机内表示汉字的代码是汉字机内码,汉字机内码由国标码演化而来,把表示国标码的两个字节的最高位分别加“1”,就变成汉字机内码。
例如,
“巧”字的机内码是0B9H、0C1H
“保”字的机内码就是0B1H、0A3H
2015年3月5日星期四7时50分45秒 89
1.7 计算机中常用数据单位
bit1Mb=10241024bit=220bit1Gb=230bit=1024Mb1Tb=240bit=1024Gb
Byte1 Byte=8bit,1KB=1024 Byte,…
Word表示字长,有1bit, 4bit, 8bit, 16bit等,一般情况下为2Byte(16bit)。
2015年3月5日星期四7时50分45秒 90
第1章难点
补码的概念及其运算
有符号数运算的溢出问题
2015年3月5日星期四7时50分45秒 91
课堂练习
1、请写出数据+37和-37的原码、反码和补码表示形式(8位机器数)
2、8位机器数46H,在作为无符号数、补码有符号数、BCD码以及ASCII时分别表示什么真值或含义?
3、用8位二进制补码列算式计算:
75+28、75-28、-75+28、-75-28
并判断结果是否产生溢出?
2015年3月5日星期四7时50分45秒 92
本章结束
作业:PP.20~21
3、6、7、11、13