微机原理与嵌入式接口技术课件:微型计算机基础
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
微型计算机基础
2) 十进制与十六进制、 八进制之间的转换 十进制转换成十六进制跟十进制转换成二进制的方法类
似。 对于整数的转换是将十进制数除以16取余, 直到余数 为 0 为止, 先得的余数权低, 后得的余数权高。 对于小数 的转换是将十进制数乘以 16 取整, 取整后小数再乘以16取 整, 直到取整后的小数为 0 或满足精度要求为止, 先得的 整数权高, 后得的整数权低。
1. 二进制无符号数的运算 1) 加法运算 运算法则: 0 + 0 = 0; 1 + 0 = 1; 0 + 1 = 1; 1 + 1 =
0(产生进位)。
微型计算机基础
2) 减法运算 运算法则: 1-0 = 1; 0-0 = 0; 1-1 = 0; 0-1 =
1(产生借位)。
微型计算机基础
3) 乘法运算 运算法则: 0×0=0; 0×1=0; 1×0=0; 1×1=1。
微型计算机基础
微型计算机基础
微型计算机基础
(2) 二进制与八进制之间的转换。 二进制与八进制之间的转换跟二进制与十六进制之间的 转换相似, 不同的是 3 位二进制数对应 1 位八进制数, 其 转换过程不再赘述。
微型计算机基础
1.1.2 计算机中数的表示与运算 众所周知, 数字计算机只能接受数字信息, 任何信息
微型计算机基础
4) 补码数运算 有符号数引入补码后, 可以将加法运算和减法运算统 一为加法运算, 并能实现数值位与符号位一起运算, 自动 得出运算结果。 运算规则如下:
微型计算机基础 【例 1.12】 用补码计算+29+18=? 假设用 8 位二进制数表示, 则
自动得到正确的运算结果+47。
微型计算机基础 【例 1.13】 用补码计算+29-18=? 假设用 8 位二进制数表示, 则可以理解为减去一个数 等于加上这个数的补码。
1.1 计算机中的数制与编码
1.1.1 数制及其转换 1. 进位计数制 进位计数制是人们最常用的计数方法。 比如计时用的
六十进制(1 小时=60 分钟), 计年用的十二进制(1 年=12 月) 等。 在日常生活中最常用的是十进制, 但计算机中只使用 二进制。 进位计数制用式(1-1)表示。
微型计算机基础
微型计算机基础 例如:
微型计算机基础
2. 不同进制之间的转换 1) 二进制与十进制之间的转换 (1) 十进制整数转换成二进制数。 除2 取余法: 十进制整数除以2 取余, 再将商除以2,
再得余数, 直到商为 0 为止; 先得的余数权低, 后得的余 数权高。
微型计算机基础
【例 1.1】 将十进制整数(85) 10 采用除2 取余法转换 成二进制数, 其过程如下:
微型计算机基础
权重法: 从低位到高位, 二进制各位的权分别为 1、2、 4、 8、 16、 32、 64、 128、 …, 因此对于255 以内的十进 制数还可以采用权重法进行快速转换。
微型计算机基础
微型计算机基础
(3) 二进制数转换成十进制数。 无论是整数还是小数, 将二进制数转换成十进制数根 据式(1-1)按权展开求和即可。
微型计算机基础
微型计算机基础
1.1 计算机中的数制与编码 1.2 微型计算机概述 1.3嵌入式系统概述 组习题1
微型计算机基础
本章要点 ☆ 计算机中的数制、 编码及其运算 ☆ 微型计算机、 嵌入式系统及 ARM 的发展历程 ☆ 微型计算机的体系结构及其相关概念 ☆ STM32系列微处理器介绍
微型计算机基础
微型计算机基础
2) 反码 数值最左边一位为符号位, 用0 表示正数, 用1 表示负
数。 对于正数, 其反码与原码相同; 对于负数, 数值位逐 位取反, 即数值为 1 的位变成 0, 而数值为 0 的位变成 1。 假设有符号数 x, 它的反码表示形式为[x] 反 。
微型计算机基础
3) 补码 数值最左边一位为符号位, 用0 表示正数, 用1 表示负 数。 对于正数, 其补码与原码相同; 负数则在其反码的基 础上加 1。 假设有符号数 x, 它的补码表示形式为[x] 补 。
微型计算机基础
4. 逻辑运算 在计算机处理的数据信息中, 除了数值信息外, 还有 一类信息叫非数值信息, 逻辑数据就是非数值信息的一种。 逻辑数据没有数值大小之分, 逻辑运算只在逻辑数据位与 位之间进行, 没有进位、 借位产生。
微型计算机基础
1) 逻辑与运算 逻辑与运算相当于数字电路中的与门电路, 运算符号 为“ Λ”, 也可以用“·”表示。运算法则: 0Λ0=0; 0Λ1=0; 1Λ0=0; 1Λ1=1。
计算机对它处理的一切信息都需要用二进制数进行编码, 为了统一计算机内的信息表示方法, ABCII(AMeriCAn BtAnDArD CoDe For inForMAtion interCHAnge)编码被广泛 采用。
微型计算机基础
1. BCD 码及其运算 1) 十进制数的 BCD 编码 BCD 码用 4 位二进制数来表示 1 位十进制数, 4 位二 进制数可以表示 16 个不同编码,即 0000~1111, 然而十进 制数只有 0~9 十个符号, 通常用 0000~1001 这 10 个编码 分别表示 0~9。 BCD 码中 1010~1111 这 6 个编码不用, 属于非法编码。 4 位二进制数的权分别是8、4、2、1, 因 此也称为8421BCD 码。 也就是说, BCD 码虽然以二进制 形式出现, 但在本质上是十进制数, 只能有十种状态。
微型计算机基础
一个 BCD 码数只占用 4 位二进制数, 在计算机中一个 存储单元能够存放 8 位二进制数, 如果一个存储单元存放 一个 BCD 码, 并放在一个字节的低4 位, 高4 位为0, 则 这样的BCD 码数称为非组合型(或非压缩型)BCD 码数。 如 果一个存储单元存放两个 BCD 码, 这样的 BCD 码数称为 组合型(或压缩型)BCD 码数。
微型计算机基础
(3) 专用乘法器实现。 在 CPU 中除了加法器和移位寄 存器外, 专设硬件高速乘法部件, 专门负责乘法运算, 运 算效率高。 现代的 CPU 均有专门的乘法部件。
4) 除法运算 除法运算也是通过移位、 减法等运算联合实现的。 与 乘法运算类似, 实现除法运算一般也有三种方法: 一是完 全通过软件编程实现; 二是通过减法器+硬件辅助电路实现; 三是用专用除法器实现。
微型计算机基础
2. ABCII 码 1) ABCII 编码 基本的 ABCII 码是用 7 位二进制数表示一个字符码或
控制码的, 若用一个字节表示,其最高位恒为 0, 因此基 本的 ABCII 码有 128 个, 包括数字 0~9、 大写英文字母 a~z、 小写英文字母 a~z、 标点符号、 运算符号、 括号等 可显示和打印的字符, 还包括回车、 空格、 删除等不能显 示的控制字符。 如表 1.2 所示。
微型计算机基础 4) 逻辑非运算
参与运算的数, 为 0 的位变成 1, 为 1 的位变成 0。 计算机中一些指示灯的闪烁就是反复进行非运算实现的。
微型计算机基础
1.1.3 BCD 码和 ABCII 码 计算机只能识别二进制数据, 并且所处理的数据并不
都是数值数据。 人们习惯十进制运算, 因此需要用二进制 来表示十进制数, 常用编码是 BCD(BinAry CoDeD DeCiMAl)码。
BCD 码在运算时, 若产生进位或产生非法编码, 由于 16 进制与10 进制相差6, 则需要在运算结果基础上加 6 调 整, 才能得到正确的 BCD 码结果。
微型计算机基础
微型计算机基础
上例的计算中虽然没有出现非法编码, 但从第 3 位至 第 4 位产生了辅助进位, 由于十进制加法是逢 10 进 1 的, 而 4 位二进制数是逢 16 进 1 的, 运算时产生进位说明需要 补上进位需要的 6 才能得到正确结果 17。
微型计算机基础
Hale Waihona Puke 微型计算机基础2) 逻辑或运算 逻辑或运算相当于数字电路中的或门电路, 运算符号
为“ ”, 也可以用“+”表示。 运算法则: 0Λ0=0; 0Λ1=1; 1Λ0=1; 1Λ1=1。 常用于 使某些位置 1 的置位操作。
微型计算机基础
微型计算机基础
两个完全相同的数进行异或运算的结果为 0, 因此常用 异或运算进行清零操作。 利用异或运算法则, 还可以对指 定位进行取反运算。
微型计算机基础
微型计算机基础
3) 二进制与十六进制、 八进制之间的转换 (1) 二进制与十六进制之间的转换。 二进制转换成十六进制以小数点为界, 对于整数部分, 从最右边开始, 将 4 位二进制数划为一个整体, 不足 4 位 时在左边添 0 补足 4 位; 对于小数部分, 从最左边开始, 将 4 位二进制数划为一个整体, 不足 4 位时在右边添 0 补 足 4 位; 然后按照表 1.1 的对应关系, 直接写出转换结果。
式中, 数字 n 有 M 位小数、 n+1 位整数; d i 是数位 i 的取 值, 是几进制数就有几种取值可能, 比如十进制有 0~9 十 种取值, 十六进制有 0~9、 A~F 十六种取值, 二进制只 有 0、 1 两种取值;R i 是数位 i 的权, 其中R为基数, 二进 制R=2, 十进制 R=10, 十六进制则有R=16。
微型计算机基础
图 1.1 补码的时钟图
微型计算机基础
3. 运算溢出及其判断 前面的例子说明有符号数补码运算能自动得出结果, 即使产生了进位, 其结果也是正确的。 试问每次运算的结 果都是正确的吗? 答案是否定的, 先看一个例子。
微型计算机基础
微型计算机基础
微型计算机基础
微型计算机基础
需要说明的是, 这种方法适合于判断有符号数是否溢 出。 而根据运算结果是否超出运算器能表示数的范围这一 标准, 借位/ 进位 C 则指示了无符号数是否溢出。
都必须用二进制编码来表示。 数值数据信息分为无符号数 和有符号数。 数字信息中所有的二进制位都表示数值大小 的数称为无符号数; 数字信息中除了表示数值大小的数位 外, 还用 1 位二进制位表示数的符号, 这就是有符号数。 符号位通常处于数的最高位, 用“0”表示正, 用“1”表 示负。
微型计算机基础
微型计算机基础
2) BCD 码数的运算及调整 作为十进制数, BCD 码遵守逢十进一, 借一当十的运
算法则。 而在计算机中, 算术运算只能按照二进制规则运 行, 若把 4 位二进制数看成一个整体, 它就是一个十六进 制数,运算时是逢 16 进 1 的, 而不是十进制数的逢 10 进 1。 再者, BCD 码按二进制运算时, 有可能出现 1010~1001 之间的非法编码, 这些编码必须进行调整。
微型计算机基础
要实现乘法运算过程并不是一件容易的事, 在计算机 中实现乘法运算一般有三种方法。
(1) 软件编程实现。 在早期的计算机中, 没有乘法电路, 只能通过编程方法用移位运算和加法运算来实现, 比如被 乘数左移法、 部分积右移法等。
(2) 加法器+硬件辅助电路实现。 在加法器和移位寄存 器的基础上, 再增加必要的辅助电路实现乘法运算, 比如 Intel 8086 就是采用这种方法。
虽然在运算过程中产生了进位, 但还是得到正确结果 +11, 进位自动丢失。
微型计算机基础
可以利用常见的时钟方法来理解补码的运算规则。 如 图 1.1 所示, 当前时针指向 7 点,如要将其拨到2 点, 可以 逆时针拨 5 点(-5), 也可以顺时针拨 7 点(+7), 对于时钟 而言,7 就是 5 的补码, 减去 5 就等于加上 7, 二者取得了 相同的结果。 需要注意的是时钟是 12进制的, 在加 7 的时 候, 时针越过 12 点, 相当于有一个进位, 这个进位在本 次补码运算中被丢弃了。
微型计算机基础
2. 二进制有符号数的表示与运算 二进制有符号数表示形式如下:
微型计算机基础
1) 原码 数值最左边一位为符号位, 用 0 表示正数, 用 1 表示 负数, 其余的位表示数值的大小。 假设有符号数 x, 它的原码表示形式为[x] 原 。 例如, 假设用 8 位二进制数表示, 则
如果一个有符号数用 n 位二进制数表示, 除去 1 位符号位 外, 用于表示数值的位数为n-1 位, 则 n 位二进制数原码 能表示有符号数的范围为-2 n-1 +1≤x≤+2 n-1-1。