Advertisement
Guest User

Untitled

a guest
Dec 18th, 2017
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.88 KB | None | 0 0
  1. .model small
  2. .486
  3.  
  4. data segment public 'data'
  5. source db "N44TXg2k,MFIWMIW.v9,QR4V1H1ssaURikdAs8IFvqilYmKqWIPV7brVAGLFB2I?"
  6. result1 db 65 dup ('$')
  7. result2 db 65 dup ('$')
  8. maska dq 0001100001111111000011010100001100010011000011111111011111111010b
  9. R db 'R'
  10. U db 'U' ;85
  11. A db 'A' ; 97
  12. Z db 'Z' ; 122
  13. data ends
  14.  
  15. code segment public 'code'
  16. assume cs:code, ds:data
  17.  
  18. start:
  19. mov ax, data
  20. mov ds, ax
  21. mov es, ax
  22. xor si, si
  23. xor di, di
  24.  
  25. ;вывод исходной строки
  26. mov ah, 09h
  27. mov dx,OFFSET source
  28. int 21h
  29. ;след строка
  30. mov ah, 06h
  31. mov dl, 0Ah
  32. int 21h
  33.  
  34. ;первая часть
  35. mov si, offset source
  36. mov di, offset result1
  37.  
  38. mov ebx, dword ptr maska + 4
  39. call firstPart
  40.  
  41. mov ebx, dword ptr maska
  42. call firstPart
  43.  
  44. mov ah, 06h
  45. mov dl, 0Ah
  46. int 21h
  47.  
  48. ;вывод результата первой части
  49. mov ah, 09h
  50. mov dx,OFFSET result1
  51. int 21h
  52.  
  53. ;след строка
  54. mov ah, 06h
  55. mov dl, 0Ah
  56. int 21h
  57.  
  58. ;вторая часть
  59. mov si, offset source[63]
  60. mov di, offset result2
  61. xor bx, bx
  62.  
  63. call secondPart
  64.  
  65. ;вывод результата второй части
  66. mov ah, 09h
  67. mov dx,OFFSET result2
  68. int 21h
  69.  
  70. .exit
  71.  
  72. firstPart proc
  73. mov cx, 32
  74. firstPartLoop:
  75. shl ebx, 1 ;побитовый сдвиг влево
  76. jnc zero
  77. mov ah, 06H
  78. mov dl, '1'
  79. int 21h
  80. jmp check
  81. zero:
  82. mov ah, 06H
  83. mov dl, '0'
  84. int 21h
  85. check:
  86. lodsb
  87. jnc nextBit
  88. cmp al, A
  89. jl nextBit
  90. cmp al, Z
  91. jg nextBit
  92. stosb
  93. nextBit:
  94. LOOP firstPartLoop
  95. ret
  96. firstPart endp
  97.  
  98. secondPart proc
  99. std
  100. lodsb
  101. mov bh, al
  102. mov cx, 63
  103. secondPartLoop:
  104. std
  105. lodsb
  106. cmp bh, R
  107. jne copy
  108. cmp al, U
  109. je return
  110. copy:
  111. xchg al, bh
  112. cld
  113. stosb
  114. LOOP secondPartLoop
  115.  
  116. mov al, bh
  117. cld
  118. stosb
  119. return:
  120. ret
  121. secondPart endp
  122.  
  123. code ends
  124. end start
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement