MVI C,02h
CALL 5
在视频显示器上当前的光标位置将显示累加器A中的ASCⅡ码字符,然后光标移到下一个位置。
如果程序要新建一个文件,它首先将文件名所在区域的地址保存在寄存器对DE中,接着执行如下代码:
MVI C,16h
CALL 5
执行此命令,CP/M会在磁盘上新建一个空文件。程序可以利用CP/M提供的其他功能来向空文件中写入内容,最后关闭(close)文件,关闭文件意味着文件使用完毕,不需要在对该文件执行任何操作了。当然,该文件可以再次被此程序和其他程序打开(open)并读取内容。
CALL 5 指令到底如何工作呢? CP/M 在内存中地址为 0005h 处设置了一条 JMP(Jump)指令,它跳转到 CP/M 基本磁盘操作系统(Basic Disk Operating System,BDOS)中的某个位置。这个区域包含许多小程序,CP/M的每一项功能都可由它们完成。BDOS,顾名思义,它的主要功能是维护磁盘上的文件系统。文件系统经常要与终端设备打交道,所以 BDOS 经常要调用 CP/M 基本输入/输出系统(Basic Input And Output System,BIOS)中的一些子程序。这里顺便提一下,BIOS可以对硬件进行访问,比如键盘、视频显示器和磁盘驱动器等。实际上,BIOS是CP/M中唯一需要了解计算机中硬件的程序,其他一些对硬件的操作都可通过调用 BIOS中的子程序来实现。控制台命令处理程序通过调用BDOS的子程序来实现自己所有的功能,而在CP/M中运行的程序也是这样。
对于计算机硬件来说,API是一个与设备无关(device-independent)的接口。换言之,对于特定的机器上键盘的工作机制、视频显示器的工作机制以及磁盘扇区的读/写机制,在CP/M下编写的程序不需要知道也没有必要知道。程序使用CP/M提供的功能便可完成对键盘、视频显示器和磁盘驱动器操作,简言之,API屏蔽了硬件之间的差异。有了API,尽管不同计算机硬件差别很大,其访问外设的方式也不尽相同,但CP/M程序都可以在上面运行,从而实现了CP/M程序的跨平台(这里要求所有CP/M程序必须运行在Intel 8080微处理器上,或者运行在能执行 Intel 8080 指令的处理器上,例如 Intel 8085 或 Zilog Z-80
编码——隐匿在计算机软硬件背后的语言
360