微型计算机技术及应用

上传人:san****019 文档编号:20990229 上传时间:2021-04-21 格式:PPT 页数:313 大小:2.21MB
收藏 版权申诉 举报 下载
微型计算机技术及应用_第1页
第1页 / 共313页
微型计算机技术及应用_第2页
第2页 / 共313页
微型计算机技术及应用_第3页
第3页 / 共313页
资源描述:

《微型计算机技术及应用》由会员分享,可在线阅读,更多相关《微型计算机技术及应用(313页珍藏版)》请在装配图网上搜索。

1、微 型 计 算 机 原 理 及 应 用 技 术 微 型 计 算 机 概 述8086微 处 理 器8086的 寻 址 方 式 和 指 令 系 统存 储 器 和 高 速 缓 存 技 术微 型 计 算 机 和 外 设 的 数 据 传 输串 并 行 通 信 和 接 口 技 术中 断 控 制 器 、 DMA控 制 器 和 计 数 器 /定 时 器模 /数 和 数 /模 转 换键 盘 和 LED显 示 时段数据处理代表产品制造工艺集成度(管/片)时钟频率执行时间第一代1971 4位低档8位Intel4004Intel4040、8008 PMOS 2000 1MHz20 us第二代1974高档8位Intel

2、8080、8085Z80MC6800、6802 NMOS 8400 24MHz12 us第三代1978 16位Intel8086、8088Z8000MC68000 HMOS 2000060000 48MHz0.5 us1980高档16位Intel80286MC68010 100000 10MHz0.2 us第四代1980 32位Intel80386、80486Z80000 MC68020 150000500000 16100MHz0.1 us第五代1993 Pentium系列5000000以上150MHz以上 微 处 理 器 也 称 CPU, 是 由 大 规 模 集 成 电 路 组 成 的 ,

3、 本 身 具有 运 算 能 力 和 控 制 能 力 , 能 执 行 一 定 的 指 令 系 统 的 器 件 , 是微 型 计 算 机 的 核 心 。 一 般 具 有 下 列 功 能 : 可 以 进 行 算 术 和 逻 辑 运 算 可 以 保 存 少 量 数 据 能 和 存 储 器 、 外 设 交 换 数 据 能 对 指 令 进 行 译 码 并 执 行 指 令 规 定 的 动 作 提 供 整 个 系 统 所 需 要 的 控 制 信 号 和 定 时 时 钟 完 成 程 序 流 向 控 制 算 术 逻 辑 部 件 ( ALU)专 门 用 来 处 理 各 种 数 据 信 息 , 可 进 行 加 、 减

4、 、 乘 、 除 算 术 运 算和 与 、 或 、 非 、 异 或 等 逻 辑 运 算 。累 加 器 功 能 : 作 为 ALU的 一 个 操 作 数 输 入 端 。 用 于 存 放 ALU的 运 算 结 果 。 输 入 /输 出 指 令 一 般 也 通 过 累 加 器 来 完 成 。通 用 寄 存 器 功 能 : 用 来 暂 时 存 放 参 加 运 算 的 操 作 数 、 中 间 结 果 或 地 址 。暂 存 寄 存 器 ( TMP) 功 能 : 用 来 暂 存 从 数 据 总 线 或 通 用 寄 存 器 送 来 的 操 作 数 , 并将 该 数 据 送 入 ALU进 行 运 算 , 同 时

5、 , 它 也 能 将 数 据 送 到 内 部 数据 总 线 。标 志 寄 存 器 ( F) 功 能 : 用 来 保 存 ALU操 作 结 果 的 特 殊 状 态 。 指 令 部 件 PC) 功 能 : 存 放 指 令 地 址 。 程 序 执 行 过 程 中 , 首 先 由 PC指 出 当 前 要 执 行 指 令 的 地 址 ,当 该 指 令 取 出 后 , PC的 内 容 会 自 动 加 1( 除 转 移 指 令 外 ) ,指 向 按 顺 序 排 列 的 下 一 条 指 令 的 地 址 。指 令 寄 存 器 IR 功 能 : 存 放 当 前 要 执 行 的 指 令 的 内 容 。 包 括 操

6、作 码 和 地 址 码 两 部 分 。 操 作 码 送 往 指 令 译 码 器 ,地 址 码 送 至 操 作 数 地 址 形 成 电 路 。指 令 译 码 器 ID 功 能 : 分 析 指 令 功 能 , 产 生 相 应 操 作 的 控 制 电 位 。堆 栈 指 示 器 ( 堆 栈 指 针 ) SP 时 序 部 件 :用 来 产 生 计 算 机 各 部 件 所 需 的 定 时 信 号 。时 钟 系 统 脉 冲 源 功 能 : 产 生 具 有 一 定 频 率 和 脉 宽 的 脉 冲 信 号 ( 主 脉冲 ) 。 一 般 采 用 石 英 晶 体 振 荡 器 , 因 为 它 频 率 稳 定 。 时

7、钟 启 停 逻 辑 功 能 : 控 制 启 停 主 脉 冲 信 号 开 关 , 按 指 令 要 求 , 开 启或 关 闭 时 钟 脉 冲 序 列 。脉 冲 分 配 器 功 能 : 产 生 计 算 机 各 部 分 所 需 要 的 能 按 一 定 顺 序 逐 个出 现 的 节 拍 电 位 或 节 拍 脉 冲 的 定 时 信 号 , 以 控 制 和 协 调 计 算机 各 部 分 有 节 奏 的 动 作 。 微 操 作 控 制 部 件 计 算 机 在 执 行 一 条 指 令 时 , 总 是 把 一 条 指 令 分 成 若干 基 本 操 作 , 称 为 微 操 作 。 根 据 指 令 产 生 计 算 机

8、 各 部 件 所 需 要 的 控 制 信 号 。 这 些 控 制 信 号 是 由 指 令 译 码 器 的 输 出 电 位 、 脉 冲 发生 器 产 生 的 节 拍 电 位 、 节 拍 脉 冲 以 及 外 部 的 状 态 信 号 等进 行 组 合 而 产 生 的 。 微 操 作 控 制 部 件 按 一 定 的 时 间 顺 序 发 出 一 系 列 微 操作 控 制 信 号 , 以 完 成 指 令 所 规 定 的 全 部 操 作 。 由 CPU、 存 储 器 、 I/O接 口 电 路 和 系 统 总 线 等 构 成 的 一 个 完 整 的 计 算 机 。 存 储 器 有 了 总 线 结 构 , 系

9、统 中 各 功 能 部 件 之 间 的 相 互 关 系 就 变 为 各 个 部件 面 向 总 线 的 单 一 关 系 。 一 个 部 件 只 要 符 合 总 线 标 准 , 就 可 以 连接 到 采 用 这 种 总 线 标 准 的 系 统 中 , 从 而 使 系 统 很 容 易 得 到 扩 展 。 以 微 型 计 算 机 为 主 体 , 配 上 系 统 软 件 和 外 设 ,就 构 成 了 微 型 计 算 机 系 统 。 系 统 软 件 常 用 的 名 词 术 语1. 具 有 十 六 个 不 同 的 数 字 符 号 , 即 0-9和 A-F 三 种 数 制 对 照 表 余 0 【 1-3】 1

10、0100+1101=100001 【 1-4】 100001-10100=1101 1 0 1 0 0 1 0 0 0 0 1 + 1 1 0 1 - 1 1 0 1 0 1 0 0 0 0 1 1 1 0 1 【 1-5】 1101 1011=10001111 【 1-6】 11100 101=101 11 1 1 0 1 1 0 1 商 1 0 1 1 1 1 1 0 0 1 1 0 1 1 0 1 1 1 0 1 1 0 0 0 0 0 0 0 1 0 1 + 1 1 0 1 1 1 1 0 0 0 1 1 1 1 X +0 = = 补 码3. 补 码 的 定 义求 法 与 应 用 80

11、86微 处 理 器 8086: Intel系 列 的 16位 微 处 理 器 , 16条 数 据 线 、 20条地 址 线 , 可 寻 址 地 址 范 围 220=1MB, 8086工 作 时 , 只要 一 个 5V 电 源 和 一 个 时 钟 , 时 钟 频 率 为 5MHz 。8088: 内 部 与 8086兼 容 , 也 是 一 个 16位 微 处 理 器 , 只是 外 部 数 据 总 线 为 8位 , 所 以 称 为 准 16位 微 处 理 器 。 它具 有 包 括 乘 法 和 除 法 的 16位 运 算 指 令 , 所 以 能 处 理 16位 数 据 , 还 能 处 理 8位 数 据

12、 。 8088有 20根 地 址 线 , 所 以可 寻 址 的 地 址 空 间 达 220即 1M字 节 。 AH ALBH BLCH CLDH DL SP BP DI SI通用寄存器 运 算 寄 存 器 ALU标 志 执 行 部 分控 制 电 路 1 2 3 4 5 6 CS DS SS ES IP 内 部 寄存 器 I/O控 制电 路 地 址 加法 器 20位16位8位 指 令 队 列 缓 冲 器 外总线 执 行 部 件 总 线 接 口 部 件 8086CPU结 构 图 2.1.1 总 线 接 口 部 件功 能 :从 取 指 令 送 到 指 令 队 列 。CPU执 行 指 令 时 , 到

13、指 定 的 位 置 取 操 作 数 , 并 将 其 送 至 要 求 的 位 置 单 元 中 。 功 能 :( 1) 、 从 指 令 队 列 中 取 出 指 令 。( 2) 、 对 指 令 进 行 译 码 , 发 出 相 应 相 应 的 控 制 信 号 。( 3) 、 接 收 由 总 线 接 口 送 来 的 数 据 或 发 送 数 据 至 接 口 。( 4) 、 进 行 算 术 运 算 。 D15 D0 OF DF IF TF SF ZF AF PF CF进借位标志奇偶标志半进借位标志零标志符号标志单步中断中断允许方向标志溢出标志 1-有 进 、 借 位 0-无 进 、 借 位 1-低 8位 有

14、 偶 数 个 10-低 8位 有 奇 数 个 1 1-低 4位 向 高 4位 有 进 、 借 位0-低 4位 向 高 4位 无 进 、 借 位1-结 果 为 00-结 果 不 为 0 从 总 线 接 口 的 指 令 队 列 取 出 指 令 操 作 码 , 通 过 译 码 电路 分 析 , 发 出 相 应 的 控 制 命 令 , 控 制 ALU数 据 流 向 。 ( 1) 、 20位 地 址 的 形 成 , 并 将 此 地 址 送 至 程 序 存 储 器 指 定 单 元 ,从 该 单 元 取 出 指 令 字 节 , 依 次 放 入 指 令 队 列 中 。( 2) 、 每 当 8086的 指 令

15、队 列 中 有 2个 空 字 节 , 8088指 令 队 列 中有 1个 空 字 节 时 , 总 线 接 口 部 件 就 会 自 动 取 指 令 至 队 列 中 。( 3) 、 执 行 部 件 从 总 线 接 口 的 指 令 队 列 首 取 出 指 令 代 码 , 执 行该 指 令 。( 4) 、 当 队 列 已 满 , 执 行 部 件 又 不 使 用 总 线 时 , 总 线 接 口 部 件进 入 空 闲 状 态 。( 5) 、 执 行 转 移 指 令 、 调 用 指 令 、 返 回 指 令 时 , 先 清 空 队 列 内容 , 再 将 要 执 行 的 指 令 放 入 队 列 中 。 0102

16、030405060708091011121314 151617181920 4039383736353433323130292827 262524232221 GNDAD14/A14AD13/A13AD12/A12AD11/A11AD10/A10AD9/A9AD8/A8AD7AD6AD5AD4AD3AD2 AD1AD0NMIINTRCLKGND VCC( 5V)AD15/A15A16/S3A17/S4A18/S5A19/S6/BHE/S7 HIGH( SSO)MN/MX/RDHOLD( /RQ/GT0) HLDA( /RQ/GT1)/WR( /LOCK)M/IO( /S2)DT/R( /S1)

17、 /DEN( /S0)ALE( QS0)/INTA( QS1)/TESTREADYRESET 8086/8088 。 图 2.4 8086最 小 方 式 典 型 系 统 结 构 图 2.8 8086最 大 方 式 典 型 系 统 结 构 8086/8088的 中 断 系 统1 中 断 结 构 中 断 响 应 周 期 要 用 两 个 总 线 周期 。 第 一 个 响 应 周 期 : 使 AD15-AD0、 /BHE/S7、 A19/S6-A16/S3悬 空 。 第 二 个 响 应 周 期 : 外 设 向 数 据 总 线 上 输 送 一 个 字 节 的 中 断类 型 号 。 CLK T1 T2 T

18、3 T4 T1 T2 T3 T4第 一 中 断 响 应 周 期 第 二 中 断 响 应 周 期ALE/INTAAD7-AD0 8086中 断 响 应 周 期 的 时 序 图 外 部 总 线 主 模 块 将 HOLD信 号 变 为 高 电 平 后 , CPU要 在 下 一个 时 钟 周 期 的 上 升 沿 时 才 检 测 到 , 随 后 CPU在 T4或 者 TI的 下降 沿 处 将 HLDA信 号 升 为 高 电 平 。HOLD请 求 信 号 直 接 影 响 8086 8088总 线 接 口 部 件 (BIU)的工 作 , 但 是 对 执 行 部 件 (EU)的 影 响 只 是 间 接 的 。

19、当 发 总 线 保 持 请 求 的 设 备 将 HOLD信 号 降 为 低 电 平 时 , CPU也 将 HLDA信 号 降 为 低 电 平 , 但 是 , CPU不 会 马 上 重 新 驱 动地 址 总 线 、 数 据 总 数 和 控 制 线 , 而 是 使 这 些 引 腿 继 续 浮 空 ,直 到 CPU需 要 执 行 一 个 总 线 操 作 时 , 才 结 束 这 些 引 腿 的 浮 空状 态 。 从 时 序 说 明 中 , 可 以 见 到 , 每 次 总 线 控 制 权 的 切 换 都 是 通 过 三 个 环 节 来 实现 的 , 即 协 处 理 器 或 其 他 主 模 块 发 请 求

20、 脉 冲 , CPU发 允 许 脉 冲 , 外 部 主 模 块用 完 总 线 后 发 释 放 脉 冲 。 这 些 脉 冲 都 是 负 脉 冲 , 但 并 不 在 一 个 方 向 上 传 输 。在 每 次 总 线 控 制 权 改 变 后 , 总 线 上 必 须 有 一 个 空 闲 周 期 。 即 在 一 个 时 钟 周期 中 , 没 有 任 何 一 个 主 模 块 使 用 总 线 。在 外 部 总 线 主 模 块 发 出 总 线 请 求 时 , 还 有 一 些 附 带 条 件 对 CPU响 应 总 线 请求 作 出 限 制 , 这 就 是 : 如 果 CPU正 在 访 问 存 储 器 或 外 设

21、 端 口 , 那 么 , 总 线 请 求 脉 冲 必 须 在 T2之 前 到 达 才 有 效 , 否 则 , 外 部 主 模 块 必 须 重 发 请 求 脉 冲 。 如 果 CPU正 在 用 低 8位 数 据 线 传 送 数 据 , 则 总 线 请 求 脉 冲 将 无 效 。 等到 数 据 传 送 结 束 , 外 部 主 模 块 重 发 请 求 脉 冲 时 , CPU才 响 应 。 如 果 CPU正 在 执 行 中 断 响 应 的 第 一 个 总 线 周 期 , 则 总 线 请 求 无 效 。 如 果 CPU正 在 执 行 总 线 封 锁 指 令 , 则 总 线 请 求 无 效 。 所 以 ,

22、 只 有 在 总 线 空 闲 时 遇 到 总 线 请 求 的 情 况 下 , CPU才 会 在 下 一 个 时钟 周 期 发 出 允 许 信 号 。8086释 放 总 线 后 , CPU仍 然 可 以 执 行 已 经 进 入 指 令 队 列 中 的 指 令 , 直 到 需 要 请 求 一 个 总 线 周 期 为 止 。 另 外 CPU收 到 其 他 主 模 块 发 出 的 释 放 脉 冲 后 , 也并 不 是 立 即 驱 动 总 线 。 8086的 寻 址 方 式 和 指 令 系 统 3.3.4 串 操 作 指 令 3.1.1 立 即 寻 址 3.1.2 寄 存 器 寻 址 3.1.2 直 接

23、 寻 址 如 指 令 前 面 没 有 用 前 缀 指 明 操 作 数 在 哪 一 段 , 则 默 认 段 寄 存 器为 数 据 段 寄 存 器 DS。例 : MOV AX , 1070H ; 将 DS: 1070H的 内 容 送 到 AL DS: 1071H的 内 容 送 到 AH如 要 对 其 他 段 寄 存 器 所 指 出 的 存 储 区 进 行 直 接 寻 址 , 则 本 条 指令 前 必 须 用 前 缀 指 出 段 寄 存 器 名 。例 : CS: MOV AX , 1070H ; 将 CS: 1070H的 内 容 送 到 AL CS: 1071H的 内 容 送 到 AH或 MOV A

24、X , CS:1070H 3.1.4 寄 存 器 间 接 寻 址 特 点 :1、 操 作 数 实 际 一 定 存 放 在 存 储 器 中 。2、 寄 存 器 可 以 也 只 可 以 为 : BX、 BP、 SI、 DI。3、 源 操 作 数 或 者 目 的 操 作 数 。4、 采 用 间 接 寻 址 的 寄 存 器 要 用 “ ”括 起 来 。注 意 :1、 如 指 令 前 面 没 有 用 前 缀 指 明 操 作 数 在 哪 一 段 , 则 默 认 段 寄 存 器 为 数 据 段 寄 存 器 DS; 但 若 寄 存 器 为 BP, 则 默 认 段 寄 存 器 为 数 据 段 寄 存 器 SS。

25、2、 如 果 要 改 变 段 寄 存 器 , 则 必 须 在 该 指 令 前 加 前 缀 指 出 。3、 采 用 寄 存 器 间 接 寻 址 时 , 允 许 在 指 令 中 指 定 一 个 位 移 量 , 这 样 , 有 效地 址 就 是 寄 存 器 的 内 容 加 上 位 移 量 得 到 。 位 移 量 可 为 8位 , 也 可 为 16位 。 若 要 对 其 他 段 寄 存 器 所 指 的 区 域 进 行 寻 址 , 则 必 须 在 该指 令 前 用 前 缀 指 出 段 寄 存 器 名 。例 : 若 DS=5000H, ES=3000H, BX=3000HES: MOV AX , BX ;

26、 将 33000H单 元 的 内 容 送 到 AL 33001H单 元 的 内 容 送 到 AH + 若 用 BP寄 存 器 , 则 默认 的 段 寄 存 器 是 SS,若 用 BX寄 存 器 , 则 默认 的 段 寄 存 器 是 DS。 在 寄 存 器 间 接 寻 址 时 在 指 令 中 加 入 了 一 个 8位 或 16位 位 移 量 。 + + 格 式 : MOV AX , BX+6 MOV AX , 6BX MOV AX , BX+6 1 MOV( Move) : 传 送 指 令MOV指 令 的 格 式 为 :MOV dst, src ; dstsrc功 能 : 将 源 操 作 数 s

27、rc复 制 到 目 的 操 作 数 dst中 , 结 果 目 的 操 作数 的 内 容 等 于 源 操 作 数 的 内 容 , 源 操 作 数 src的 内 容 不 变 。对 标 志 位 的 影 响 : 无语 法 格 式 :MOV reg/mem/seg , reg/mem/seg/imm MOV WORD PTR1000H , AX MOV CS: BX+SI+100 , AX MOV BYTE PTRBX , AL MOV SI , AL MOV AX , BX MOV AX , ES: BX+SI+100 MOV ES , DX MOV DS , AX MOV SS , BX MOV E

28、S , SS: DI+100 MOV DX , DS MOV BX , ES MOV WORDPTRBX+SI+200 , SS MOV BX , CS MOV DX , AX MOV BL , DH MOV CX , DI MOV DX , SI+100 MOV DI , BX+DI+200 MOV WORD PTRDI , DX MOV WORD PTRBX+SI+200 , DI MOV AX , 77H ; 默 认 为 0077H MOV AL , 77H MOV DI , 6180H MOV WORD PTRBX+SI+500 , 1000H MOV BYTE PTRDI , 66

29、MOV DS: BP , 6180H 通 用 传 送 指 令 可 传 送 8位 数 据 , 也 可 传 送 16位 数 据 , 具 体决 定 于 指 令 中 涉 及 的 寄 存 器 是 8为 还 是 16位 。 MOV CX , AL ( X) MOV CL , AX ( X) 通 用 传 送 指 令 中 总 是 即 有 源 操 作 数 , 又 有 目 的 操 作 数 , 并且 两 者 之 中 至 少 有 一 个 要 用 寄 存 器 来 指 出 。不 能 在 两 个 内 存 单 元 之 间 直 接 传 送 数 据 。 MOV seg , seg ; 错 误 MOV mem , mem ; 错

30、误CS、 IP这 两 个 寄 存 器 不 能 作 为 目 的 操 作 数 。用 BX、 SI、 DI来 间 接 寻 址 时 , 默 认 的 段 寄 存 器 是 DS; 用BP来 间 接 寻 址 时 , 默 认 的 段 寄 存 器 是 SS。在 修 改 SS和 SP的 指 令 之 间 不 要 插 入 其 他 指 令 。所 有 的 通 用 传 送 指 令 都 不 改 变 状 态 标 志 。 例 : 错 误 的 MOV 指 令 如 下 所 示 :MOV AX, BL ; 类 型 不 匹 配MOV DS, 1000H ; 不 允 许 立 即 数 送 段 寄 存 器MOV BX , SI ; 不 允 许

31、 内 存 操 作 数 之 间 传 送MOV ES, CS ; 不 允 许 段 寄 存 器 之 间 传 送MOV CS, AX ; CS不 能 作 为 目 的 操 作 数例 : 设 A、 B是 已 定 义 的 字 节 变 量 , 以 下 是 一 些 错 误 和 正 确 的 指令 。MOV AX, B ; 错 误 , 类 型 不 匹 配MOV A, 0 ; 正 确 , MASM可 以 判 断 出 要 送 字 节 0 2.堆 栈 指 令堆 栈 概 念 - 存 储 器 的 一 段 区 域 , 按 “ 先 进 后 出 ”的 原 则 进 行 存 出 操 作 。 8086/8088系 统 , 堆 栈 位 于

32、 堆 栈段 , 其 段 地 址 由 SS指 示 , SP寄 存 器 作 为 指 针 , SP内 容始 终 指 向 栈 顶 所 在 存 储 单 元 。作 用 : 在 调 用 一 个 过 程 时 , 保 存 返 回 地 址 ; 暂 时 存 放寄 存 器 或 存 储 器 单 元 操 作 数 的 内 容 。 堆 栈 SP: 01F8SP: 01FASP: 01FCSP: 01FESP AA BB( 执 行 PUSH AX之 前 ) 堆 栈 SP: 01F8SP: 01FASP: 01FCSP: 01FESP AA BB( 执 行 PUSH AX之 后 )1101H 1101H AX堆 栈 SP: 01

33、F8SP: 01FASP: 01FC SP: 01FESP AA BB ( 执 行 POP AX之 后 )1101H AX1 23 堆 栈 操 作 总 是 按 字 操 作 的 。每 执 行 一 条 压 栈 指 令 , 堆 栈 指 针 减 2, 推 入 堆 栈 的 数 据 放 在 栈 顶 ,低 位 字 节 放 在 较 低 地 址 单 元 ( 真 正 的 栈 顶 单 元 ) , 高 位 字 节 放在 较 高 单 元 。 出 栈 时 正 好 相 反 , 每 弹 出 一 个 字 , 堆 栈 指 针 加 2。CS寄 存 器 的 值 可 以 压 入 堆 栈 , 但 不 能 从 堆 栈 中 弹 出 值 到

34、CS。一 定 要 遵 循 “ 先 进 后 出 ” 的 原 则 。 直 接 的 输 入 /输 出 指 令格 式 : IN AL , PORT OUT PORT , AL ; 字 节IN AX , PORT OUT PORT , AX ; 字PORT: 外 设 的 端 口 地 址例 : IN AL , 50H ; 将 50H端 口 的 字 节 读 入 AL IN AX , 70H ; 将 70H端 口 的 字 节 读 入 AL, 将 71H端 口 的 字 节 读 入 AH。 IN AX , 71H ; 将 71H端 口 的 字 节 读 入 AL, 将 72H端 口 的 字 节 读 入 AH。 OU

35、T 50H , AL ; 将 AL中 的 字 节 输 出 到 50H端 口 OUT 80H , AX ; 将 AL输 出 到 70H端 口 , AX输 出 到 71H。 间 接 的 输 入 /输 出 指 令格 式 :IN AL , DX OUT DX , AL ; 字 节IN AX , DX OUT DX , AX ; 字例 : IN AL , DX ; 从 DX所 指 的 端 口 读 取 字 节 送 到 AL。 IN AX , DX ; 从 DX所 指 的 端 口 读 取 字 节 送 到 AL, 从 DX+1所 指 的 端 口 读 取 字 节 送 到 AH。 OUT DX , AL ; 将

36、AL中 的 字 节 输 出 到 DX所 指 的 端 口 中 。 OUT DX , AX ; 将 AL中 的 字 节 输 出 到 DX所 指 的 端 口 中 , 将 AH中 的 字 节 输 出 到 DX+1所 指 的 端 口 中 。 必 须 是 用 累 加 器 。用 直 接 输 入 /输 出 指 令 时 , 端 口 号 不 要 用 “ ” 括起 来 , 且 寻 址 范 围 为 0255( 0000H00FFH) 。用 间 接 输 入 /输 出 指 令 时 , 只 能 用 DX寄 存 器 , 寻 址 范围 为 065535( 0000HFFFFH) 。 AL DS: ( BX+AL) LEA 指

37、令 与 MOV 指 令 的 区 别 :LEA SI, BUFF指 令 是 将 标 号 BUFF的 偏 移 地 址 送 入 寄 存 器 中 ;MOV SI, BUFF指 令 是 将 标 号 BUFF所 指 存 储 单 元 的 内 容 送 入 SI。BUFF = 012345 4800FEFF LEA SI, BUFF;执 行 后 : ( SI) =0002HMOV SI, BUFF;执 行 后 : ( SI) =0048H段 起 始 地 址 57H13H68H24HDS: 2480HDS: 2481HDS: 2482HDS: 2483H 13 57 24 68 算 术 运 算 指 令 涉 及 的

38、 一 些 问 题无 符 号 数 : 将 所 有 的 数 位 都 看 成 数 据 位 , 只 有 正 数 没 有 负 数 。 8位 无 符 号数 值 的 范 围 为 0255, 16位 无 符 号 数 值 的 范 围 为 065535。有 符 号 数 : 将 最 高 位 作 为 符 号 , 数 据 本 身 用 补 码 表 示 , 即 可 表 示 正 数 , 也可 表 示 负 数 。 8位 有 符 号 数 值 的 范 围 为 -128+127, 16位 无 符 号 数 值 的 范围 为 -32768+32767。对 于 加 、 减 法 , 无 符 号 数 和 有 符 号 数 可 采 用 同 一 套

39、 指 令 , 对 于 乘 、 除 法 ,无 符 号 数 和 有 符 号 数 不 能 采 用 同 一 套 指 令 。无 符 号 数 和 有 符 号 数 可 采 用 同 一 套 加 、 减 法 指 令 有 两 个 条 件 : 两 个 操 作 数 必 须 同 为 无 符 号 数 或 有 符 号 数 。 要 用 不 同 的 方 法 检 测 无 符 号 数 或 有 符 号 数 的 运 算 结 果 是 否 溢 出 。对 于 无 符 号 数 运 算 , 用 CF是 否 为 1来 判 断 是 否 产 生 溢 出 ; 对 于有 符 号 数 运 算 , 用 OF是 否 为 1来 判 断 是 否 产 生 溢 出 。

40、所 有 的 算 术 运 算 指 令 , 都 会 影 响 状 态 标 志 。 具 体 有 这 样 一 些 规 则 :当 无 符 号 数 运 算 产 生 溢 出 时 , CF=1当 有 符 号 数 运 算 产 生 溢 出 时 , OF=1 运 算 结 果 为 0, ZF=1运 算 结 果 为 负 数 , SF=1 运 算 结 果 中 有 偶 数 个 1, PF=1 加 法 指 令 例 : ADD AL , BL ; 将 AL内 容 与 BL内 容 相 加 , 结 果 送 到AL。 ADD AX , CX ; 将 AX内 容 与 CX内 容 相 加 , 结 果 送 到AX。 ADD AX , 100

41、0H ; 将 AX内 容 与 1000H, 1001H内 容 相 加 , 结 果 送 到 AX ADD BX , SI+100 ADD WORD PTRDI+200 , CX ADD AX , 100H ADD BYTE PTRBX+SI+100 , 20 例 : 将 两 个 分 别 存 放 在 2000H和 3000H开 始 的 存 储 单 元 的 4字 节无 符 号 数 相 加 , 结 果 存 放 到 2000H开 始 的 单 元 。 ( 地 位 在 前 ,高 位 在 后 ) MOV SI , 2000H MOV AX , SI MOV DI , 3000H ADD AX , DI MOV

42、 SI , AX MOV AX , SI+2 ADC AX , DI+2 MOV SI+2 , AX 例 : INC AX INC CL INC SI+100 INC 2000HADD、 ADC指 令 对 标 志 位 AF、 OF、 PF、 ZF、 CF有 影 响 ,INC指 令 对 标 志 位 也 有 影 响 , 但 不 影 响 CF。 例 : SUB AL , BL ; 将 AL内 容 与 BL内 容 相 减 , 结 果 送 到 AL。 SUB AX , CX ; 将 AX内 容 与 CX内 容 相 减 , 结 果 送 到 AX。 SUB AX , 1000H ; 将 AX内 容 与 10

43、00H, 1001H内 容 相 减 , 结 果 送 到 AX。 SUB BX , SI+100 SUB WORD PTRDI+200 , CX SUB AX , 100H SUB BYTE PTRBX+SI+100 , 20 例 : 将 两 个 文 分 别 存 放 在 2000H和 3000H开 始 的 存 储 单 元 的 4字 节 无 符 号 数 相 减 , 结 果 存 放 到 2000H开 始 的 单 元 。 ( 地位 在 前 , 高 位 在 后 ) MOV SI , 2000HMOV AX , SIMOV DI , 3000HSUB AX , DIMOV SI , AXMOV AX ,

44、SI+2SBB AX , DI+2MOV SI+2 , AX 例 : DEC AX DEC CL DEC SI+100 DEC 2000H 例 : NEG AX NEG CL NEG SI+100 NEG 2000H 例 : CMP AX , 2000H CMP AL , 50H CMP AX , BX+DI+100 CMP DX , DI 会 影 响 标 志 位 AF、 CF、 OF、 PF、 SF、 ZF。 两 数 相 等 , ZF=1 两 数 不 等 :a) 、 无 符 号 数 : CF=0, 被 减 数 大 , 减 数 小 ; CF=1, 被 减 数 小 , 减 数 大 。b) 、 有

45、 符 号 数 : 若 OF和 SF值 相 同 , 则 说 明 被 减 数 比 减 数 大 ; 若 OF和 SF值 不同 , 则 说 明 被 减 数 比 减 数 小 。 ( 2) 带 符 号 数 除 法 指 令 例 : 将 两 个 分 别 存 放 在 2000H和 3000H开 始 的 存 储 单元 的 2字 节 组 合 BCD码 数 相 加 , 结 果 存 放 到 2000H开始 的 单 元 。 MOV SI , 2000HMOV AL , SIMOV DI , 3000HADD AL , DIDAAMOV SI , ALMOV AL , SI+1ADC AL , DI+1DAAMOV SI+

46、1 , AL ( 5) 非 组 合 BCD码 的 乘 法 调 整 指 令例 : MOV AL , 05H MOV BL , 07H MUL BL ; AX=0023H AAM ; AH=03H、 AL=05H 例 : 35 7=5 MOV AX , 0305H AAD ; AH=00H、 AL=23H MOV BL , 07H DIV BL 0CF OPR0 CFOPR CF OPR CFOPR CF OPR CFOPR CF OPR CFOPR 例 : MOV SI , 1000H MOV DI , 2000H MOV CX , 100 CLD REP MOVSB ; 将 源 地 址 开 始

47、 的 100 个 字 节 送 到 目 的 地 址 REP指 令 : ( CX) 1 CX, 当 CX=0时 , 退 出重 复 , 执 行 其 后 面 的 程 序 。 例 : MOV DI , 1000H MOV SI , 2000H CLD MOV CX , 0004HREPZ: CMPSB JZ KKK ; ZF=0, 表 示 4个 比 较 单 元 都 相 同REPZ指 令 :ZF=1, 条 件 满 足 , 执 行 重 复 , ( CX) 1 CX, 当 CX=0时 , 退 出 重 复 , 执 行 其 后 面 的 程 序 。ZF=0, 条 件 不 满 足 , 退 出 重 复 , 执 行 其

48、后 面 的 程 序 。REPNZ指 令 : 与 REPZ的 条 件 正 好 相 反 。 例 : 从 ES段 : 3000H单 元 开 始 的 5个 单 元 中 找 到 第 一个 与 AL中 内 容 相 等 的 单 元 , 并 使 其 内 容 增 1。 MOV AL , 40HMOV DI , 3000HCLDMOV CX , 5MOV DX , CXREPNZ SCASBJNZ AAASUB DX , CXDEC DXMOV DI , DXINC BYTE PTR DIAAA: 例 : 将 0700H单 元 开 始 的 5个 字 节 的 内 容 逐 一 取 来 , 放在 累 加 器 中 进 行

49、 处 理 , 处 理 后 在 送 回 到 原 内 存 单 元 。 CLDMOV SI , 0700HMOV CX , 5LI: MOV DI , SILODSBPUSH CXPOP CXDEC CXMOV DI , ALJNZ LI ( 2) 存 字 符 串 指 令 例 : 使 0404H开 始 的 256个 单 元 清 0。 CLDLEA DI , 0404HMOV CX , 0080HXOR AX , AXREP STOSB 控 制 转 移 指 令 包 括 5类 指 令 :子 程 序 调 用 和 返 回 指 令无 条 件 转 移 和 条 件 转 移 指 令循 环 控 制 指 令中 断 指

50、令处 理 器 控 制 指 令 1.关 于 转 移 指 令 和 调 用 指 令 的 寻 址 a、 段 内 直 接 转 移 方 式 指 令 中 给 出 一 个 相 对 位 移 量 , 这 样 , 转 移 的 有 效 偏 移 地址 为 IP当 前 内 容 加 上 一 个 8位 或 16位 位 移 量 。适 用 : 条 件 转 移 指 令 无 条 件 转 移 指 令 调 用 指 令注 意 : 条 件 转 移 指 令 中 , 只 能 用 8位 位 移 量 。 b、 段 内 间 接 转 移 方 式 转 移 的 有 效 偏 移 地 址 总 是 在 寄 存 器 中 或者 在 内 存 单 元 中 。适 用 :

51、无 条 件 转 移 指 令例 : JMP 1000H; 直 接 转 移 JMP BX ; 间 接 转 移 JMP BX ; 间 接 转 移 c、 段 间 直 接 转 移 方 式 指 令 中 给 出 转 移 地 址 的 段 值 和 偏 移 量 。 产 生 转移 时 , 将 段 值 代 入 CS中 , 将 偏 移 量 代 入 IP中 。 例 : JMP 2000H: 1000Hd、 段 间 间 接 转 移 方 式 转 移 地 址 ( IP、 CS内 容 ) 用 内 存 中 2个 连 续 的字 来 替 换 。 例 : JMP DWORD PTR DI 转 移 地 址 由 DI、 DI+1、 DI+2

52、、 DI+3单 元 的 内 容给 出 , 其 中 DI、 DI+1为 偏 移 量 , DI+2、 DI+3为 段 地址 。 例 : CALL 1000H ; 段 内 直 接 调 用 CALL AX ; 段 内 间 接 调 用 CALL 2500H: 3600H ; 段 间 直 接 调 用 CALL DWORD PTR DI ; 段 间 间 接 调 用 a、 无 条 件 转 移 指 令例 : JMP 1000H ; 段 内 直 接 转 移 JMP CX ; 段 内 间 接 转 移 JMP 2000H: 0100H ; 段 间 直 接 转 移 JMP DWORD PTR SI ; 段 间 间 接

53、转 移 例 : 设 2000H开 始 的 区 域 中 , 存 放 着 14H个 无 符 号 数 ,要 求 找 出 其 中 最 大 的 一 个 数 , 并 存 放 到 2000H。 GTAMAX: MOV BX , 2000H MOV AL , BX MOV CX , 14HP1: INC BX CMP AL , BX JAE P2 MOV AL , BXP2: DEC CX JNZ P1 MOV BX , 2000H MOV BX , AL 例 : 在 40个 元 素 构 成 的 数 组 中 寻 找 第 一 个 非 0元 素MOV CX , 40MOV SI , 0FFHNEXT: INC S

54、ICMP BYTE PTR SI , 0LOOPZ NEXTJNZ KKKCALL DISPLAY1RETKKK: CALL DISPLAY2RET 中 断 指 令 为 程 序 员 提 供 了 软 件 中 断 手 段 。中 断 指 令 : INT n中 断 返 回 指 令 : IRET执 行 INT n指 令 时 , 将 使 CPU转 到 一 个 中 断 处 理 程序 。 此 时 , 标 志 位 被 推 入 堆 栈 , SP 2; 然 后 清 IF、TF; 接 着 , 将 主 程 序 的 下 一 条 指 令 的 地 址 ( 断 点 地址 ) 的 段 值 和 偏 移 量 推 入 堆 栈 , SP

55、 4。 n为 中 断 类型 号 。 ( 5) 总 线 封 锁 前 缀 3.4 ASM86汇 编 语 言 中 的 标 记 、 表 达 式 和 伪 指 令 机 器 语 言 : 用 以 二 进 制 编 码 的 形 式 表 示 的 机 器 指 令 组 。用 机 器 语 言 编 制 的 程 序 称 为 机 器 程 序 , 又 称 为 目 标 程 序 , 它 能 机 器 所 识别 并 执 行 。 机 器 语 言 编 写 程 序 易 出 错 、 难 修 改 、 不 易 看 懂 。高 级 语 言 : 用 通 用 符 号 指 令 码 。用 高 级 语 言 编 制 的 程 序 称 为 源 程 序 , 它 必 须

56、通 过 翻 译 程 序 把 它 翻 译 成 目标 程 序 ( 机 器 程 序 ) 后 , 才 能 被 机 器 所 识 别 、 执 行 。 源 程 序 易 学 、 使 用方 便 、 易 推 广 。 但 翻 译 后 的 目 标 程 序 长 , 执 行 时 间 长 , 实 时 性 差 。汇 编 语 言 : 用 机 器 专 用 符 号 指 令 码 。用 汇 编 语 言 编 制 的 程 序 称 为 汇 编 语 言 程 序 , 它 也 是 源 程 序 , 必 须 通 过 汇编 程 序 将 它 翻 译 成 目 标 程 序 。 它 的 目 标 程 序 短 , 实 时 性 好 , 大 量 用 于 实 时 控 制

57、 程 序 中 。 汇 编 语 言 的 基 本 概 念3.4.1 一 个 完 整 的 汇 编 语 言 的 语 句 由 下 列 几 部 分 组 成 : 标 识 符 、保 留 字 、 界 符 、 常 数 和 注 释 , 所 有 这 些 都 称 为 标 记 。 标 识 符 : 是 程 序 员 为 了 使 程 序 便 于 理 解 和 书 写 所 使 用 的 一些 字 符 串 , 常 作 为 一 段 程 序 的 开 头 、 一 个 数 据 块 的 开 头 。 保 留 字 : 是 汇 编 语 言 中 预 先 保 留 下 来 的 具 有 特 殊 含 义 的 符 号 , 只 能 作 为固 定 的 用 途 。 如

58、 : MOV、 INT、 DB、 SEGMENT、 END等 。 凡 是 8086的 指 令 、伪 指 令 、 寄 存 器 名 等 都 是 保 留 字 。界 符 : 作 为 一 个 程 序 中 或 者 一 条 指 令 中 两 个 部 分 的 分 隔 符 号 。 如 “ , ” 、“ ; ” 等 。常 数 : 就 是 指 令 中 出 现 的 那 些 固 定 值 。 如 立 即 寻 址 时 所 用 的 立 即 数 、 直接 寻 址 时 所 用 的 地 址 等 。常 数 的 表 示 形 式 :二 进 制 , 01001000B十 进 制 , 100, 200D十 六 进 制 , 1000H、 74H

59、、 0FE00H八 进 制 , 2560Q用 引 号 引 起 来 的 字 符 串 。 如 ABC , 等 效 于 常 数 41H、 42H、 43H。 注 释 : 汇 编 语 言 中 为 了 便 于 阅 读 和 理 解 而 加 入 的 一 些 说 明 文 字 。注 意 :注 释 要 用 “ ; ” 打 头 。在 汇 编 过 程 中 , 注 释 被 略 去 不 作 处 理 。 表 达 式 由 操 作 数 和 运 算 符 组 成 。 操 作 数 : 内 容 上 可 能 代 表 一 个 数 据 , 也 可 能 代 表 一 个 存 储单 元 。对 于 一 个 数 据 最 简 单 的 表 达 方 式 就

60、 是 用 常 数 形 式 , 如 100H。汇 编 语 言 程 序 中 也 常 常 用 标 号 来 表 示 数 据 , 如 用 PORT表 示一 个 端 口 号 , 而 在 汇 编 语 言 程 序 又 用 伪 指 令 对 PORT作 了 定义 , 使 它 等 于 某 个 常 数 。源 程 序 中 , 存 储 器 地 址 也 常 用 标 号 表 示 , 作 为 转 移 指 令 的转 移 地 址 或 调 用 指 令 的 调 用 地 址 。 如 JMP START中 的START标 号 , 实 际 上 包 括 了 地 址 的 段 值 和 偏 移 量 。 : 包 括 EQ( 相 等 ) 、 NE( 不

61、 相 等 ) 、 LT( 小 于 ) 、 GT( 大 于 ) 、LE( 小 于 或 大 于 ) 、 GE( 大 于 或 等 于 ) 共 六 种 。 分 析 操 作 符 ( 数 值 返 回 运 算 符 )( 1) 取 地 址 的 偏 移 量 分 析 操 作 符 ( 数 值 返 回 运 算 符 ) 分 析 操 作 符 ( 数 值 返 回 运 算 符 ) 综 合 运 算 符 综 合 运 算 符 其 他 运 算 符 其 他 运 算 符 1、 指 令 性 语 句在 汇 编 时 会 产 生 对 应 的 目 标 代 码 。如 : ADD AL , BL MOV AX , 1000H2、 指 示 性 语 句

62、( 伪 指 令 )在 汇 编 时 不 产 生 任 何 目 标 代 码 。 3.4.5 ( 2) 等 号 伪 指 令 ( 3) 定 义 符 号 名 伪 指 令格 式 : 符 号 名 LABEL 类 型功 能 : 定 义 一 个 标 号 或 变 量 , 并 指 定 其 类 型 。 数 据 定 义 伪 指 令2. 表 达 式 是 赋 给 变 量 的 初 始 值 , 可 以 有 一 个 , 也 可 以 有 多 个 ,常 见 的 有 以 下 几 种 : 这 实 际 上 是 为 数 据 分 配 存 储 单 元 , 并 把 变 量 名 作 为 该 存 储 单 元 的 名 称 。 ASCII字 符 串可 以

63、用 DB伪 指 令 为 ASCII字 符 串 中 的 每 一 个 字 符 分 配 一 个 字 节 单 元 。( 2) 这 是 为 数 据 项 分 配 存 储 单 元 的 一 种 方 法 , 只 是 存 储 单 元 中 不 预 置确 定 的 值 , 常 用 来 预 留 存 储 单 元 , 存 放 程 序 的 中 间 结 果 或 最 终 结 果 。 :(1) : 【 例 】 EXTRN 符 号 名 : 类 型 , 建 立 标 题2) 这 些 伪 指 令 用 于 打 开 或 关 闭 列 表 文 件 的 输 出 。 DATA SEGMENTM1 DW 00FFHM2 DW 00FFHP1 DW ?P2

64、 DW ?DATA ENDSSTACK SEGMENTST DB 100 DUP(?)TOP EQU LENGTH STSTACK ENDSCODE SEGMENTASSUME CS: CODE, DS: DATA, SS: STACKSTART: MOV AX, DATAMOV DS, AX MOV AX, STACK MOV SS, AXMOV AX, TOPMOV SP, AXMOV BX, OFFSET M1MOV AX, BXMOV DX, 00MOV BX, OFFSET M2MUL BXMOV BX, OFFSET P1MOV BX, AXMOV BX , OFFSET P2MO

65、V BX, DXHLTCODE ENDSEND START 存 储 器 和 高 速 缓 存 技 术 1) 按 存 储 介 质 分 : 半 导 体 存 储 器 、 磁 表 面 存 储 器 、光 表 面 存 储 器 ; 2) 按 读 写 功 能 分 : ROM和 RAM; 3) 按 信 息 的 可 保 存 性 分 类 : 非 永 久 性 记 忆 存 储 器 ( 断 电 后 信 息 消 失 ) : RAM 永 久 性 记 忆 存 储 器 ( 断 电 后 信 息 仍 保 存 ) : ROM、磁 表 面 或 光 表 面 存 储 器 ; 4) 按 在 计 算 机 系 统 中 的 作 用 分 类 : 主 存

66、 储 器 ( 内存 ) 、 辅 助 存 储 器 ( 外 存 ) 、 高 速 缓 冲 存 储 器 。 4.1.2 微 型 计 算 机 内 存 的 行 列 结 构 A0A1An-1 数 据 线 R/W CE OE地址译码器 存储矩阵 三态双向缓冲器存 储 控 制 逻 辑 4.1.3 存 储 器 的 性 能 指 标 1) 存 储 容 量 :是 指 存 储 器 可 以 存 储 的 二 进 制 信 息 量 。 2) 存 取 时 间 和 存 取 周 期 存 取 时 间 : 从 存 储 器 接 收 到 寻 址 地 址 开 始 , 到 完 成 取 出或 存 入 数 据 为 止 所 需 的 时 间 。 存 取 周 期 : 连 续 两 次 独 立 的 存 储 器 存 取 操 作 所 需 的 最 小时 间 间 隔 。3) 可 靠 性 :指 存 储 器 对 电 磁 场 及 温 度 等 的 变 化 的 抗 干 扰 能 力 。 4) 其 它 指 标 : 体 积 、 功 耗 、 工 作 温 度 范 围 、 成 本 等 。 4.1.4 随 机 存 储 器 RAM 按 制 造 工 艺 可 分 为 :双 极 型 和 MO

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!