《汇编语言程序设计》PPT课件

上传人:san****019 文档编号:22857997 上传时间:2021-06-01 格式:PPT 页数:39 大小:2.88MB
收藏 版权申诉 举报 下载
《汇编语言程序设计》PPT课件_第1页
第1页 / 共39页
《汇编语言程序设计》PPT课件_第2页
第2页 / 共39页
《汇编语言程序设计》PPT课件_第3页
第3页 / 共39页
资源描述:

《《汇编语言程序设计》PPT课件》由会员分享,可在线阅读,更多相关《《汇编语言程序设计》PPT课件(39页珍藏版)》请在装配图网上搜索。

1、 汇 编 语 言 程 序 设 计4.1 引 言本 节 内 容 : 一 、 计 算 机 程 序 设 计 语 言 ( 分 类 、 优 缺 点 )二 、 汇 编 语 言 的 格 式 ( 四 分 段 格 式 )三 、 汇 编 语 言 的 构 成 ( 指 令 性 语 句 、 指 示 性 语 句 ) 汇 编 语 言 程 序 设 计一 、 计 算 机 程 序 设 计 语 言1 机 器 语 言 (Machine Language)2 汇 编 语 言 (Assembly Language)3 高 级 语 言 (High-Level Language)4.1 引 言 汇 编 语 言 程 序 设 计一 、 计 算

2、机 程 序 设 计 语 言1 机 器 语 言 (Machine Language)直 接 为 计 算 机 所 识 别 和 执 行两 种 表 示 形 式 : 1、 二 进 制 2、 十 六 进 制如 : 111010100100000B F520H表 示 MOV 20H, A4.1 引 言 汇 编 语 言 程 序 设 计4.1 引 言一 、 计 算 机 程 序 设 计 语 言2、 汇 编 语 言 :由 助 记 符 、 保 留 字 、 伪 指 令 组 成 又 称 为 符 号 语 言执 行 前 需 由 汇 编 程 序 翻 译 成 机 器 语 言不 独 立 于 具 体 的 计 算 机优 点 : 可 以

3、 直 接 操 作 到 单 片 机 内 部 的 工 作 寄 存 器 和 片 内 RAM单 元 , 既 精 练 又 功 能 强 大 汇 编 语 言 程 序 设 计4.1 引 言一 、 计 算 机 程 序 设 计 语 言3、 高 级 语 言 C( C+、 C#) 、 BASIC等接 近 自 然 语 言 , 只 需 掌 握 语 法 规 则 和 程 序 结 构 的 设 计 。执 行 前 需 翻 译 成 机 器 语 言 。 功 能 强 大 、 但 必 须 在 较 高 级 的 计 算 机 上 实 现 。 汇 编 语 言 程 序 设 计4.1 引 言扩 展 : C语 言 与 汇 编 语 言 的 对 比汇 编

4、语 言 中 , 用 MOV来 回 传 送 数 据 , C语 言 里 , 用 等号 表 示 数 据 传 送 ; 汇 编 语 言 中 , 用 CALL转 去 执 行 子 过 程 程 序 ,C语 言 里 , 用 个 函 数 名 调 用 子 程 序 。 汇 编 语 言 中 , 用 JMP完 成分 支 转 移 , C语 言 里 用 if、 switch、 while、 for来 判 断 跳 转 。 汇编 语 言 跟 C一 样 可 以 给 寄 存 器 指 定 命 名 , 然 后 对 定 义 的 名 称 进行 操 作 。 C语 言 具 有 大 量 函 数 的 函 数 库 , 有 更 高 的 开 发 效 率

5、。面 向 应 用 , 直 接 采 用 C语 言 ; 面 向 研 究 , 从 汇 编 语 言 开始 ; 如 果 有 时 间 , 最 好 是 用 汇 编 语 言 学 习 单 片 机 原 理 , 用 C语言 进 行 单 片 机 的 应 用 开 发 。 汇 编 语 言 程 序 设 计二 、 汇 编 语 言 格 式 四 分 段 格 式4.1 引 言 : , ;必 选 项START : MOV A, #00H ; A0 NOP 汇 编 语 言 程 序 设 计ORG 0060HSTART MOV A, #00H /A0 MOV R2, #0AH /R210 MOV R1, #03H /R13LOOP ADD

6、 A, R1 /AA+ (R1) DJNZ R2 LOOP /若 R2 10, 则 LOOP NOP SJMP END4.1 引 言 找 错 误 汇 编 语 言 程 序 设 计ORG 0060HSTART: MOV A, #00H ; A0 MOV R2, #0AH ; R210 MOV R1, #03H ; R13LOOP: ADD A, R1 ; AA+ R1 DJNZ R2, LOOP ; 若 R2 10, 则 LOOP NOP SJMP END4.1 引 言 汇 编 语 言 程 序 设 计二 、 汇 编 语 言 格 式 4.1 引 言 、 标 号 字 段 个 字 符 、 可 以 有 数

7、 字 、 具 有 一 定 意 义的 词 、 不 能 有 保 留 字 、 又 称 标 号 地 址 。 用 于 指 明 指令 操 作 码 字 节 的 内 存 地 址 。注 意 :DJNZ R2,LOOP; 若 R2 10,则 PCPC+2+rel ; LOOP应 理 解 为 $-LOOP 汇 编 语 言 程 序 设 计二 、 汇 编 语 言 格 式 4.1 引 言 、 操 作 码 字 段保 留 字 ( 如 : MOV、 ADD、 NOP等 )助 记 符 ( 如 : ORG、 END等 ) 、 操 作 数 字 段 数 的 各 种 进 制 形 式 寄 存 器 标 号 地 址 表 达 式 $ 、 注 释

8、 段 汇 编 语 言 程 序 设 计三 、 汇 编 语 言 构 成指 令 性 语 句 和 指 示 性 语 句 两 类 。 指 令 性 语 句 : 的 条 指 令 。 指 示 性 语 句 : 伪 指 令 语 句 5条 ( 不 会 产 生 机 器 直 接 执 行 的 机 器 码 )4.1 引 言 ORG、 END、 EQU、 DATA、 DB 汇 编 语 言 程 序 设 计三 、 汇 编 语 言 构 成伪 指 令 :1 ORG ( 起 始 汇 编 ) 伪 指 令指 示 汇 编 程 序 把 代 码 从 哪 个 单 元 开 始 存 放2 END ( 结 束 汇 编 ) 伪 指 令指 示 汇 编 源 程

9、 序 的 结 束 , 停 止 汇 编4.1 引 言 汇 编 语 言 程 序 设 计 ORG 0500HAA EQU R1A10 EQU 10HDELAY EQU 07E6H MOV R0, A10 ; R0( 10H) MOV A, AA ; AR1 : : LCALL DELAY ; 调 用 07E6H子 程 序 END3 EQU ( 赋 值 ) 伪 指 令4.1 引 言三 、 汇 编 语 言 构 成伪 指 令 : 汇 编 语 言 程 序 设 计ORG 0200HAA DATA 35H ; 8位 或 16位 DELAY XDATA 0A7E6H ; 16位 专 用MOV A, AA ; A(

10、35H):LCALL DELAY ; 调 用 A7E6H子 程 序 : : END 4 DATA ( 数 据 地 址 赋 值 ) 伪 指 令4.1 引 言三 、 汇 编 语 言 构 成伪 指 令 : 汇 编 语 言 程 序 设 计ORG 0200HMOV A, AA ; A(35H):LCALL DELAY ; 调 用 A7E6H子 程 序 : :AA DATA 35H ; 8位 或 16位 DELAY XDATA 0A7E6H ; 16位 专 用 END 4 DATA ( 数 据 地 址 赋 值 ) 伪 指 令4.1 引 言三 、 汇 编 语 言 构 成伪 指 令 : 汇 编 语 言 程 序

11、 设 计 DATA与 EQU区 别 : DATA不 能 用 寄 存 器 等 符 号 有 些 程 序 16位 数 用 XDATA赋 值 有 些 程 序 EQU语 句 只 能 在 开 头 , 而 DATA无 限 制4.1 引 言三 、 汇 编 语 言 构 成伪 指 令 :4 DATA ( 数 据 地 址 赋 值 ) 伪 指 令 汇 编 语 言 程 序 设 计 标 号 : DB 项 或 项 表 ORG 0600H START: MOV A, 64H : TAB: DB 45H, 73, 01011010B,8, B : END5 DB ( 定 义 字 节 ) 伪 指 令4.1 引 言三 、 汇 编

12、语 言 构 成伪 指 令 : 汇 编 语 言 程 序 设 计 如 : IN1 BIT P1.06 BIT ( 位 地 址 定 义 ) 伪 指 令4.1 引 言三 、 汇 编 语 言 构 成伪 指 令 : 与 DB类 似 , 只 是 定 义 的 是 16位 ( 2个 字 节 )如 : ORG 2000HTAB:DW 100H,1A2H7 DW ( 定 义 字 ) 伪 指 令 汇 编 语 言 程 序 设 计4.2 汇 编 语 言 源 程 序 的 设 计 和 汇 编一 、 汇 编 语 言 程 序 设 计拟 制 任 务 书建 立 数 学 模 型 确 立 算 法 绘 制 程 序 流 程 图编 写 汇 编

13、 源 程 序上 机 调 试程 序 设 计 的 步 骤( 如 何 使 用 单 片 机 编 程 解 决 实 际 工 程 问 题 )举 例 : 用 单 片 机 替 代 人 实 现 柴 油 机 缸 套 水 温 度 的 自 动 控 制 汇 编 语 言 程 序 设 计4.2 汇 编 语 言 源 程 序 的 设 计 和 汇 编二 、 汇 编 语 言 源 程 序 的 汇 编1、 手 工 汇 编指 用 手 工 把 汇 编 语 言 源 程 序 翻 译 成 机器 码 的 过 程 。 遇 到 转 移 指 令 和 标 号 在 内 的程 序 时 , 需 要 计 算 偏 移 量 。 较 麻 烦 , 易 出错 。 2、 机

14、器 汇 编用 计 算 机 代 替 手 工 汇 编 , 自 动 完 成 翻译 工 作 。 2525 10ACC 汇 编 语 言 程 序 设 计4.2 汇 编 语 言 源 程 序 的 设 计 和 汇 编扩 展 : MCS-51单 片 机 的 应 用 程 序 的 完 成 , 应 经 过 三 个 步 骤 :( 1) 在 PC上 , 运 行 编 辑 程 序 进 行 源 程 序 的 输 入 和 编 辑 (.asm) ;( 2) 对 源 程 序 进 行 机 器 汇 编 得 到 机 器 代 码 (.hex);( 3) 通 过 PC的 串 行 口 ( 或 USB口 ) 把 机 器 代 码 传 送 到 用 户 样

15、 机 ( 或在 线 仿 真 器 ) 上 进 行 程 序 的 调 试 和 运 行 。第 一 步 , 只 需 在 PC上 使 用 通 用 的 编 辑 软 件 即 可 完 成 。第 二 步 , 机 器 汇 编 所 用 的 汇 编 程 序 可 在 购 买 单 片 机 的 仿 真 开 发 工 具 时 , 由 厂 商 提 供 。第 三 步 , 要 借 助 于 单 片 机 仿 真 开 发 工 具 进 行 。 有 时 , 在 分 析 某 些 产 品 的 程 序 的 机 器 代 码 时 , 需 将 机 器 代 码 翻 译成 汇 编 语 言 源 程 序 , 称 为 “ 反 汇 编 ” 。 汇 编 语 言 程 序

16、设 计1、 自 顶 向 下 的 顺 序 结 构2、 分 支 结 构 ( 含 有 转 移 指 令 )3、 循 环 结 构4、 查 表 结 构5、 子 程 序 结 构程 序 结 构 的 种 类 汇 编 语 言 程 序 设 计4.3 简 单 和 分 支 程 序 设 计 开 始语 句 1语 句 2语 句 n 结 束简 单 程 序 分 支 程 序 一 、 简 单 程 序 设 计按 照 先 后 顺 序 依 次 执 行 二 、 分 支 程 序 设 计程 序 中 含 有 转 移 指 令 汇 编 语 言 程 序 设 计带 符 号 数 : 正 数 最 高 位 为 0, 负 数 最 高 位 为 1补 码 : 正 数

17、 的 补 码 是 原 码 , 负 数 的 补 码 /补 码 绝 对 值是 除 符 号 位 外 反 码 加 1。如 : +1 -1原 码 0000 0001B 1000 0001B 反 码 : 1111 1110B 补 码 0000 0001B 1111 1111B 01H 0FFH复 习 : 关 于 符 号 数 、 补 码 的 定 义 汇 编 语 言 程 序 设 计例 3.10 已 知 一 个 16位 二 进 制 负 数 的 低 8位 在 内 部 RAM的NUM单 元 , 高 8位 在 NUM+1单 元 , 试 编 出 能 求 该 16位 二进 制 数 的 补 码 绝 对 值 的 程 序 。解

18、 : 低 8位取 反 加 一 ,进 位 位 留 在Cy, 高 八位 取 反 , 加上 进 位 位 ,去 掉 符 号 位 。4.3 简 单 和 分 支 程 序 设 计ORG 0300HNUM DATA 20HMOV R0,#NUMMOV A,R0CPL AADD A,#01H MOV R0,A INC R0MOV A,R0CPL AADDCA,#00HANL A,#7FHMOV R0,ASJMP $END 源 码 : 汇 编 语 言 程 序 设 计例 3.11已 知 VAR单 元 ( 30H) 内 有 一 自 变 量 X, 请按 如 下 条 件 编 出 求 函 数 值 Y 并 将 它 存 入 F

19、UNC( 31H) 单 元 的 程 序 。4.3 简 单 和 分 支 程 序 设 计1 0 0 01 0XY XX 流 程 图 : MOVJZJNB/JB 汇 编 语 言 程 序 设 计例 3.11已 知 VAR单 元 ( 30H) 内 有 一 自 变 量 X, 请按 如 下 条 件 编 出 求 函 数 值 Y 并 将 它 存 入 FUNC( 31H) 单 元 的 程 序 。4.3 简 单 和 分 支 程 序 设 计 ORG 0100HVAR DATA 30HFUNC DATA 31H MOV A, VAR ; AX JZ DONE ; 若 X 0, 则 转 DONE JNB ACC.7 ,

20、POSI ; 若 X 0, 则 转 POSI MOV A, 0FFH ; 若 X 0, 则 A 1 SJMP DONE ; 转 DONEPOSI: MOV A, 01H : A1 DONE: MOV FUNC, A ; 存 Y值 SJMP END 源 码 :先 分 支 后 赋 值 汇 编 语 言 程 序 设 计循 环 程 序 由 以 下 四 部 分 组 成 :1、 循 环 初 始 化位 于 循 环 程 序 开 头 、 做 准 备 工 作 。 如 : 设 置循 环 计 数 器 (存 储 循 环 次 数 )、 工 作 寄 存 器 ( 常 作 为指 针 )2、 循 环 处 理位 于 循 环 体 内

21、, 重 复 执 行 、 要 求 精 炼 和 高 效3、 循 环 控 制也 在 循 环 体 内 , 由 循 环 计 数 器 修 改 和 条 件 转移 语 句 组 成 , 控 制 循 环 次 数 。4、 循 环 结 束 存 放 循 环 结 果 、 恢 复 各 工 作 单 元 初 值一 、 循 环 程 序 设 计 4.4 循 环 和 查 表 程 序 设 计 汇 编 语 言 程 序 设 计循 环 程 序 由 以 下 四 部 分 组 成 :1、 循 环 初 始 化位 于 循 环 程 序 开 头 、 做 准 备 工 作 。 如 : 设 置循 环 计 数 器 (存 储 循 环 次 数 )、 工 作 寄 存

22、器 ( 常 作 为指 针 )2、 循 环 处 理位 于 循 环 体 内 , 重 复 执 行 、 要 求 精 炼 和 高 效3、 循 环 控 制也 在 循 环 体 内 , 由 循 环 计 数 器 修 改 和 条 件 转移 语 句 组 成 , 控 制 循 环 次 数 。4、 循 环 结 束 存 放 循 环 结 果 、 恢 复 各 工 作 单 元 初 值一 、 循 环 程 序 设 计 4.4 循 环 和 查 表 程 序 设 计 汇 编 语 言 程 序 设 计一 、 循 环 程 序 设 计 4.4 循 环 和 查 表 程 序 设 计 流 程 图 : 汇 编 语 言 程 序 设 计4.4 循 环 和 查

23、 表 程 序 设 计 一 、 循 环 程 序 设 计 例 3.11 已 知 内 部 RAM的 BLOCK单 元 开 始 有 一 无 符 号 数 据块 , 块 长 在 LEN单 元 , 试 编 出 求 数 据 块 中 各 数 累 加 和 并 存入 SUM单 元 的 程 序 。 流 程 图 : DJNZADD A,R1INC为 何 +1? 会 否 加 多 了 ? 汇 编 语 言 程 序 设 计4.4 循 环 和 查 表 程 序 设 计 一 、 循 环 程 序 设 计 ORG 0200HLEN DATA 20HSUM DATA 21H BLOCK DATA 22HCLR AMOV R1,#BLOCK

24、MOV R2,LENINC R2SJMP CHECKLOOP: ADD A,R1 INC R1CHECK: DJNZ R2, LOOP MOV SUM,A SJMP $ END源 码流 程 图 : 汇 编 语 言 程 序 设 计4.4 循 环 和 查 表 程 序 设 计 一 、 循 环 程 序 设 计 ORG 0200HLEN DATA 20HSUM DATA 21H BLOCK DATA 22H CLR A MOV R2, LEN MOV R1, #BLOCKNEXT: ADD A, R1 INC R1 DJNZ R2, NEXT MOV SUM,A SJMP END源 码流 程 图 : 汇

25、 编 语 言 程 序 设 计4.4 循 环 和 查 表 程 序 设 计 二 、 查 表 程 序 设 计例 3.13 已 知 R0低 四 位 有 一 个 十 六 进 制 数 (0F中 一 个 ), 试编 出 能 把 它 转 换 成 相 应 ASC 码 并 送 入 R0的 程 序 。MCS-51指 令 系 统 有 两 条 专 门 的 查 表 指 令 : MOVC A, A+DPTR MOVC A, A+PC 解 : 方 法 1, 根 据 ASC 码 字 符 表 的 规 律 , 0-9的ASC 码 为 30-39H, A-F的 ASC 码 为 41H-46H;方 法 2, 在 ROM中 建 表 ,

26、使 用 时 直 接 查 表 汇 编 语 言 程 序 设 计4.4 循 环 和 查 表 程 序 设 计 二 、 查 表 程 序 设 计例 3.13 已 知 R0低 四 位 有 一 个 十 六 进 制 数 (0F中 一 个 ), 试编 出 能 把 它 转 换 成 相 应 ASC 码 并 送 入 R0的 程 序 。 ORG 0400H0400 E8 MOV A, R00401 540F ANL A, #0FH0403 2403 ADD A, #03H0405 83 MOVC A, A+PC 0406 F8 MOV R0, A0407 80FE SJMP $0409 ASCTAB: DB 0,1,2,

27、3,4 DB 5,6,7,8,9 DB A,B,C,D,E,FEND 源 码 汇 编 语 言 程 序 设 计4.5 子 程 序 设 计 子 程 序 是 指 完 成 确 定 任 务 并 能 为 其 它 程 序 反 复 调用 的 程 序 段 ;1、 调 用 时 , 使 用 LCALL或 ACALL指 令 ;2、 返 回 时 , 子 程 序 末 尾 使 用 RET返 回 指 令3、 子 程 序 的 第 一 条 指 令 地 址 称 为 子 程 序 的 入 口 地 址 。4、 计 算 机 能 自 动 保 护 和 恢 复 主 程 序 的 断 点 地 址 。 但各 工 作 寄 存 器 、 特 殊 功 能 寄

28、 存 器 和 内 存 单 元 中 内容 , 如 果 需 要 保 护 和 恢 复 的 话 , 就 必 须 在 子 程 序开 头 和 末 尾 安 排 一 些 能 够 保 护 和 恢 复 它 们 的 指 令 。 汇 编 语 言 程 序 设 计4.5 子 程 序 设 计 例 3. 15 设 内 部 数 据 存 储 器 MDA和 MDB内 有 两 数 a和 b,请 编 出 求 c= a b并 把 c送 入 MDC的 程 序 。 设 a和 b皆 为小 于 10的 整 数 。ORG 1000HMDA DATA 20HMDB DATA 21HMDC DATA 22HMOV A, MDAACALL SQRMOV

29、 R1, AMOV A, MDB ACALL SQR源 码 ADD A, R1MOV MDC, ASJMP $SQR: ADD A, #01HMOVC A, A+PCRETSQRTAB: DB 0, 1, 4, 9, 16DB 25, 36, 49, 64, 81END 汇 编 语 言 程 序 设 计4.5 子 程 序 设 计 例 3. 15 设 内 部 数 据 存 储 器 MDA和 MDB内 有 两 数 a和 b,请 编 出 求 c= a b并 把 c送 入 MDC的 程 序 。 设 a和 b皆 为小 于 10的 整 数 。平 方 和 子 程 序 的 两 种 实 现 方 式SQR: ADD A, #01HMOVC A, A+PCRETSQRTAB: DB 0, 1, 4, 9, 16DB 25, 36, 49, 64, 81END SQR: MUL AB RET

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