mycopy.asm 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. jumps
  2. .model small
  3. .code
  4. org 100h
  5. start: mov di, 80h
  6. cmp byte ptr [di], 0
  7. je errusg
  8. mov al, [di]
  9. mov ah, 0
  10. mov dx, ax
  11. dec dx
  12. mov di, 82h
  13. mov si, offset fname1
  14. mov cx, 0
  15. loop1: mov al, [di]
  16. mov [si], al
  17. inc di
  18. inc si
  19. inc cx
  20. cmp cx, dx
  21. je errusg
  22. cmp byte ptr [di], ' '
  23. je nextloop2
  24. jmp loop1
  25. nextloop2:
  26. mov byte ptr [si], 0
  27. loop2: inc di
  28. inc cx
  29. cmp byte ptr [di], ' '
  30. je loop2
  31. mov si, offset fname2
  32. loop3: mov al, [di]
  33. mov [si], al
  34. inc di
  35. inc si
  36. inc cx
  37. cmp cx, dx
  38. je begcopy
  39. cmp byte ptr [di], ' '
  40. je begcopy
  41. jmp loop3
  42. begcopy:mov byte ptr [si], 0
  43. mov ax, 3d00h
  44. mov dx, offset fname1
  45. int 21h
  46. jc openerr
  47. mov si, ax
  48. mov ah, 3ch
  49. mov cx, 0
  50. mov dx, offset fname2
  51. int 21h
  52. jc openerr
  53. mov di, ax
  54. ;------------------------
  55. loop4: mov bx, si
  56. mov ah, 3fh
  57. mov dx, offset buf
  58. mov cx, 10000
  59. int 21h
  60. mov cx, ax
  61. mov ah, 40h
  62. mov bx, di
  63. int 21h
  64. cmp ax, 10000
  65. jb loopend
  66. jmp loop4
  67. loopend:mov bx,si
  68. mov ah, 3eh
  69. int 21h
  70. mov bx, di
  71. mov ah, 3eh
  72. int 21h
  73. int 20h
  74. openerr:mov ah, 09h
  75. mov dx, offset errstr2
  76. int 21h
  77. int 20h
  78. errusg: mov ah, 09h
  79. mov dx, offset errstr
  80. int 21h
  81. int 20h
  82. errstr db 'usage: "mycopy.exe source dest"$'
  83. errstr2 db 'File not found!$'
  84. fname1 db 13 dup (?)
  85. fname2 db 13 dup (?)
  86. buf db 10000 dup (?)
  87. end start