基于元神操作系统编程写USB扇区

1. 背景

本文介绍了“调用元神操作系统API向U盘扇区写数据”的程序实现及测试结果。

2. 方法

(1)调用元神操作系统API读U盘扇区

本部分内容已在前面的文章中进行介绍,详细内容请参考“编写程序调用元神操作系统的API”。

(2)调用元神操作系统API写U盘扇区

本例通过调用系统API来向U盘扇区写数据,代码如下所示:

sector_buff: times 512 db 1
demo_write_usb:
	pusha
	mov edi, API_PARAM
	mov dword [fs:edi], API_WRITE_USB_SECTOR
	mov dword [fs:edi+4], 2		;2 parameters
	mov dword [fs:edi+8], 3		;parameter_1: sector no.
	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]
	add ebx, sector_buff
	mov dword [fs:edi+12], ebx	;parameter_2: start address of buffer
	
	call pword [fs:OS_API]

	popa
	ret

代码中先定义了变量sector_buff,用于存储要写入U盘扇区的数据,本例为512个1。然后在代码中如前述文章所描述的那般进行参数设置,将API类型设置为API_WRITE_USB_SECTOR,该API需要2个参数,第一个参数是要写数据的扇区的LBA号(本例要写3号扇区),第二个参数为保存要写入数据的缓冲区起始地址(本例为sector_buff)。设置好参数后通过“call pword [fs:OS_API]”进行API调用、完成写扇区操作。

本例和前述系统API调用的主要差别在于新的API类型和缓冲区地址转换,新增

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

De-Chang Wang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值