怎样用汇编语言读写文件

怎样用汇编语言读写文件,第1张

所谓 *** 作系统,一个主要功能就是管理硬盘这样的外部存储器,当这些存储器的尺寸非常大,而且存储器种类、读写速率、数据组织各有不同时,需要很复杂而且灵活、适应面广的程序设计

如果用汇编语言读写文件,一般要简化这些要求郑纤,比如假设只针对Windows的FAT格式的存储格式,汇编程序需要能解析FAT格式硬盘的存储格式,从FAT格式中能访问到文件实际存储位置,这就使汇编很麻烦了,汇编不是来做这种复杂而人盯丛毕性化的工作的

普通汇编程序要读写硬盘,一般采用无格式的方式,需要自己设计简单的文件管理,这样可以快速简单地保存数据到硬盘中,但保存的数据无法凯芹简单被windows等磁盘 *** 作系统读取,还需要转换才行。

AL是打开方式:8位2进制,

当第0到2位为:

000的时候是只读,001是写方式,010是读/写方式

第3位保留,值为0

第4到6位为共享模式:

000:兼容模式

001:不共享

010:拒绝写

011:拒启袭绝读

100:不拒绝任何 *** 作

第7位是继承标志启旁拍,1就继承句柄

例如:我想打开一个文件,读/写方式,拒绝不允许别的程序写入,则AL为:

0 010 0 010 b

=22h

则 mov al,22h 即可

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

能不能打开文件悄羡和文件扩展名没有必然联系

之所以提示访问被拒绝,是由于文件正在被其他程序打开(独占式的),试着退出打开这个c文件的程序,然后再试试汇编看能不能打开了

-=-=-=-=-=-=-=-=-=-=-=-

lea dx,FILENAME

mov al,10h

mov ah,3dh

int 21h

执行完这些语句后如果打开失败,AX返回的就是错误号,你可以通过这些错误号来查找下原因

无论是16位汇编还是32位汇编,都慎乱不需要和驱动打交道

16位汇编下是用中断来访问硬盘的。 通过中断21H来实现文件和目录的管理。

32位汇编则是通过调用坦孝升系统提供的API函数来实现,由系统去处理让老实际的读写 *** 作。

反正我们写程序的并不需要知道硬盘的驱动。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12209814.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存