Registriert seit: 11. Feb 2007
97 Beiträge
Delphi 7 Enterprise
|
What's incorrect here
23. Jun 2009, 20:38
Hi , Could someone correct me this Code :
I get the Compiler Error : Operand Size Mismatch in : LDS SI,Path
Delphi-Quellcode:
var
LFNError: word;
function ASCIZToString (ASCIZ: array of Char): String;
begin
ASCIZToString := StrPas (@ASCIZ);
end;
/////
function FindFirst (Path: String; Attr: word; var F: FindData): word; assembler;
asm
mov LFNError, 0
push ds
LDS SI,Path // ----> Operand Size Mismatch
mov dx, si
inc dx
mov cl, [si]
@@StringToPChar:
inc si
dec cl
jnz @@StringToPChar
inc si
mov byte ptr [si], 0
les di, F // ----> Operand Size Mismatch
mov cx, Attr
mov ax, 714Eh
mov si, 1
int 21h
pop ds
jnc @@NoCarry
mov LFNError, ax
jmp @@Exit
@@NoCarry:
cmp ax, 7100h
jne @@Exit
mov LFNError, ax
@@Exit:
end;
procedure FindNext ( var F: FindData; FileFindHandle: word); assembler;
asm
mov LFNError, 0
mov ax, 714Fh
mov si, 1
mov bx, FileFindHandle
les di, F // ----> Operand Size Mismatch
int 21h
jnc @@NoCarry
mov LFNError, ax
jmp @@Exit
@@NoCarry:
cmp ax, 7100h
jne @@Exit
mov LFNError, ax
@@Exit:
end;
procedure FindClose (FileFindHandle: word); assembler;
asm
mov LFNError, 0
mov ax, 71A1h
mov bx, FileFindHandle
int 21h
jnc @@NoCarry
mov LFNError, ax
jmp @@Exit
@@NoCarry:
cmp ax, 7100h
jne @@Exit
mov LFNError, ax
@@Exit:
end;
and just wondering is this fast than using the Delphi TSearchRec ....
many thanks
|
|
Zitat
|