65.9K
CodeProject 正在变化。 阅读更多。
Home

用 C++ 编写的全面 Z80/8085 汇编器

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.86/5 (8投票s)

2014年5月14日

CPOL

1分钟阅读

viewsIcon

19320

downloadIcon

594

用 C++ 编写的全面 Z80/8085 汇编器

引言

将汇编语言源文件汇编成机器可读输出的任务是现代计算的基础,尽管现在已经构建了许多现代编译器和解释型语言,它们都建立在基本的机器语言之上。Z80/8085 是一种基本但完整的指令集,它允许概念性学习和思考汇编器相关主题,而无需深入研究特殊的处理器特性。

即将推出:带有编辑器和对话框的 Windows 程序(根据评论请求),CP/M 的基本模拟器。

背景

熟悉 C++、汇编语言、Z80/8085、巴科斯-诺尔范式 (BNF)、解析、标记化、语义和语法检查是首选。

Using the Code

使用该类就像传入一个可读的汇编器文件作为输入,以及一个可写的列表文件和一个可写的十六进制格式文件作为输出(两者都采用“w”文本格式)。

Assemble(inputFile, listFile, hexFile, fileName);  

关注点

断言用于内部错误,在这种情况下,执行可以安全地继续,而对于任何关键的内部错误(通常表示代码中的错误),则会抛出盲目异常,因为如果设计正确,这些错误不应该发生。用于语法和语义错误的抛出异常。

循环检查使用通过任何符号表表达式的深度优先搜索算法实现。

使用 Intel hex 格式。请参阅:http://www.keil.com/support/docs/1584.htm。可以在 http://www.z80.info/z80code.htmhttp://www.z80.info/zip/z80-documented.pdf 找到操作码和时钟周期信息。

表达式被广泛使用,并且由于递归使用,汇编器输入的可能性比通常情况下看到的要大。

历史

  • 初始版本
© . All rights reserved.