我尝试创建一个文件,但始终显示文本“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有一个包含错误代码的列表,似乎是访问被拒绝