CODE 返回目录
计算机硬件与软件背后的隐藏语言

15 汇编语言

此页面关于编写计算机程序的活动,通常被称为软件工程、编程或编码。

描述了两种编码类型:基于Intel 8080处理器的汇编语言编程,以及使用JavaScript的高级编程(另一页面)。

8080汇编语言编程

这是一个用JavaScript编写的Intel 8080微处理器模拟器。它有四个主要组件:

这些组件将在本页下方进一步描述。

Editor - Untitled

Do you want to save changes to

Open / Save As

"" already exists.
Do you want to replace it?

 

Memory

CPU

PC = 0000h
SP = 0000h
A 00h 00h Flags
B 00h 00h C
D 00h 00h E
H 00h 00h L
Flags

Console

以下部分描述了这个模拟器的各个组件。

Editor

Editor是多行编辑器应用程序的精简版本,如Windows记事本或macOS TextEdit。您可以在此创建与Intel 8080汇编语言兼容的程序。该语言不区分大小写:您可以用大写、小写或混合形式输入程序。

File菜单提供选项来清除Editor内容以开始新文件、打开现有文件和保存文件。这些菜单选项会调用熟悉的对话框。

这个模拟文件系统使用JavaScript的localStorage功能。您存储的文件对此特定网页和您正在使用的特定浏览器是私有的。换句话说,如果您在一个浏览器上运行此页面时保存文件,在使用另一个浏览器时将无法看到它们。您可以在浏览器之间传输这些文件,或者通过将它们从Editor复制到剪贴板来将这些文件保存在其他地方。

除了打开和保存整个文件外,您还可以通过选择文本块并从菜单中选择Save selection来保存文件片段。您可以通过选择Insert file将片段插入现有文件中。这些功能旨在保存和检索方便的子程序。

警告: 尽管此编辑器使用典型的消息框警告来帮助您避免覆盖现有文件,或者在文件保存之前擦除文件,但如果刷新或关闭网页,它不会警告您可能会丢失编辑内容。

有几个文件已预先存储。这些包括书中所有的汇编语言程序,以及其他几个程序。这些文件在File Open对话框中有描述。它们是只读文件。您可以在Editor中修改它们,但除非您选择Save As选项指定不同的文件名,否则无法保存它们。

您的程序允许的语法通常是1975年出版的Intel 8080 Assembly Language Programming Manual中描述的语法,可在Internet Archive上找到,但有一些规定和例外:

请注意,以字母开头的十六进制数字必须以零开头。否则,汇编器可能会将它们误认为标签。

可用的程序中有一个名为Test Suite的程序,它是1980年的版权,旨在测试模拟的8080处理器。该程序在此模拟器上汇编并运行,对测试它特别有用。

如果程序包含ORG语句,导致汇编程序从地址100h开始执行,则通过CALL 5接口支持五个CP/M调用:

文件中包含的Test CP/M Console Calls程序演示了所有这些函数调用。

CP/M程序可以通过几种方式终止:通过寄存器C设置为零的CALL 5;通过JMP或CALL到地址0000h;或通过RST 0。当CP/M程序开始执行时,地址0000h已被推入堆栈,因此它也可以通过RET指令终止。

Memory

打开或键入程序后,您可以按Assemble按钮。代码中的任何错误都以红色显示在该按钮下方。

如果文件成功汇编,地址和机器码将显示在Memory框中。为方便起见,右侧显示相应的指令。

此显示在执行代码时很有帮助:Memory显示中的代码行在执行时会高亮显示。

CPU

此表显示CPU的状态,包括程序计数器(PC)、堆栈指针(SP)、寄存器A、B、C、D、E、H、L和标志。

提供四个按钮:

* 原始的Intel 8080运行在2 Mhz。各种指令(包括从内存获取指令)需要最少4个时钟周期,最多11个。指令执行速度约为每秒200,000到500,000条。

Console

Console显示程序的输出,并允许您为程序键入输入。当进行CP/M调用以接收键盘输入时,它应该获得输入焦点,但如果没有,只需单击它然后键入。可以用Clear按钮清除它。


自权的SPACE公众号二维码

关注 自权的SPACE 掌握最新更新

公众号后台回复 编码 加入读者群📚


CODE 返回目录
计算机硬件与软件背后的隐藏语言