FORTH汇编语言程序设计方法探讨
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
我 们 可 以使 用 这 个 编 译 器 , 但 也 可 以 自己 按 照
自己的习惯构造 自己的语法 和编译 器。 实 现编 译器 ,首先要 制订 语 言规范 。由
于F O R T H 汇 编 语 言 并 没 有 权 威 的规 范 , 甚 至
有些要 开发的 目标芯片就还没有汇编语言标准
可 以借 鉴 , 因此 程 序 开 发 者 完 全 可 以编 写 自己
F OR T H汇编程序 的实现方式 。
实现 : : J MP E 8 C , ,:
2 F O R T H S  ̄ 编语 言和编译器的实现方法
基本 的 F OR T H 平 台 内不 含 产 生 机 器 码 的
同样 上 面 实 现 的 F O R T H含 义 是 将 J P M 的机器码 E 8一 个 宁 节 放 到 当 前 的 指 令 流 中 ,
不 仅 逗 号 移 到 了操 作 数 那 里 ,而 且 目的操 作 数 也 移 到 了右 面 。 虽 然 F OR T H 汇 编 语 言 规 范 存
为下面的算法 :
CO 0 0 CON S T ANT Or i g i n
在这种任意性,但如果存在标 准的汇编语 言,
除 了将 操 作 符 写 在 右 面 ,还 是 尽量 保 持标 准 的 风 格 , 这 样容 易和 别 人 交 流 。
实现 F OR T H 汇 编 编 译 器 , 主 要 利 用
F OR T H字 “ c, ”、 “ , ”和 “ He r e ”, 它们 分 别
同样 也 可 以产生 按 字 节 的存 取 字 c! 和
C @。
2 . 2机 器 码 写入
是向程序区依次放一个 字节 的二进制指令 、两 个字节的二进制指令和给出存放 下一个指令 的
的 编 译 器 和 创 造 自 己的 规 范 。F O R T H 汇 编 语
言的语法规范是模仿常用的汇编语言,只是将
表 达 式 写成 “ 逆 波 兰 ”形 式 , 即 将 操 作 符 写 在 操 作数 后面 。以 8 0 8 6汇 编 为 例 , 将 A X 减 去 B X 的 内容 ,结 果 在 AX 中 ,标 准 的 汇 编 语 言
由于一般 F OR T H 目标 系统的核心规模较
小,l 6位 的 系 统 不 超 过 6 4 K B, 3 2位 的 系 统
也 用 不 完 内 存 空 间 , 因 此 可 以 直 接 在 宿 主 机 F OR T H 系 统 管 理 的 内 存 中划 出 一 块 高 内 存 区
【 关键词 】F O R T H汇编语言 中断程序
S U B,也可 以采 用这 种写法 :B X A X S U B , ,
1 引 言
汇 编语 言是 人和计 算机 沟通 的最直接 的 方式, 它描述 了机器最终所要执 行的指令序列 ,
所 以汇 编 语 言 一 直 是 计算 机 学科 必 学 的一 门基 础课 程 。通 过这 门课 的学 习 既能 获 得 底 层 编 程
地址。
写核心单词 ,实现 内部数据结构和解释 / 编译
, / 定 义 常 数 Or i g i n ,它 的 值 是 目标 代 码 区
域 的 起 点
: ! Or i g i n+P ! ; : @ Or i g i n+P @ ;/ / 定 义 目标 区 的数 据 存 取 字
的体 验,又能深刻理解机器运行程序 的机理 。
F O R T H 是 一 种 与 众 不 同 的 计 算 机 程 序 设 计 语 言 , 采 用 自底 向 上 的 构造 方 式 ,用 汇 编 语 言编
汇 编 语 言 编 译 器 , 只 是将 一 个 用 F OR T H 语 言 然 后 再 把 已经 在 堆 栈 中 的 要 跳 转 的 地 址 作 为
写的汇编 语言编译器的源代码作为附件。一般 言基 元,F O R T H程序 采用汇编程序 中的 一些 常用词 ,可有 效地 提 高 运 行 速 度 , 是 非 常 适 合 嵌 入 式 系 统 开 发 的 方 法 。 本 文 自定 义 了 汇 编 语 言 语 法 , 研 究 了 实 现 自定 义 汇编语 言 编译 器 的方 法,列举 了 使用 自定 义 F O R T H j r - 编 语 言 的 基 本方 法,最后 以 一个 中断程 序 为 例 验 证 自定 义 ; r - 编 语 言 通 过 本 文 的研 究 、实验 证 明 了 F O R T H; r -
为:S UBA X, B X ,在 F O R T H 汇 编 语 言 规 范
域用于 目标代 码的存取 。假如 P!和 P @ 是原 内存的写入和读取字, 目标代码 区域 的起点是
C O 0 0 , 则 目标 代 码 的存 取 字 可 以简 单 的 定 义
中可 以模仿标 准的பைடு நூலகம்编 语 言规 定为 :A x, B X
编 语 言 很 适 合 应 用 于过 程 控 制 类 、 调 试 依 赖 于 时 间 的嵌 入 式 系统 应
用
1 6位 偏 移 放 到 机 器 码 E8之后 , 形 成 完 整 的 跳 转指令 。 通 常每个 F OR T H 软 件 平 台 都有 这 个 平 台 的 汇编 语 言规 范和 编 译 器 , 但 是 如 果 要 生 成 异 构的F O R T H 系 统 , 重 制 定 新 C P U 的 汇 编 语 言规 范和 编 译 器 就 是 必 须 要 完 成 的任 务 。 2 . 1 目标代 码 的存 取
程序设计 ● P r o g r a m D e s i g n
F OR T H汇编语言程序设计方法探讨
文/ 安红 萍 杨 为 民 代 红 兵 刘 宏 杰
语法 : L L L L J MP / / L L L L 定 义 了转 跳
的地 址
、 方 法 , 最 后 以 中 断 程 序 为 例 , 介 绍 了 自 定 义