swap.asm 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. .model small
  2. .code
  3. org 100h
  4. start:
  5. mov ah, 3ch
  6. mov cx, 0
  7. mov dx, offset fname2
  8. int 21h
  9. mov di, offset handle2
  10. mov [di], ax
  11. mov ax, 3d00h
  12. mov dx, offset fname
  13. int 21h
  14. mov di, offset handle
  15. mov [di], ax
  16. mov ah, 3fh
  17. mov bx, [di]
  18. mov cx, 500
  19. mov dx, offset string
  20. int 21h
  21. mov cx, ax
  22. mov si, cx
  23. mov word ptr string[si], 0A0Dh
  24. mov di, 2
  25. sub cx, 2
  26. reading:
  27. mov si, cx
  28. cmp word ptr string[si], 0A0Dh
  29. je lineend
  30. jmp normal
  31. lineend:
  32. mov ah, 40h
  33. mov si, offset handle2
  34. mov bx, [si]
  35. mov si, cx
  36. PUSH cx
  37. mov cx, di
  38. mov dx, offset string
  39. add dx, si
  40. add dx, 2
  41. int 21h
  42. POP cx
  43. mov di, 0
  44. normal:
  45. inc di
  46. loop reading
  47. ;------------------------------
  48. mov ah, 40h
  49. mov si, offset handle2
  50. mov bx, [si]
  51. mov si, cx
  52. mov cx, di
  53. add cx, 2
  54. mov dx, offset string
  55. add dx, si
  56. int 21h
  57. mov ah, 3eh
  58. mov di, offset handle
  59. mov bx, [di]
  60. int 21h
  61. mov ah, 3eh
  62. mov di, offset handle2
  63. mov bx, [di]
  64. int 21h
  65. int 20h
  66. fname db 'inp.txt',0
  67. fname2 db 'out.txt',0
  68. handle dw ?
  69. handle2 dw ?
  70. cool dw 0A0Dh
  71. string db 501 dup (?)
  72. end start