小编Vyt*_*kas的帖子

在具有 INT 21,43 的程序集上将文件属性更改为只读不起作用

我对汇编很陌生,最近我一直在努力使 INT 21,43 (将文件属性更改为只读)工作。我正在使用 Windows 10、DOSBox x86 和 Turbo 汇编器/链接器/调试器(如果这有什么区别的话)。据我所知,使用调试器,它应该可以工作(CF 未设置,并且根据文档,我没有得到应有的错误代码)。另外,如果我使用相同的 INT 21,43 获取(将 al 设置为 0)文件的文件属性,该文件已手动设置为只读,则 CX 设置为 20,据我所知,这不会使有道理,但 CF 没有设置好,所以它说它有效。我希望你能帮我解决这个问题,提前致谢。

.model small
.stack 100h

.data
    filename db "temp.txt",0 ; my file name 

.code

start:

    mov dx, @data
    mov ds, dx
    
    mov ah, 43h
    mov al, 01h ; Set file attribute
    mov cx, 01h ; 1 = read-only
    lea dx, filename ; Set pointer to filename
    int 21h
    
    mov ah, 4ch ; Return to DOS       
    mov al, 0               
    int …
Run Code Online (Sandbox Code Playgroud)

x86 assembly file-attributes dosbox

2
推荐指数
1
解决办法
310
查看次数

标签 统计

assembly ×1

dosbox ×1

file-attributes ×1

x86 ×1