无法创建文件

时间:2013-06-22 16:03:02

标签: assembly dos nasm

我尝试创建一个文件,但始终显示文本“error5”。表示中断的数据非常简单。 0x3c 用于 ah cx 的位标志,指向 ds:dx 的指针用于ASCIZ文件名(字符串ascii由0×00)。但是,将0x05返回到 ax 并设置进位标志。我不知道 0x05 是什么错误,因为我没有this documentation

文件名必须逃避\?我尝试了所有可能的组合,包括使用指针[file]而不是file

section .text

    global main  


main:                 
    org 100h
    mov ax, 0x01 ;white noise
    add ax, 0x01 ;white noise
    cmp ax, 0xffff ;white noise
    jl incr ;white noise
incr:
    add ax, 0x01 ;white noise
    cmp ax, 0xffff ;white noise
    jl incr ;white noise
finish:

    mov ah, 0x3C
    mov cx, 0000000010100000b ; archive bit: 1; share bit: 1
    mov dx, file
    int 0x21

    jc is_nook

    cmp ax, 0x00
    je is_nook

is_ok:

    mov ah, 0x3e
    int 0x21

    mov dx, esok
    mov ah, 0x09
    int 0x21

    mov ah, 0x4C
    mov al, 0x00
    int 0x21
is_nook:
    mov bx, ax

    mov dx, esnook
    mov ah, 0x09
    int 0x21

    clc 

    cmp bx,0x03
    je error3
    cmp bx,0x04
    je error4
    cmp bx,0x05 ;  bx is 5 then jump to error5
    je error5

    mov ah, 0x4C
    mov al, 0x00
    int 0x21

error3:
    mov dx, e3
    mov ah, 0x09
    int 0x21

    mov ah, 0x4C
    mov al, 0x00
    int 0x21
error4:
    mov dx, e4
    mov ah, 0x09
    int 0x21

    mov ah, 0x4C
    mov al, 0x00
    int 0x21
error5:
    mov dx, e5 ; showing "ERROR5"
    mov ah, 0x09
    int 0x21

    mov ah, 0x4C
    mov al, 0x00
    int 0x21

section .data

file db 'C:\\ejemplofile.txt',0x00
esok db 'Perfecto','$'
esnook db 'Error',0Dh,0Ah,'$'
e3 db 'Error3','$'
e4 db 'Error4','$'
e5 db 'Error5','$'

编辑:

http://www.ctyme.com/intr/rb-3012.htm#Table1680有一个包含错误代码的列表,似乎是访问被拒绝

0 个答案:

没有答案