Advertisement
Guest User

Untitled

a guest
Jun 18th, 2018
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.    .model tiny
  2.     .code
  3.     org 100h
  4. start:    
  5. PRINT MACRO buffer
  6.     pusha
  7.     mov ah, 9
  8.     lea dx, buffer
  9.     int 21h  
  10.     popa
  11. ENDM    
  12.  
  13.  
  14.     pusha
  15.     xor cx, cx
  16.     mov cl, es:[80h]  
  17.     cmp cl, 0
  18.     je end_get_name
  19.     mov di, 82h      
  20.     lea si, searchPath      
  21.     mov [si], '.'
  22.      inc si
  23.      mov [si], '\'
  24.     inc si
  25. cicle1:      
  26.     mov ah, 2
  27.     mov al, es:[di]
  28.     mov dl, al
  29.     int 21h
  30.     cmp al, " "      
  31.     je end_get_name
  32.     mov [si], al      
  33.     inc di            
  34.     inc si            
  35.     jmp cicle1
  36. end_get_name:  
  37.     mov [si], '\'
  38.     inc si
  39.     mov [si], "*"
  40.     inc si
  41.     mov [si], "."
  42.     inc si
  43.     mov [si], "*"
  44.     inc si
  45.     mov [si], 0
  46.     mov [si + 1], "$"
  47.      
  48.     inc di  
  49.     lea si, searchPath2  
  50.     mov [si], '.'
  51.     inc si
  52.     mov [si], '\'
  53.     inc si
  54. cicle2:
  55.     mov al, es:[di]   ;Çàíîñèì â al ïîñèìâîëüíî çíà÷åíèå êîìàíäíîé ñòðîêè
  56.     mov dl, al
  57.     mov ah, 2
  58.     int 21h
  59.     cmp al, 0DH       ;0Dh - òîâàðèù Enter, îí æå âîçâðàò êàðåòêè
  60.     je end_get_name2
  61.     mov [si], al      ;çàíîñèì ñèìâîë èç êîì.ñòðîêè â filename
  62.     inc di            ;íà ñëåäóþùèé ñèìâîë
  63.     inc si            
  64.     jmp cicle2
  65. end_get_name2:
  66.     mov [si], '\'    
  67.     inc si    
  68.     mov [si], "*"
  69.     inc si
  70.     mov [si], "."
  71.     inc si
  72.     mov [si], "*"
  73.     inc si
  74.     mov [si], 0
  75.     inc si
  76.     mov [si], "$"
  77.     popa
  78.     print searchPath2
  79.     print searchPath
  80.  
  81.  
  82.     print output
  83.    mov ah,1ah
  84.     mov dx,offset dta
  85.     int 21h
  86.    
  87.     ; FindFirstFile
  88.     mov ah,4eh
  89.     xor cx,cx
  90.     mov dx,offset searchPath2      
  91.     int 21h
  92.     jc quit  
  93.    
  94.     mov dx, offset dta + 1eh  
  95.     xor cx, cx
  96.     push cx
  97.     jmp LAST  
  98.    
  99. AGAIN:
  100.     pop cx
  101.     inc cx
  102.     push cx
  103.     mov ah,4eh
  104.     mov dx,offset searchPath2      
  105.     int 21h
  106.     jc quit  
  107. poop1:
  108.     mov ah,4fh
  109.     int 21h
  110.     jc quit
  111.     loop poop1
  112. LAST:  
  113.     mov ah,9  
  114.     mov di, offset dta + 1eh
  115.     mov si, offset first
  116. loop1:
  117.     mov al, [di]
  118.     mov [si], al
  119.     inc si
  120.     inc di
  121.     cmp [di], 0
  122.     mov al, [di]
  123.     mov [si], al
  124.     jne loop1
  125.     mov [si], 0
  126.     mov dx, [si]
  127.     mov [si + 1], "$"
  128.     mov ah, 9
  129.    ; int 21h
  130.    ; print first
  131.    
  132.     mov si, offset first
  133.     mov di, offset dta + 1eh
  134.            
  135.              
  136.     mov ah,4eh
  137.     xor cx,cx
  138.     mov dx,offset searchPath      
  139.     int 21h
  140.     jc quit  
  141.  
  142.     mov dx, [si]
  143.     mov ah, 9
  144.    ; int 21h
  145.    
  146. print_filename:      
  147.    mov ah,9
  148.     mov di, offset dta + 1eh  
  149.     mov si, offset first
  150.     add di, 1
  151.     add si, 1
  152. loop2:  
  153.  
  154.     inc si
  155.     inc di  
  156.     mov al, [si]
  157.     cmp [di], al
  158.     jne NST
  159.     jmp loop2
  160.     NST:      
  161.     cmp [si], "$"
  162.     jne NEXT
  163.     print first
  164.     NEXT:
  165.  
  166.  
  167.     mov ah,4fh
  168.     mov dx,offset dta
  169.     int 21h
  170.     jnc print_filename    
  171.     jmp again
  172. quit:
  173.     xor ax,ax
  174.     int 16h
  175.    
  176.     mov ah,4ch
  177.     int 21h
  178.  
  179. ; data    
  180. searchPath  db "wowwowwowwowwow"  
  181. searchPath2 db "wowwowwowwowwow"
  182. dta     db 2ch dup (?)
  183.         db "$"           
  184. wow db "WOW", "$"      
  185. output db "That's files with the same names", 10, 13, "$"    
  186. first db 14, 0, 14 dup("$")  
  187. second db 14, 0, 14 dup ("$")                          
  188. end start
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement