用汇编如何打开.C文件

来源:百度知道 编辑:UC知道 时间:2024/09/27 06:20:25
学的是16位汇编,想对文件进行操作,但是不能打开.C的文件
请哪位大侠指教
使用汇编语言来打开文件,但是.C的文件却不能用AH=3D,INT 21H打开,被拒绝,不是说用什么软件打开(连记事本都可以打开~~)
我是想对.C的文件进行读写操作,但是AL=10的话就不能写了,怎么办?

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返回的就是错误号,你可以通过这些错误号来查找下原因

这属于文件关联问题,无论哪种汇编编译器打带的也只能是后缀为.asm的文件.如果你相对对.c文件操作可以将.c文件编译成可执行文件,然后使用winHex这类汇编工具查看汇编码来达到你想要得那种结果.至于.c文件为什么可以用记事本来打开,因为记事本恰恰是文本编辑工具,当然可以打开.

用VC就可以打开的 很多都是vc编的嘛