8244_计算机.txt
Edited: Thursday 1 May 2025

1.6 为 了 贴 近 人 类 , 计 算 机 在 不 断 地 进 化
诸 位 读 者 当 中 应 该 也 有 对 编 程 感 兴 趣
的 人 吧 。 编 程 方 法 也 在 进 化 , 进 化 的
成 果 是 诞 生 了 两 种 编 程 方 法 , 面 向 组
件 编 程 (Component Bas ed
Programming) 和 面 向 对 象 编 程
(Object Oriented
Programming) 。 这 两 者 的 进 化 目 标
一 致 , 都 是 使 程 序 员 可 以 在 编 程 中 继
续 沅 用 人 类 创 造 事 物 时 的 方 法 。 颤
组 件 编 程 的 方 法 是 通 过 将 组 件 ( 程 序
的 零 件 ) 组 装 到 一 起 完 成 程 序 ; 面 向
对 象 编 程 的 方 法 是 先 如 实 地 对 现 实 世
界 的 业 务 建 模 , 之 后 再 把 模 型 搬 到 程
序 中 。 使 用 符 合 人 类 思 维 习 惯 的 编 程
方 法 , 可 以 实 现 高 效 率 的 开 发 。
但 是 , 偏 偏 有 这 类 程 序 员 , 他 们 对 面
向 组 件 编 程 敬 而 远 之 , 明 明 有 各 种 各
样 现 成 的 组 件 可 供 使 用 , 却 什 么 功 能
“ 【
第 2 章 试 着 制 造 一 台 计 算 机 吧
CPU。

解 释
初 级 问 题 : CPU 是 计 算 机 的 大
脑 , 负 责 解 释 、 执 行 程 序 的 内
容 。 有 时 也 将 CPU 称 作 “ 处 理
嘴 “。
中 级 问 题 ; 通 常 用 Hz 来 表 示 驱 动
CPU 运 转 的 时 钟 信 号 的 频 率 。1 秒
发 出 1 次 时 钟 信 号 就 是 1Hz, 所 以
100MHz ( 兆 赫 兹 ) 的 话 就 是
100x100 万 = 1 亿 次 / 秒 相 团
_O) 代 表 100 万 。
高 级 问 题 ; CPU 上 数 据 总 线 的 条
数 , 或 者 CPU 内 部 参 与 运 算 的 寄
存 器 的 容 量 , 都 可 以 作 为 衡 量
CPU 性 能 的 比 特 数 。 在 Z80 CPU

l _
2.2 电 路 图 的 读 法
ˇ 表 示 把 这 条 线 连 接 到 0V 上 ,
命 国 +ODV r.黜| ′/」(〕/
丁 仁 万万
表 示 把 这 条 线 连 接 到 +5V 上

图 2.4 电 源 的 表 示 方 法
本 次 制 作 的 微 型 计 算 机 工 作 在 +5V 的
直 流 电 下 。 虽 然 在 实 际 的 电 路 中 要 把
+5V 和 O0V 连 接 到 各 个 元 件 的 各 个 引 脚
上 , 但 是 如 果 在 电 路 图 中 也 把 这 些 地
方 都 一 一 标 示 出 来 的 话 , 就 会 因 为 到
处 都 是 +5V 和 0OV 的 布 线 而 显 得 混 乱 不
堪 了 。 所 以 要 使 用 如 图 2.4 所 示 的 两 种
电 路 图 符 号 来 分 别 表 示 电 路 连 接 到
+5V 和 连 接 到 0V 的 情 况 。
佗的引脚;〈丿…斤汇胃弓|月去口京尤是1’〔〕边乡宅翼=气露出|
e 一 一 一 一 一 一 一 e 国
2.2 电 路 图 的 读 法
的 像 蜈 蚣 腹 一 样 的 部 分 ) 按 照 逆 时 针
方 向 依 次 带 有 一 个 从 1 开 始 递 增 的 序
号 。 数 引 脚 序 号 时 , 要 先 把 表 示 正 方
向 的 标 志 , 比 如 半 圆 形 的 缺 口 , 朝 向
左 侧 。 举 例 来 说 , 带 有 14 个 引 脚 的
7404, 其 引 脚 序 号 就 如 图 2.5 所 示 。
国 园 命 园 沥 园 吴 沥 许 许 许 许 许 许 许 许 人 口 口 用 用 人
14132 〕1擅10 铭_8
表 示 IC 正 方 向 的 力 “ 5 =
0 标志「 沿 逆 时 针 方 向 数 引 脚 序 号 )
1 2 3 4 8 6 7
国 园 园 园 沥 吴 园 吴 沥 许 许许 许许 运 运 许 沥 许 许 许 许 运 许 连 连 述
图 2.5 如 何 数 IC 的 引 脚 序 号
如 果 按 照 引 脚 序 号 的 排 列 顺 序 来 画 IC
的 电 路 图 符 号 , 那 么 标 示 如 何 布 线 时
就 会 很 不 方 便 。 所 以 通 常 所 绘 制 的 电
路 图 都 不 受 引 脚 实 际 排 布 的 限 制 留 。

2.4 连 接 |/ O
下 面 开 始 连 接 IO。 只 有 了 解 了 作 为 I/
O 的 Z80 “PIO 的 结 构 , 才 能 理 解 为 什
么 要 这 样 布 线 。 诸 位 都 知 道 寄 存 器 、
讷 个 词 吗 ? 寄 存 器 是 位 于 CPU 和 I/O
中 的 数 据 存 储 器 。Z80 PIO 上 共 有 4 个
寄 存 器 。2 个 用 于 设 定 PIO 本 身 的 功
能 ,2 个 用 于 存 储 与 外 部 设 备 进 行 输
入 输 出 的 数 据 。
这 4 个 寄 存 器 分 别 叫 作 端 口 A 控 制 、 端
口 A 数 据 、 端 口 B 控 制 和 端 口 B 数 据 。
所 谓 端 口 就 是 |/O 与 外 部 设 备 之 间 输 入
输 出 数 据 的 场 所 , 可 以 把 端 口 (Por
t) 想 象 成 是 轮 船 装 卸 货 物 的 港 口 。
Z80 _PIO 有 2 个 端 口 , 端 口 A 和 端 口
B, 最 多 可 以 连 接 2 个 用 于 输 入 输 出 8
比 特 数 据 的 外 部 设 备 ( 如 图 2.7 所
示 ) 。

e 一 一 一 一 一 一 一 e 国
3.1 从 程 序 员 的 角 度 看 硬 件
出 。 这 就 好 比 同 样 是 man 这 个 词 , 有
的 人 会 理 解 成 “ 慢 “, 有 的 人 会 理 解 成
“ 晚 人 “。
由 于 微 型 计 算 机 上 的 CPU 是 Z80
CPU, 所 以 就 要 使 用 适 用 于 Z80 CPU
的 机 器 语 言 。 顾 名 思 义 , 机 器 语 言 就
是 处 理 器 可 以 直 接 理 解 ( 与 生 俱 来 就
能 理 解 ) 的 编 程 语 言 。 机 器 语 言 有 时
也 叫 作 原 生 代 码 (Native Code) 。
所 谓 时 钟 信 号 的 频 率 , 就 是 由 时 钟 发
生 器 发 送 给 CPU 的 电 信 号 的 频 率 。 表
示 时 钟 信 号 频 率 的 单 位 是 MHz ( 兆 赫
兹 = 100 万 回 / 秒 ) 。 微 型 计 算 机 使 用
的 是 2.5MHz 的 时 钟 信 号 。 时 钟 信 号
是 在 0 和 1 两 个 数 之 间 反 复 变 换 的 电 信
号 , 就 像 滴 答 滴 答 左 右 摆 动 的 钟 摆 一
样 。 通 常 把 发 出 一 次 滴 答 的 时 间 称 作
关 〈 上 一 个 \ 下 一 个 > 井
e 一 一 一 一 一 一 一 e l_
3.2 机 器 语 言 和 汇 编 语 言
操 作 码 就 是 表 示 “ 做 什 么 “ 的 指 令 。 因
为 用 助 记 符 表 示 的 指 令 是 英 语 单 词 的
缩 写 , 比 如 LD 是 Load ( 加 载 ) 的 缩
写 , 所 以 多 多 少 少 能 猜 出 其 中 的 含
义 。 汇 编 语 言 中 提 供 了 多 少 种 助 记
符 ,CPU 就 有 多 少 种 功 能 。Z80 CPU
的 指 令 全 部 加 起 来 有 70 条 左 右 。 这 里
先 把 主 要 的 指 令 列 在 表 3.1 中 , 请 诸 位
粗 略 地 浏 览 一 下 。 在 浏 览 的 过 程 中 请
注 意 这 些 指 令 的 分 类 , 按 功 能 这 些 指
令 可 以 分 成 运 算 、 与内存白’曰车俞入车^首订出_
和与M〇的输入输出三类…这是因为诅
算 机 能 做 的 事 也 只 有 输 入 、 运 算 、 制
出 这 三 种 了 。
操 作 数 表 示 的 是 指 令 执 行 的 对 象 。
CPU 的 寄 存 器 、 内 存 地 址 、IM/O 地 址
或 者 直 接 给 出 的 数 字 都 可 以 作 为 操 作
数 。 如 果 某 条 指 令 需 要 多 个 操 作 数 ,
e 一 一 一 一 一 一 一 e 国
3.5 宣 试 手 工 汇 编
在 CPU 的 资 料 中 , 明 确 写 有 所 有 可 以
使 用 的 助 记 符 , 以 及 助 记 符 转 换 成 机
器 语 言 后 的 数 值 。 只 要 查 看 这 些 资
料 , 就 可 以 把 用 汇 编 语 言 编 写 的 程 序
手 工 转 换 成 机 器 语 言 的 程 序 , 这 样 的
工 作 称 汀 “ 手 工 汇 继 “。 进 行 手 工 汇 编
时 , 要 一 行 一 行 地 把 用 汇 编 语 言 编 写
的 程 序 转 换 成 机 器 语 言 。 下 面 就 实 际
动 手 试 一 试 吧 。 表 3.2 列 出 了 汇 编 语 言
中 必 要 指 令 的 助 记 符 、 助 记 符 所 对 应
的 机 器 语 言 , 以 及 执 行 这 些 机 器 语 言
所 需 的 时 钟 周 期 数 。
表 3.2 从 助 记 符 到 机 器 语 言 的 转 换 方 法
…圃『]且’〕1…壹_圃〔曹’[〔气亨nl二青…….霁【虬_|
Eoormuma nooomnmm
一 E 一 1 一
e 一 一 一 一 一 一 一 e 国
3.5 尝 试 手 工 汇 编
还 有 一 点 希 望 诸 位 注 意 , 在 将 一 个 2
字 节 的 数 据 存 储 到 内 存 时 , 存 储 顺 序
是 低 8 位 在 前 、 高 8 位 在 后 ( 也 就 是 逆
序 存 储 ) 。 这 样 的 存 储 顺 序 叫 作 “ 小
端 序 “ (Little Endian) , 与 此 相 反 ,
将 数 据 由 高 位 到 低 位 顺 序 地 存 储 到 内
存 的 存 储 顺 序 则 叫 作 “ 大 端 序 “ (Big
Endian) 。 根 据 CPU 种 类 的 不 同 , 有
的 CPU 使 用 大 端 序 , 有 的 CPU 使 用 小
踹 庭 。Z80 CPU 使 用 的 是 小 端 序 , 因
此 JP _LOOP 对 应 的 机 器 语 言 为
11000011 00010000 00000000“。
00010100 JP L00P 11000011
000100080 00000000
手 工 汇 编 至 此 就 结 束 了 。 自 己 写 的 汇
编 语 言 程 序 , 又 通 过 自 己 的 双 手 转 换
e 一 一 一 一 一 一 一 e 国
3.6 关 讪 估 算 程 序 的 执 行 时

在 本 章 的 最 后 , 介 绍 一 下 如 何 通 过 时
钟 周 期 数 估 算 程 序 的 执 行 时 间 。 请 先
向 前 翻 到 表 3.2, 找 出 执 行 每 条 汇 编 语
言 指 令 所 需 的 时 钟 周 期 数 。 然 后 把 代
码 清 单 3.2 中 所 用 到 的 每 条 指 令 的 时 钟
周 期 数 累 加 起 来 。 于 是 可 以 算 出 到
LOOP 标 签 为 止 的 8 条 指 令 共 需 要
7+11+7+11+7+11+7+11 = 72 个 时 钟 周
期 ; LOOP 标 签 之 后 的 3 条 指 令 共 需 要
11+11+10 = 32 个 时 钟 周 期 。 因 为 微 型
计 算 机 采 用 的 是 2.5MHz 的 晶 振 , 也
就 是 1 秒 可 以 产 生 250 万 个 时 钟 周 期 ,
所 以 每 个 时 钟 周 期 是 1 秒 250 万 =
0.0000004 秒 = 0.4 微 秒 。72 个 时 钟
周 期 就 是 72x0.4 = 28.8 微 秒 ; 32 个
时 钟 周 期 就 是 12.8 彼 秒 。 这 段 程 序 是
e 一 一 一 一 一 一 一 e 国
4.6 “ 特 殊 的 程 序 流 程 一 一 中
断 处 理
最 后 , 稍 微 介 绍 一 下 两 种 特 殊 的 程 序
流 程 一 一 中 断 处 理 和 事 件 驱 动 (Even
t Driven) 。 首 先 说 明 中 断 处 理 。
中 断 处 理 是 指 计 算 机 使 程 序 的 流 程 突
然 跳 转 到 程 序 中 的 特 定 地 方 , 这 样 的
地 方 被 称 为 中 断 处 理 例 程 (Routin
e) 或 是 中 断 处 理 程 序 (Handler) ,
而 这 种 跳 转 是 通 过 CPU 所 具 备 的 硬 件
加 能 单 现 的 。 人 们 通 常 把 中 断 处 理 比
作 是 接 听 电 话 。 假 设 诸 位 都 正 坐 在 书
桌 前 处 理 文 件 , 这 时 窒 然 来 电 话 了 ,
诸 位 就 不 得 不 停 下 手 头 的 工 作 去 接 电
话 , 接 完 电 话 再 回 到 之 前 的 工 作 。 像
这 样 由 于 外 部 的 原 因 使 正 常 的 流 程 中
断 , 中 断 后 再 返 回 到 之 前 流 程 的 过 程
就 是 中 断 处 理 流 程 。

e 一 一 一 一 一 一 一 e 国
4.6 特 殊 的 程 序 流 程 一 中 断 处 理

国 面 一 国 e

E

入 的 部 分 』

图 4.14 中 断 请 求 信 号 由 连 接 到 周 边 设 备
上 的 //O 〇 发 出

中 断 处 理 以 从 硬 件 发 出 的 请 求 为 条

件 , 使 程 序 的 流 程 产 生 分 支 , 因 此 可

以 说 它 是 一 种 特 殊 的 条 件 分 支 。 可

是 , 在 诸 位 编 写 的 程 序 中 并 不 需 要 编

写 有 关 中 断 处 理 的 代 码 。 因 为 处 理 中

断 请 求 的 程 序 , 或 是 内 置 于 被 烧 录 在

计 算 机 ROM 中 的 BIOS 系 统 (Basic

Input Output System, 基 本 输 入 输

出 系 统 ) 中 , 或 是 内 置 于 Windows 等
e 一 一 一 一 一 一 一 e 国
4.7 “ 特 殊 的 程 序 流 程 一 一 事
件 驱 动
程 序 员 们 经 常 用 事 件 驱 动 的 方 式 编 写
那 些 工 作 在 GUI (Graphical User
Inteface, 图 形 用 户 界 面 ) 环 境 中 的
应 用 程 序 , 例 如 Windows 操 作 系 统 中
的 应 用 程 序 。 这 听 起 来 好 像 挺 复 杂
的 , 但 其 实 如 果 把 事 件 驱 动 想 象 成 是
两 个 程 序 在 对 话 , 理 解 起 来 就 简 单
了 。
下 面 看 一 个 实 际 的 例 子 吧 。 代 码 清 单
4.5 中 列 出 了 一 段 用 C 语 言 编 与 的
Windows 应 用 程 序 , 这 里 只 列 出 了 程
序 的 骨 架 。 在 程 序 中 有 WinMain() 和
WndProc() 两 个 园 数 ( 代 码 块 ) 。
WinMain() 是 在 程 序 启 动 时 被 调 用 的
主 例 程 (Main Routine) 。 而
WndProc() 并 不 会 被 诸 位 所 编 写 的 程
X 〈 上 ~ 个 “ 下 一 个 不
e 一 一 一 一 一 一 一 e l

4.7 特 殊 的 程 序 流 程 一 事 件 驱 动
表 4.2 计 算 机 程 序 的 状 态 状 态 转 化 表 的 值

l 才天′栗;/】哭曼′L=吕霆1丿乙昏责丿二妻因.l芗芗〔吏雪’…鲨责子霆l [ 罹 ‘耍`_吏运覃 符 号 键
(1) 星 示 计 算 结 果 ˇ ( ˇ ˇ =>(00 ˇ 一 ) _|
(2) 显 示 第 一 个 输 入 的 数 “ 一 ( 00
(3 ) 显 示 第 二 个 输 入 的 数 一 ( 0
交 交 交
也 许 读 完 中 断 处 理 和 事 件 驱 动 的 这 两
节 , 诸 位 会 觉 得 稍 微 有 些 混 乱 , 但 是
程 序 的 流 程 还 是 只 有 顺 序 执 行 、 条 件
分 支 和 循 环 这 三 种 , 这 一 点 是 没 有 改
变 的 。 其 中 的 顺 序 执 行 是 最 基 本 的 程
序 流 程 , 这 是 因 为 CPU 中 的 PC 寄 存 器
的 值 会 自 动 更 新 。 条 件 分 支 和 循 环 ,
在 高 级 语 言 中 用 程 序 块 表 示 , 在 机 器
语 言 和 汇 编 语 言 中 用 跳 转 指 令 表 示 ,
在 硬 件 上 是 通 过 把 PC 寄 存 器 的 值 设 为
要 跳 转 到 的 目 的 地 的 内 存 地 址 来 实
x 〈 上 一 个 下 一 个 三
l l
4.7 特 殊 的 程 序 流 程 一 一 事 件 驱 动
现 。 只 要 能 充 分 理 解 这 些 概 念 就 OK
了 。
在 接 下 来 的 第 5 章 , 笔 者 将 更 加 详 细
地 介 绍 在 本 章 略 有 涉 及 的 算 法 。 散 请
期 待 !
加 入 书 架 随 时 阅 读

x 〈 上 - 个 下 一 个 》 已

l l
12.5 所 谓 设 计 , 就 是 拆 解
下 面 先 请 诸 位 回 到 图 12.1 所 示 的 漆 布
模 型 , 从 上 游 到 下 游 再 回 顾 一 遍 该 模
型 中 的 各 个 开 发 阶 段 。 从 需 求 分 析 到
程 序 设 计 , 所 进 行 的 工 作 都 是 拆 解 业
务 , 把 将 要 为 计 算 机 系 统 所 替 代 的 手
工 业 务 拆 解 为 细 小 的 要 素 。 从 编 码 实
现 到 部 署 、 维 护 阶 段 , 所 进 行 的 工 作
则 是 集 成 , 把 拆 解 后 的 细 小 要 素 转 换
成 程 序 的 模 块 , 再 把 这 些 模 块 拼 装 在
一 起 构 成 计 算 机 系 统 。
庞 大 复 杂 的 事 物 往 往 无 法 直 接 做 出
来 。 这 个 道 理 不 仅 适 用 于 计 算 机 系
统 , 也 同 样 适 用 于 建 筑 物 或 是 飞 机 。
人 们 往 往 要 把 庞 大 复 杂 的 事 物 先 分 解
成 细 小 简 单 的 要 素 来 进 行 设 计 。 有 了
各 个 要 素 的 设 计 图 , 整 体 的 设 计 图 也
就 出 来 了 。 先 根 据 每 个 要 素 的 设 计 图
e 一 一 一 一 一 一 一 e 国
12.8 IT 不 等 于 引 进 计 算 机
eareriereormeorotg7mE
技 术 ) 的 缩 写 , 也 许 翻 译 成 “ 充 分 运
用 信 息 的 技 术 “ 会 更 加 容 易 理 解 。 蛮
会 认 为 是 引 进 计 算 机 , 一 提 到 IT 行 业
就 会 认 为 是 计 算 机 行 业 , 但 是 作 为
SE, 是 不 能 把 “ 信 息 化 “ 和 “ 引 进 计 算
机 “ 滑 同 起 李 的 。 要 说 这 两 者 之 间 有
联 系 , 也 只 不 过 是 碰 巧 计 算 机 作 为 信
息 化 的 工 具 是 很 实 用 的 。 如 果 说 得 更
加 极 端 些 , 不 使 用 计 算 机 , 信 息 化 照
样 能 进 行 。
举 例 来 说 , 诸 位 手 中 都 有 几 十 到 几 百
张 从 公 司 以 外 的 人 那 里 得 到 的 名 片
吧 ? 这 些 名 片 要 怎 样 才 能 充 分 利 用
呢 ?“ 按 照 ABCDE 的 顺 序 分 类 整 理 ,
放 入 名 片 夹 中 , 当 想 要 打 电 话 或 寄 信
e 一 一 一 一 一 一 一 e 国
12.10 _ 大 幅 提 升 设 备 利 用 率
的 多 机 备 份
为 上 述 的 计 算 机 系 统 添 加 了 MO 驱 动
器 和 磁 盘 就 能 充 分 满 足 客 户 的 需 求 了
吗 ? 其 实 还 是 会 有 些 不 放 心 的 。 因 为
在 该 计 算 机 系 统 中 , 个 人 计 算 机 和 打
印 机 都 只 有 1 台 , 无 论 是 哪 一 边 出 故 障
了 , 整 个 计 算 机 系 统 就 瘫 疲 了 。 桧 成
计 算 机 系 统 的 每 个 要 素 只 有 一 个 状
态 , 要 么 处 于 正 常 运 转 状 态 , 要 么 是
出 现 故 障 处 于 维 修 状 态 。 其 中 , 处 于
正 常 运 转 状 态 的 比 率 叫 作 “ 设 备 利 用
率 “。 设 备 利 用 率 可 以 用 图 12.8 所 示 的
公 式 简 单 地 算 出 。

e 一 一 一 一 一 一 一 e 国
12.10 大 幅 提 升 设 备 利 用 率 的 多 机 备 份
林 一 正 常 运 转 的 时 间 园
甲'春〕J'国雷正常~运车专白'〗丑耆寸I司五萱出现故障处于维修状态的时间ˇ
图 12.8 设 备 利 用 率 的 计 算 公 式
请 诸 位 先 记 住 一 个 结 论 : 将 计 算 机 系
统 的 构 成 要 素 设 成 多 机 备 份 , 可 以 出
乎 意 料 地 大 幅 度 提 升 设 备 利 用 率 。 现
在 我 们 来 看 看 具 体 的 示 例 。 假 设 1 台 个
人 计 算 机 的 设 备 利 用 率 是 90%,1 台
打 印 机 的 设 备 利 用 率 是 80% ( 对 于 真
实 的 个 人 计 算 机 或 打 印 机 , 其 设 备 利
用 率 要 比 这 高 得 多 ) 。 图 12.9 所 示 的
计 算 机 系 统 可 以 算 作 串 联 系 统 “ , 用
户 输 入 的 全 部 信 息 的 90% 会 经 过 个 人
计 算 机 到 达 打 印 机 , 接 下 来 这 90% 的
信 息 中 X 有 80% 会 通 过 打 印 机 顺 利 地
e 一 一 一 一 一 一 一 e 国

Backlinks