使用TASM Assembler创建只读文件?

时间:2014-01-05 22:05:36

标签: assembly x86 dos tasm

我必须编写一个TASM程序,其中创建了一个只读文件。我创建了该文件,但它不是只读的。怎么了?这是代码:

model small
.data
    handle dw 0
    filename db "file2.txt",0
.stack 256
.code
main:

    mov ax,@data
    mov ds,ax

    mov ah,3ch 
    mov cx,1         
    lea dx,filename 
    int 21h 
    jc exit

    mov handle,ax
exit:
    mov ax,4c00h
    int 21h
end main

修改:我将mov cx,1更改为mov cx,01h并且有效。

P.S:我也希望隐藏文件 我又一次改为mov cx,03h并完成了。创建的文件是只读和隐藏的。

1 个答案:

答案 0 :(得分:2)

Bit 7 = 1: Shareable
Bit 6 = 1: Archive
Bit 5 = 1: Directory
Bit 4 = 1: Volume (ignored)
Bit 3 = 1: Label
Bit 2 = 1: System
Bit 1 = 1: Hidden
Bit 0 = 1: Read-only

编辑: 我的原始答案是不正确的,因为我说的值是按位的,所以为了清晰起见,十进制将是:

mov cx, 0       ;  No attributes. 
mov cx, 1       ;  Read-only. 
mov cx, 2       ;  Hidden. 
mov cx, 4       ;  System 
mov cx, 16      ;  Archive

对于多个属性,将值一起添加。

这意味着CX的值在原始帖子中是正确的,因为1是1,无论是十进制还是十六进制(或二进制),所以无论你做了什么改变,都不应该解决它。

很高兴你得到了它。