2012年7月6日 星期五

找出C底下 *.exe

[轉貼]  程式俱樂部

找出C底下 *.exe

code segment
     assume cs:code,ds:code
     org 80h ;80H 是 DTA 起始位址
dta:
     org 100h
;-----------------------------------------------------------
start: jmp short begin
ext_fn db 'C:\*.exe',0
cr_lf db 0dh,0ah,'$'
;-----------------------------------------------------------
;印出檔名
print proc near
mov ah,2Fh
int 21h ; es:bx指向dta
add bx,1eh
mov si,bx
    nxt: mov dl,es:[si]
     mov ah,2
     int 21h
     inc si
     cmp byte ptr es:[si],0
     jnz nxt

     mov dx,offset cr_lf 
     mov ah,9
     int 21h
     ret
print endp
;-----------------------------------------------------------
begin: 
push cs
pop ds
mov ax,4e00h
     mov dx,offset ext_fn
     mov cx,07h ; 10h=目錄, 04h=系統檔, 02h=隱藏檔, 01h = 唯讀檔
     int 21h
     jc nofile

next: call print

     mov ax,4f00h
     int 21h
     jnc next
nofile:
     mov ax,4c00h
     int 21h
code ends

     end start


沒有留言:

張貼留言