1. 背景
本文介绍了在元神操作系统上读取U盘文件的方法,示例所用的U盘是FAT32文件系统的、未分区的U盘。
2. 方法
(1)编写程序
本例通过调用元神操作系统的API来读取指定文件的内容,并以二进制数据(十六进制格式)的形式打印到屏幕上,代码如下所示:
use32
START:
pusha
call demo_read_usb_file
popa
iret
include 'api_def.inc'
OS_API equ 0x00030C16
API_PARAM equ 0x03000000
SEG_BASE equ 0x00040000
cursor_x equ 0x02004B10
cursor_y equ 0x02004B12
sector_buff: times 512 db 0
file_name_usb db 'u1:\test.txt',0
demo_read_usb_file:
pusha
mov edi, API_PARAM
mov dword [fs:edi], API_READ_USB_FILE
mov dword [fs:edi+4], 2 ;2 parameters
xor eax, eax
mov ax, ds
add eax, SEG_BASE
mov bh,byte [fs:eax+7]
mov bl,byte [fs:eax+4]
shl ebx,16
mov bx,word [fs:eax+2]
mov eax, ebx
add ebx, file_name_usb
add eax, sector_buff
mov dword [fs:edi+8], ebx ;parameter_1: file name
mov dword [fs:edi+12], eax ;parameter_2: start address of buffe