Advertisement
Guest User

Untitled

a guest
Nov 25th, 2015
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.83 KB | None | 0 0
  1. .MODEL SMALL
  2. .STACK 100h
  3. .DATA
  4.  
  5. DIR DB 128 DUP(0)
  6. DTA DB 128 DUP(0)
  7. FILE DB 50 DUP(0)
  8. NEWFILE DB 128 DUP(0)
  9. DELETED DB 0
  10.  
  11. .CODE
  12. MakeDirectory PROC
  13.  
  14. LEA SI, DIR
  15. MOV BYTE PTR[SI], AL
  16. INC SI
  17. MOV BYTE PTR[SI], ':'
  18. INC SI
  19. MOV BYTE PTR[SI], '\'
  20. INC SI
  21.  
  22. RET
  23.  
  24. MakeDirectory ENDP
  25.  
  26. DELETE PROC
  27. PUSH DI
  28. ;MAKE NEWFILE
  29.  
  30. MOV SI, OFFSET DIR
  31. MOV DI, OFFSET NEWFILE
  32.  
  33. COPY1:
  34.  
  35. MOVSB
  36. CMP BYTE PTR[SI], 0
  37. JE SECOND
  38. JMP COPY1
  39.  
  40. SECOND:
  41. MOV SI, OFFSET FILE
  42.  
  43. COPY2:
  44.  
  45. MOVSB
  46. CMP BYTE PTR[SI], 0
  47. JE DEL
  48. JMP COPY2
  49.  
  50.  
  51. DEL:
  52. MOV BYTE PTR[DI], 0
  53. LEA DX, NEWFILE
  54. MOV AH, 41H
  55. INT 21H
  56.  
  57. POP DI
  58.  
  59. RET
  60.  
  61. DELETE ENDP
  62.  
  63.  
  64.  
  65.  
  66. FindFile PROC
  67. MOV SI, OFFSET DTA+30
  68. MOV DI, OFFSET FILE
  69.  
  70. REPEAT:
  71. CLD
  72. MOVSB
  73. CMP BYTE PTR[SI], 0
  74. JE CHECK
  75. JMP REPEAT
  76.  
  77. CHECK:
  78.  
  79. CMP BYTE PTR[DI-1], 'K'
  80. JNE EXIT
  81.  
  82. CMP BYTE PTR[DI-2], 'N'
  83. JNE EXIT
  84.  
  85. CMP BYTE PTR[DI-3], 'L'
  86. JNE EXIT
  87.  
  88. ;PRINT
  89. MOV [DI], 0DH
  90. MOV [DI + 1], 0AH
  91. MOV [DI + 2], '$'
  92.  
  93. MOV AH, 9
  94. MOV DX, OFFSET FILE
  95. INT 21H
  96.  
  97. ; DELETE
  98.  
  99. MOV [DI], 0
  100. MOV [DI + 1],0
  101. MOV [DI + 2], 0
  102.  
  103.  
  104. CALL DELETE
  105. ADD DELETED, 1
  106.  
  107. EXIT:
  108. RET
  109. FindFile ENDP
  110.  
  111.  
  112. SEARCH PROC
  113.  
  114. ;SET DTA
  115. MOV AH, 1AH
  116. MOV DX, OFFSET DTA
  117. INT 21H
  118.  
  119. ; First Search
  120. MOV DX, OFFSET DIR
  121. MOV AH, 4EH
  122. INT 21H
  123.  
  124. JC QUIT
  125.  
  126.  
  127. OUTER_LOOP:
  128. CALL FindFile
  129. MOV AH, 4FH
  130. INT 21H
  131. JC QUIT
  132. JMP OUTER_LOOP
  133.  
  134. QUIT:
  135.  
  136. RET
  137. SEARCH ENDP
  138.  
  139.  
  140.  
  141.  
  142.  
  143. MAIN PROC
  144.  
  145. MOV AX, @data
  146. MOV DS, AX
  147. MOV ES, AX
  148.  
  149. ;Take directory as input
  150.  
  151.  
  152. MOV ah, 01h
  153. int 21h
  154.  
  155. ;Make directory
  156. CALL MakeDirectory
  157.  
  158. ;SEARCH AND DELETE
  159.  
  160. CALL SEARCH
  161.  
  162.  
  163. mov ax, 4c00h
  164. int 21h
  165.  
  166.  
  167. MAIN ENDP
  168. END MAIN
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement