28
微微微微微微微微微 微微 16 微微微微微 微微 微微微 微微 微微微微微微微微 微微微微微微微微

微机原理与接口技术 (基于 16 位机)

  • Upload
    becca

  • View
    214

  • Download
    0

Embed Size (px)

DESCRIPTION

微机原理与接口技术 (基于 16 位机). 作 者 周佩玲 彭 虎 傅忠谦 中国科学技术大学. 第 1 章 计算机基本知识. 绪论 计算机的发展概况 微型计算机中信息的表示及运算基础 几种进位制数之间的相互转换. 1·1 绪 论. 1946 年世界上第一台电子计算机由美国宾夕法尼亚大学研制成功。尽管它重达 30 吨,占地 170 平方米,耗电 140 千瓦,用了 18800 多个电子管,每秒钟仅能做 5000 次加法 . - PowerPoint PPT Presentation

Citation preview

微机原理与接口技术 (基于 16 位机)

作 者作 者 周佩玲 彭 虎 傅忠谦周佩玲 彭 虎 傅忠谦 中国科学技术大学中国科学技术大学

第 1 章 计算机基本知识 绪论绪论计算机的发展概况计算机的发展概况微型计算机中信息的表示及运算基础微型计算机中信息的表示及运算基础几种进位制数之间的相互转换几种进位制数之间的相互转换

1·1 绪 论

19461946 年世界上第一台电子计算机由美国宾夕法尼年世界上第一台电子计算机由美国宾夕法尼亚大学研制成功。尽管它重达亚大学研制成功。尽管它重达 3030 吨,占地吨,占地 170170 平方平方米,耗电米,耗电 140140 千瓦,用了千瓦,用了 1880018800 多个电子管,每秒钟多个电子管,每秒钟仅能做仅能做 50005000 次加法次加法 ..

这台计算机有五个基本部件:输入器、输出器、这台计算机有五个基本部件:输入器、输出器、运算器、存储器和控制器,奠定了当代电子数字计算运算器、存储器和控制器,奠定了当代电子数字计算机体系结构的基础。机体系结构的基础。

1·2 计算机的发展概况 一、计算机的发展概况一、计算机的发展概况

第一代:电子管计算机时代(第一代:电子管计算机时代( 1947~19571947~1957 ))第二代:晶体管计算机时代(第二代:晶体管计算机时代( 1958~19641958~1964 ))第三代:集成电路计算机时代(第三代:集成电路计算机时代( 19641964 ~~ 19721972 ))第四代:超大规模集成电路(第四代:超大规模集成电路( VLSIVLSI )计算机时代)计算机时代 (( 19721972 年年 ~ ~ )。)。 第五代:智能计算机(第五代:智能计算机( 19811981 年年 ~ ~ )。)。

二、微处理器及微型计算机的发展概况二、微处理器及微型计算机的发展概况 第一代微处理器第一代微处理器是以是以 IntelIntel 公司公司 19711971 年推出的年推出的 40044004 ,, 40404040

为代表的四位微处理机。 为代表的四位微处理机。 第二代微处理机第二代微处理机(( 19731973 年年 ~1977~1977 年),典型代表有:年),典型代表有: Intel Intel

公司的公司的 80808080 、、 80858085 ;; MotorolaMotorola 公司的公司的 M6800M6800 以及以及 ZlogZlog 公公司的司的 Z80Z80 。 。

第三代微处理机第三代微处理机 第三代微机是以 第三代微机是以 1616 位机为代表,基本上是在位机为代表,基本上是在第二代微机的基础上发展起来的。其中第二代微机的基础上发展起来的。其中 IntelIntel 公司的公司的 80888088 。。 88086086 是在是在 80858085 的基础发展起来的;的基础发展起来的; M68000M68000 是是 MotorolaMotorola 公司公司在在 M6800 M6800 的基础发展起来的; 的基础发展起来的;

第四代微处理机 第四代微处理机 以以 IntelIntel 公司公司 19841984 年年 1010 月推出的月推出的 80386CPU80386CPU和和 19891989 年年 44 月推出的月推出的 80486CPU80486CPU 为代表, 为代表,

第五代微处理机第五代微处理机的发展更加迅猛,的发展更加迅猛, 19931993 年年 33 月被命名为月被命名为 PENPENTIUMTIUM 的微处理机面世,的微处理机面世, 9898 年年 PENTIUM 2PENTIUM 2 又被推向市场。又被推向市场。

三、计算机编程语言的发展概况三、计算机编程语言的发展概况 机器语言机器语言 机器语言就是机器语言就是 00 ,, 11 码语言,是码语言,是 Von NeumVon Neum

annann 机唯一能理解并直接执行的语言。机唯一能理解并直接执行的语言。汇编语言汇编语言 用一些助记符号代替用用一些助记符号代替用 00 ,, 11 码描述的某码描述的某

种机器的指令系统,汇编语言就是在此基础上完善种机器的指令系统,汇编语言就是在此基础上完善起来的。起来的。

高级语言高级语言 BASICBASIC ,, PASCALPASCAL ,, CC 语言等等。用高语言等等。用高级语言编写的程序称源程序,它们必须通过编译或级语言编写的程序称源程序,它们必须通过编译或解释,连接等步骤才能被计算机处理。 解释,连接等步骤才能被计算机处理。

面向对象语言面向对象语言 C++C++ ,, JavaJava 等编程语言是面向对象的等编程语言是面向对象的语言。语言。

基于规则的智能化语言基于规则的智能化语言 Visual C++Visual C++ 、、 Visual BasicVisual Basic 、、等语言 等语言

1·3 微型计算机中信息的表示 及运算基础 一、二进制数的表示与运算一、二进制数的表示与运算

11 、、 二进制数的表示二进制数的表示二进制数仅有两个计数符号:二进制数仅有两个计数符号: 00 ,, 11 。。

11010010=111010010=1××+1+1××2+02+0××2+12+1××2+02+0××2+2+00××2+12+1××2+02+0××2 2

22 、二进制数的运算、二进制数的运算( ( 11 )、算术运算)、算术运算

加法规则:“逢加法规则:“逢 22 进进 1”1”

减法规则:“借减法规则:“借 11 当当 2”2”

乘法规则:“逢乘法规则:“逢 00 出出 00 ,全,全 11 出出1”1”(( 22 )、逻辑运算)、逻辑运算

逻辑非(逻辑非( NOTNOT )运算:)运算: 0—10—1 ,, 1—01—0

逻辑与(逻辑与( ANDAND )运算 )运算 0 AND 0=00 AND 0=0 0 AND 1=00 AND 1=01 AND 0=01 AND 0=0 1 AND 1=01 AND 1=0

逻辑或(逻辑或( OROR )运算)运算0 OR 0=00 OR 0=0 0 OR 1=10 OR 1=11 OR 0=11 OR 0=1 1 OR 1=11 OR 1=1

逻辑异或(逻辑异或( XORXOR )运算,又称“模)运算,又称“模 22 和”和”运算运算0 XOR 0=00 XOR 0=0 0 XOR 1=10 XOR 1=11 XOR 0=11 XOR 0=1 1 XOR 1=11 XOR 1=1

二、二、 二—十进制(二—十进制( BCDBCD )数的表示)数的表示 与运算与运算

11 、二—十进制数的表示、二—十进制数的表示 0 0000 5 01010 0000 5 0101

1 0001 6 01101 0001 6 0110

2 0010 7 01112 0010 7 0111

3 0011 8 1000 3 0011 8 1000

4 0100 9 1001 4 0100 9 1001

22 、二—十进制数的加、减运算、二—十进制数的加、减运算 BCDBCD 数的运算规则 循十进制数的运数的运算规则 循十进制数的运

算规则“逢算规则“逢 1010 进进 1”1” 。但计算机在进。但计算机在进行这种运算时会出现潜在的错误。为行这种运算时会出现潜在的错误。为了解决了解决 BCDBCD 数的运算问题,采取调整数的运算问题,采取调整运算结果的措施。运算结果的措施。

例:例: 10001000(BCD)+01101001(BCD)=000101010111(BC10001000(BCD)+01101001(BCD)=000101010111(BC

D) D)

1 0 0 0 1 0 0 01 0 0 0 1 0 0 0

+ + 0 1 1 0 1 0 0 10 1 1 0 1 0 0 1

1 1 1 1 0 0 0 1 1 1 1 1 0 0 0 1

+ + 0 1 1 0 0 1 1 0 ……0 1 1 0 0 1 1 0 …… 调整调整 1 0 1 0 1 0 1 1 11 0 1 0 1 0 1 1 1

进位进位

例:例: 10001000(BCD)10001000(BCD) - - 01101001(BCD)= 00011001(BCD) 01101001(BCD)= 00011001(BCD)

1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0

- - 0 1 1 0 1 0 0 10 1 1 0 1 0 0 1

0 0 0 1 1 1 1 10 0 0 1 1 1 1 1

- - 0 1 1 0 ……0 1 1 0 …… 调整调整 0 0 0 1 1 0 0 1 0 0 0 1 1 0 0 1

三、十六进制数的表示与运算三、十六进制数的表示与运算

11 、十六进制数的表示、十六进制数的表示

十进制(十进制( DD ) 二进制() 二进制( BB ) 二—十进制() 二—十进制( BCDBCD ) 十六进制() 十六进制( HH )) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 1 1 0 0 0 1 0 0 0 1 0 0 0 1 10 0 0 1 1 2 2 0 0 1 0 0 0 1 0 0 0 1 0 20 0 1 0 2 3 3 0 0 1 1 0 0 1 1 0 0 1 1 3 0 0 1 1 3 4 4 0 1 0 0 0 1 0 0 0 1 0 0 40 1 0 0 4 5 5 0 1 0 1 0 1 0 1 0 1 0 1 5 0 1 0 1 5 6 6 0 1 1 0 0 1 1 0 0 1 1 0 6 0 1 1 0 6 7 7 0 1 1 1 0 1 1 1 0 1 1 1 70 1 1 1 7 8 8 1 0 0 0 1 0 0 0 1 0 0 0 81 0 0 0 8 9 9 1 0 0 1 1 0 0 1 1 0 0 1 91 0 0 1 9 10 10 1 0 1 0 1 0 1 0 × A × A 11 11 1 0 1 1 1 0 1 1 × B × B 12 12 1 1 0 0 × C 1 1 0 0 × C 13 13 1 1 0 1 × D1 1 0 1 × D 14 14 1 1 1 0 × E1 1 1 0 × E 15 15 1 1 1 1 × F 1 1 1 1 × F

22 、十六进制数的加、减运算、十六进制数的加、减运算 加法运算:“逢加法运算:“逢 1616 进进 1”1” 。。

减法运算:“借减法运算:“借 11 当当 16”16”

四、四、 带符号二进制数的表示与运算带符号二进制数的表示与运算 11 、原码表示、原码表示正号“+”和负号“—”在计算机中只能用正号“+”和负号“—”在计算机中只能用 00 和和 11 表表

示,示,我们用我们用 00 表示“+”号,用表示“+”号,用 11 表示“-”号,并且符表示“-”号,并且符

号放号放在最高有效位。在最高有效位。一个一个 88 位的二进制表示一个带符号数,最高有效位位的二进制表示一个带符号数,最高有效位 D7D7

位为符号位。位为符号位。如:如: ++ 11 表示为: 表示为: 0 0 0 0 0 0 0 1 B 0 0 0 0 0 0 0 1 B

++ 127127 表示为:表示为: 0 1 1 1 1 1 1 1 B 0 1 1 1 1 1 1 1 B

-- 11 表示为: 表示为: 1 0 0 0 0 0 0 1 B 1 0 0 0 0 0 0 1 B

-- 127127 表示为:表示为: 1 1 1 1 1 1 1 1 B1 1 1 1 1 1 1 1 B

22 、补码表示法:、补码表示法: 对对 11 个正的二进制数的每位求反再加个正的二进制数的每位求反再加 11 ,即,即可得在机器中表示的该数的负数,称可得在机器中表示的该数的负数,称 22 的补码的补码表示法。在这种编码方式中,正数的补码就是表示法。在这种编码方式中,正数的补码就是该正数。以该正数。以 88 位二进制为例,求一负数的补码。位二进制为例,求一负数的补码。

例:+例:+ 1 1 0 0 0 0 0 0 0 10 0 0 0 0 0 0 1

每位求反 每位求反 1 1 1 1 1 1 1 01 1 1 1 1 1 1 0

加 加 1 1 + + 1 1

-- 1 1 1 1 1 1 1 1 11 1 1 1 1 1 1 1 1

表表 1—2 1—2 带符号数带符号数 22 的补码值表(的补码值表( 88 位)位)  

十进制 十六进制(十进制 十六进制( HH ) ) 22 的补码值(的补码值( BB ) ) ++ 127 127 7 F 0 1 1 1 1 1 1 1 7 F 0 1 1 1 1 1 1 1

++ 100 100 6 4 0 1 1 0 0 1 0 06 4 0 1 1 0 0 1 0 0

+ + 3 3 3 0 0 0 0 0 0 1 1 3 0 0 0 0 0 0 1 1

+ + 2 2 2 0 0 0 0 0 0 1 0 2 0 0 0 0 0 0 1 0

+ + 1 1 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

- - 1 1 F F 1 1 1 1 1 1 1 1 F F 1 1 1 1 1 1 1 1

- - 2 2 F E 1 1 1 1 1 1 1 0F E 1 1 1 1 1 1 1 0

- - 100 100 9 C 1 0 0 1 1 1 0 0 9 C 1 0 0 1 1 1 0 0

- - 128 128 8 0 1 0 0 0 0 0 0 0 8 0 1 0 0 0 0 0 0 0

33、带符号数的运算、带符号数的运算 带符号数在计算机中用其补码表带符号数在计算机中用其补码表

示后,其运算方法与二进制运算相示后,其运算方法与二进制运算相同,但也会出现其同,但也会出现其特有的问题。请特有的问题。请看教材上的例题。看教材上的例题。

44 、带符号数的符号扩展表示、带符号数的符号扩展表示 对无符号数扩展,仅在其数据之对无符号数扩展,仅在其数据之前加上若干位前加上若干位 00 即可;而带符号数即可;而带符号数的扩展实际是在高位补符号位。的扩展实际是在高位补符号位。

如:如:++ 55 的的 1616 位表示 位表示 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 10 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1

-- 55 的的 1616 位表示 位表示 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 11 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1

五、五、 实型数的表示实型数的表示 一般一般 88 位和位和 1616 位的微处理机都是基于位的微处理机都是基于

定点运算,不具备通用计算机那样复杂的定点运算,不具备通用计算机那样复杂的数值运算指令,浮点和长整数的运算要用数值运算指令,浮点和长整数的运算要用软件处理,因而速度慢。软件处理,因而速度慢。 8038080380 、、 8048680486等等 CPUCPU 中配置了专门用于处理浮点运算的中配置了专门用于处理浮点运算的部件。浮点部件所处理的实型数(又称浮部件。浮点部件所处理的实型数(又称浮点数)。点数)。

形式是:形式是: (-1)(-1)SS22EE(b(b00bb11bb22...b...b

p-1p-1)) 。。 其中其中 SS 是符号位,是符号位, 00 为正,为正, 11 为负;为负; EE 为指数为指数

(称阶码),是一个二进制整数;(称阶码),是一个二进制整数; bibi 为二进制有为二进制有效数字位(称尾数),效数字位(称尾数), pp 为精度位数。为精度位数。

六、字符的编码表示六、字符的编码表示 11 、、 ASCII ASCII 码表示码表示 所谓所谓 ASCIIASCII 码(码( American Standard CodAmerican Standard Cod

e for Information Interchangee for Information Interchange ),即美国标),即美国标准信息交换码。它将数字准信息交换码。它将数字 00-- 99,字母,字母A-ZA-Z和和 a-za-z 以及一些运算符号等按标准进以及一些运算符号等按标准进行二进制编码。行二进制编码。

请看教材的表格。请看教材的表格。

22 、汉字编码表示、汉字编码表示 为了能在不同的汉字系统之间互相通为了能在不同的汉字系统之间互相通

信、共享汉字信息。我国制定并推行一种信、共享汉字信息。我国制定并推行一种汉字编码,称汉字编码,称 GB2312—80GB2312—80 国家标准信息国家标准信息交换用汉字编码字符集(基本集),简称交换用汉字编码字符集(基本集),简称国标码。在国标码中,每个国形字符都规国标码。在国标码中,每个国形字符都规定了二进制表示的编码,一个汉字用二个定了二进制表示的编码,一个汉字用二个字节编码,每个字节用字节编码,每个字节用 77 位二进制,高位位二进制,高位置为置为 00 。国标码在计算机中容易与。国标码在计算机中容易与 ASCIIASCII混淆,在中西文兼用时无法使用。在若将混淆,在中西文兼用时无法使用。在若将国标码每个字节的高位置国标码每个字节的高位置 11 ,作为标示符,,作为标示符,则可与则可与 ASCIIASCII 码区分。这种汉字编码又称码区分。这种汉字编码又称内部码。内部码。

11 .. 4 4 几种进位制数之间的相互转换几种进位制数之间的相互转换

一、一、 十进制整数到任意进制整数的转换十进制整数到任意进制整数的转换11 、、 十进制整数转换成其他进制整数十进制整数转换成其他进制整数 除除 RR 取余取余 RR 为基数为基数22 、、十进制小数转换成其他进制小数十进制小数转换成其他进制小数 乘乘 RR 取整取整 RR 为基数为基数

二、二、 任意进制整数到十进制整数任意进制整数到十进制整数 之间的转换之间的转换

按权展开,先乘后加按权展开,先乘后加

三、三、 二进制数和十六进制数之间的二进制数和十六进制数之间的 相互转换相互转换

11 、、二进制数转换成十六进制数方法:二进制数转换成十六进制数方法: 将二进制数从右边开始每将二进制数从右边开始每 44 位可分为位可分为 11

个十六进制数,左边不够个十六进制数,左边不够 44 位则用位则用 00补充。补充。22 、 十六进制整数转换成二进制数方法:、 十六进制整数转换成二进制数方法: 将每位十六进制数用将每位十六进制数用 44 个二进制位表示个二进制位表示即可。即可。

四、带符号二进制数到十进制整数四、带符号二进制数到十进制整数 之间的转换之间的转换

如果符号位为如果符号位为 00 ,则该数为正数,,则该数为正数,它可按位权展开;反之,符号位为它可按位权展开;反之,符号位为 11 ,,它不能按正常位权那样展开。所以,它不能按正常位权那样展开。所以,对带符号二进制负数除符号位外,对带符号二进制负数除符号位外,对二进制数求反加对二进制数求反加 11 后,再按位权后,再按位权展开并添上符号,才能将负的二进展开并添上符号,才能将负的二进制数转换成十进制数。制数转换成十进制数。