Guest User

Untitled

a guest
Oct 1st, 2018
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.18 KB | None | 0 0
  1. .586
  2. .MODEL flat , c
  3.  
  4. .DATA
  5. ;A BYTE 'kakakakpkar',13,10,0
  6. B WORD 10 DUP (?)
  7. D WORD 3 DUP (?)
  8. m DWORD 3
  9. kol DWORD ?
  10. n SWORD 9
  11. x dword ?
  12. y dword ?
  13. z dword ?
  14. f dword ?
  15. Res DB 16 DUP (' '),13,10,0
  16. string DB 13,10,'Result = ' ; заголовок вывода
  17. resstr DB 16 dup (' '),0 ; выводимое число
  18. .CODE
  19. public ADD1
  20. externdef print:near
  21. ADD1 proc
  22. push EBP
  23. mov EBP,ESP
  24. cld
  25. mov ECX,3
  26. mov ESI,[EBP+12]
  27. lea EDI,B
  28. rep movsb
  29. mov x,EDI;запоминаем конец строки B
  30. mov ECX,[EBP+8]
  31. sub ECX,3
  32. mov EBX,3
  33. mov kol,2
  34. cycle :
  35. mov y,ECX
  36. dec ESI
  37. mov ECX,2
  38. lea EDI,D
  39. rep movsb; копируем в строку D 2 символа из A
  40. mov z,ESI;запоминаем положение в строке A
  41. sub EDI,2;встаём на начало D
  42. mov m,EDI;запоминаем начало D
  43. mov EAX,[EDI];заносим в EAX строку D
  44. mov EDI,x;встаём на строку B
  45. sub EDI,EBX
  46. mov ECX,9
  47. repne scasb;ищем строку D в B
  48. mov ESI,m;встаём на начало D
  49. inc ESI
  50. mov AL,[ESI]
  51. cmp AL,[EDI]
  52. je CONTINUE
  53. mov ESI,m;встаём на начало D(её копируем)
  54. inc ESI
  55. mov ECX,1
  56. mov EDI,x;втсаём на конец В(в неё копируем)
  57. rep movsb
  58. mov x,EDI
  59. inc EBX
  60. add kol,1
  61. jmp CONTINUE
  62. CONTINUE:
  63. mov ECX,y
  64. mov ESI,z
  65. mov EDI,x
  66. ;push EDI
  67. cmp ECX,1
  68. je EXIT
  69. dec ECX
  70. jmp cycle
  71. EXIT:
  72. mov EAX,[EBP+8]
  73. push EAX
  74. call print
  75. pop EAX
  76. mov EAX,kol
  77. pop EBP
  78. ret
  79. ADD1 endp
  80. End
Add Comment
Please, Sign In to add comment