1. 背景
本文介绍了元神操作系统API的调用,并详细介绍了“调用元神系统API读取磁盘扇区”程序的编写以及测试结果。
2. 方法
(1)元神操作系统API的调用方法
元神操作系统0.4版beta4开始提供了对OS功能的调用,调用相关的定义如下:
OS_API equ 0x00030C16
API_PARAM equ 0x03000000
其中,OS_API定义的是API调用的入口,设置好要调用的API类型及其参数之后,直接call该入口即可实现系统API调用。而要调用的API类型及参数则由API_PARAM指定,其指定的格式如下:
PARAM_1: 要调用的API类型
PARAM_2:传给API的参数个数
PARAM_3:传给API的第一个参数
PARAM_4:传给API的第二个参数(如果有的话),依次类推
其中,每个PARAM都是4字节大小。例如,要读取优盘的第一个扇区,其API_PARAM设置如下:
PARAM_1 = API_READ_USB_SECTOR
PARAM_2 = 2
PARAM_3 = 0
PARAM_4 = 扇区数据存放地址
由此可知,要调用的API是“读取优盘扇区”,传递2个参数给该API,第一个参数为0(表示读取第一个扇区,即0号扇区),第二个参数是接收扇区数据的内存地址。
(2)编写程序读取优盘的0号扇区
本例使用汇编语言编写,代码如下所示:
use32
START:
pusha
call demo_read_usb
popa
iret
include 'api_def.inc'
cursor_x equ 0x02004B10
cursor_y equ 0x02004B12
OS_API equ 0x00030C16
API_PARAM equ 0x03000000
sector_