• Jueves 14 de Noviembre de 2024, 23:04

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Temas - rbaez

Páginas: [1]
1
ASM (Ensamblador) / DTA - como obtener file date, time and size?
« en: Viernes 8 de Octubre de 2010, 00:00 »
Saludos,

he encontrado un codigo en NASM que funciona similar al comando "DIR", muestra una lista con el nombre de los archivos con la extension especificada en el directorio, pero quisiera saber como podria obtener el date, time, y size del archivo para mostrarlo tambien

el codigo es el siguiente:

org 100h

start:

mov ah, 0x1A ; Set DTA table adress
mov dx, DTA
int 21h

;call clean_name

mov ah, 0x4E
xor cx, cx ; no attributes
mov dx, squery
int 21h
jc theend ; no files matching query found

mov ah, 9
mov dx, fname
int 21h

find_next:

mov ah, 0x4F
mov dx, squery
int 21h ; find next matching file
jc theend ; no more files found

mov ah, 9
mov dx, fname
int 21h

jmp find_next


theend:

mov ah, 0x4C
int 21h


clean_name:
mov cx, 13
mov di, fname
xor ax, ax
repe stosb ; fill name with zeros incase memory has some ugly stuff or smth left from last search
ret


squery db "*.*", 0x0 ; search query, must end with zero

DTA resb 0x15 ; ignore useless DOS data
fattr db 0x0 ; file attribute
ftime dw 0x0 ; file creation/modification time
fdate dw 0x0 ; file creation/modification date
fsize dw 0x0 ; file size
fsmth dw 0x0
fname resb 14 ; file name terminated with zero
db 0xD, 0xA ; New line
db "$" ; 0xD - tells DOS to go to new line.

Páginas: [1]