微机原理与接口技术
(基于 16位机)
作 者
周佩玲 彭 虎 傅忠谦
中国科学技术大学
第一章 计算机基本知识
? 绪论
?计算机的发展概况
?微型计算机中信息的表示及运算基础
?几种进位制数之间的相互转换
1·1 绪 论
1946年世界上第一台电子计算机由美国宾夕法尼
亚大学研制成功。尽管它重达 30吨,占地 170平方米,
耗电 140千瓦,用了 18800多个电子管,每秒钟仅能做
5000次加法,
这台计算机有五个基本部件:输入器、输出器、
运算器、存储器和控制器,奠定了当代电子数字计算
机体系结构的基础。
1·2 计算机的发展概况
? 一、计算机的发展概况
第一代:电子管计算机时代( 1947~1957)
第二代:晶体管计算机时代( 1958~1964)
第三代:集成电路计算机时代( 1964~ 1972)
第四代:超大规模集成电路( VLSI)计算机时代
( 1972年 ~ )。
第五代:智能计算机( 1981年 ~ )。
? 二、微处理器及微型计算机的发展概况
第一代微处理器 是以 Intel公司 1971年推出的 4004,4040为代
表的四位微处理机。
第二代微处理机 ( 1973年 ~1977年),典型代表有,Intel 公
司的 8080,8085; Motorola公司的 M6800以及 Zlog公司的 Z80。
第三代微处理机 第三代微机是以 16位机为代表,基本上是在
第二代微机的基础上发展起来的。其中 Intel公司的 8088。
8086是在 8085的基础发展起来的; M68000是 Motorola公司在
M6800 的基础发展起来的;
第四代微处理机 以 Intel公司 1984年 10月推出的 80386CPU和
1989年 4月推出的 80486CPU为代表,
第五代微处理机 的发展更加迅猛,1993年 3月被命名为
PENTIUM的微处理机面世,98年 PENTIUM 2又被推向市场。
? 三、计算机编程语言的发展概况
机器语言 机器语言就是 0,1 码语言, 是 Von
Neumann机唯一能理解并直接执行的语言 。
汇编语言 用一些助记符号代替用 0,1码描述的某种
机器的指令系统, 汇编语言就是在此基础上完善起
来的 。
高级语言 BASIC,PASCAL,C语言等等 。 用高级语
言编写的程序称源程序, 它们必须通过编译或解释,
连接等步骤才能被计算机处理 。
面向对象语言 C++,Java等编程语言是面向对象的语
言 。
基于规则的智能化语言 Visual C++,Visual Basic,等
语言
1·3 微型计算机中信息的表示
及运算基础
? 一、二进制数的表示与运算
? 1,二进制数的表示
二进制数仅有两个计数符号,0,1。
11010010=1× +1× 2+0× 2+1× 2+0× 2
+0× 2+1× 2+0× 2
? 2、二进制数的运算
?( 1)、算术运算
加法规则:“逢 2进 1”
减法规则:“借 1当 2”
乘法规则:“逢 0出 0,全 1出 1”
?( 2)、逻辑运算
逻辑非( NOT)运算:
0— 1,1— 0
逻辑与( AND)运算
0 AND 0=0 0 AND 1=0
1 AND 0=0 1 AND 1=0
逻辑或( OR)运算
0 OR 0=0 0 OR 1=1
1 OR 0=1 1 OR 1=1
逻辑异或( XOR)运算,又称“模 2和”
运算
0 XOR 0=0 0 XOR 1=1
1 XOR 0=1 1 XOR 1=1
? 二,二 — 十进制( BCD)数的表示
与运算
? 1、二 — 十进制数的表示
0 0000 5 0101
1 0001 6 0110
2 0010 7 0111
3 0011 8 1000
4 0100 9 1001
?2、二 — 十进制数的加、减运算
BCD数的运算规则 循十进制数的运
算规则“逢 10进 1”。但计算机在进行
这种运算时会出现潜在的错误。为了
解决 BCD数的运算问题,采取调整运
算结果的措施。
例:
10001000(BCD)+01101001(BCD)=000101010111(BCD)
1 0 0 0 1 0 0 0
+ 0 1 1 0 1 0 0 1
1 1 1 1 0 0 0 1
+ 0 1 1 0 0 1 1 0 …… 调整
1 0 1 0 1 0 1 1 1
进位
例:
10001000(BCD)- 01101001(BCD)= 00011001(BCD)
1 0 0 0 1 0 0 0
- 0 1 1 0 1 0 0 1
0 0 0 1 1 1 1 1
- 0 1 1 0 …… 调整
0 0 0 1 1 0 0 1
?三、十六进制数的表示与运算
?1、十六进制数的表示
十进制( D) 二进制( B) 二 — 十进制( BCD) 十六进制( H)
0 0 0 0 0 0 0 0 0 0
1 0 0 0 1 0 0 0 1 1
2 0 0 1 0 0 0 1 0 2
3 0 0 1 1 0 0 1 1 3
4 0 1 0 0 0 1 0 0 4
5 0 1 0 1 0 1 0 1 5
6 0 1 1 0 0 1 1 0 6
7 0 1 1 1 0 1 1 1 7
8 1 0 0 0 1 0 0 0 8
9 1 0 0 1 1 0 0 1 9
10 1 0 1 0 × A
11 1 0 1 1 × B
12 1 1 0 0 × C
13 1 1 0 1 × D
14 1 1 1 0 × E
15 1 1 1 1 × F
?2、十六进制数的加、减运算
加法运算:“逢 16进 1”。
减法运算:“借 1当 16”
?四,带符号二进制数的表示与运算
?1、原码表示
正号“+”和负号,—,在计算机中只能用 0和 1表
示,
我们用 0表示“+”号,用 1表示“-”号,并且
符号放
在最高有效位。
一个 8位的二进制表示一个带符号数,最高有效位
D7位为符号位。
如,+ 1表示为,0 0 0 0 0 0 0 1 B
+ 127表示为,0 1 1 1 1 1 1 1 B
- 1表示为,1 0 0 0 0 0 0 1 B
- 127表示为,1 1 1 1 1 1 1 1 B
?2、补码表示法:
对 1个正的二进制数的每位求反再加 1,
即可得在机器中表示的该数的负数,称 2
的补码表示法。在这种编码方式中,正数
的补码就是该正数。以 8位二进制为例,
求一负数的补码。
例:+ 1 0 0 0 0 0 0 0 1
每位求反 1 1 1 1 1 1 1 0
加 1 + 1
- 1 1 1 1 1 1 1 1 1
表 1— 2 带符号数 2的补码值表( 8位)
十进制 十六进制( H) 2的补码值( B)
+ 127 7 F 0 1 1 1 1 1 1 1
+ 100 6 4 0 1 1 0 0 1 0 0
+ 3 3 0 0 0 0 0 0 1 1
+ 2 2 0 0 0 0 0 0 1 0
+ 1 1 0 0 0 0 0 0 0 1
0 0 0 0 0 0 0 0 0 0
- 1 F F 1 1 1 1 1 1 1 1
- 2 F E 1 1 1 1 1 1 1 0
- 100 9 C 1 0 0 1 1 1 0 0
- 128 8 0 1 0 0 0 0 0 0 0
?3、带符号数的运算
带符号数在计算机中用其补码表
示后,其运算方法与二进制运算相
同,但也会出现其 特有的问题。请
看教材上的例题。
?4、带符号数的符号扩展表示
对无符号数扩展,仅在其数据之
前加上若干位 0即可;而带符号数的
扩展实际是在高位补符号位。
如:
+ 5的 16位表示 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1
- 5的 16位表示 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1
?五,实型数的表示
一般 8位和 16位的微处理机都是基于定
点运算,不具备通用计算机那样复杂的数
值运算指令,浮点和长整数的运算要用软
件处理,因而速度慢。 80380,80486等
CPU中配置了专门用于处理浮点运算的
部件。浮点部件所处理的实型数(又称浮
点数)。
形式是,(-1)S2E(b0b1b2...bp-1)。
其中 S是符号位,0为正,1为负; E为指数(称
阶码),是一个二进制整数; bi为二进制有效数
字位(称尾数),p为精度位数。
?六、字符的编码表示
?1,ASCII 码表示
所谓 ASCII码( American Standard Code
for Information Interchange),即美国标
准信息交换码。它将数字 0- 9,字母 A-Z
和 a-z以及一些运算符号等按标准进行二
进制编码。
请看教材的表格。
?2、汉字编码表示
为了能在不同的汉字系统之间互相通
信、共享汉字信息。我国制定并推行一种
汉字编码,称 GB2312— 80国家标准信息
交换用汉字编码字符集(基本集),简称
国标码。在国标码中,每个国形字符都规
定了二进制表示的编码,一个汉字用二个
字节编码,每个字节用 7位二进制,高位
置为 0。国标码在计算机中容易与 ASCII混
淆,在中西文兼用时无法使用。在若将国
标码每个字节的高位置 1,作为标示符,
则可与 ASCII码区分。这种汉字编码又称
内部码。
? 1,4 几种进位制数之间的相互转换
? 一,十进制整数到任意进制整数的转换
?1,十进制整数转换成其他进制整数
除 R取余 R为基数
?2,十进制小数转换成其他进制小数
乘 R取整 R为基数
?二,任意进制整数到十进制整数
之间的转换
按权展开,先乘后加
? 三,二进制数和十六进制数之间的
相互转换
1,二进制数转换成十六进制数方法:
将二进制数从右边开始每 4位可分为 1
个十六进制数,左边不够 4位则用 0补充。
2,十六进制整数转换成二进制数方法:
将每位十六进制数用 4个二进制位表示
即可。
?四、带符号二进制数到十进制整数
之间的转换
如果符号位为 0,则该数为正数,
它可按位权展开;反之,符号位为 1,
它不能按正常位权那样展开。所以,
对带符号二进制负数除符号位外,
对二进制数求反加 1后,再按位权展
开并添上符号,才能将负的二进制
数转换成十进制数。