TASM.Поиск имен регистров в строке и вывод их содержимого

Тема в разделе "WASM.BEGINNERS", создана пользователем adgam, 30 апр 2010.

  1. adgam

    adgam New Member

    Публикаций:
    0
    Регистрация:
    30 апр 2010
    Сообщения:
    3
    Необходимо ввести символьную строку,осуществить поиск имен регистров в строке и вывести содержимое найденных регистров в виде шестнадцатиричного числа.
    Заранее спасибо.
     
  2. PowerASM

    PowerASM New Member

    Публикаций:
    0
    Регистрация:
    27 мар 2010
    Сообщения:
    59
    Код (Text):
    1. pusha
    2. mov esi, [esp+36]
    3. xor eax, eax
    4. l:
    5. shl eax, 8
    6. and eax, 00FFFFFFh
    7. lodsb
    8. test al, al
    9. jz e
    10. cmp al, 'A'
    11. jc f
    12. cmp al, 'Z'
    13. ja f
    14. xor al, 20h
    15. f:
    16. cmp eax, 'eax'
    17. jz reax
    18. cmp eax, 'ecx'
    19. jz recx
    20. cmp eax, 'edx'
    21. jz redx
    22. cmp eax, 'ebx'
    23. jz rebx
    24. cmp eax, 'ebp'
    25. jz rebp
    26. cmp eax, 'esp'
    27. jz resp
    28. cmp eax, 'esi'
    29. jz resi
    30. cmp eax, 'edi'
    31. jz redi
    32. and eax, 0000FFFFh
    33. or eax, 00200000h
    34. cmp eax, ' ax'
    35. jz rgax
    36. cmp eax, ' cx'
    37. jz rgcx
    38. cmp eax, ' dx'
    39. jz rgdx
    40. cmp eax, ' bx'
    41. jz rgbx
    42. cmp eax, ' bp'
    43. jz rgbp
    44. cmp eax, ' sp'
    45. jz rgsp
    46. cmp eax, ' si'
    47. jz rgsi
    48. cmp eax, ' di'
    49. jz rgdi
    50. cmp eax, ' al'
    51. jz rgal
    52. cmp eax, ' cl'
    53. jz rgcl
    54. cmp eax, ' dl'
    55. jz rgdl
    56. cmp eax, ' bl'
    57. jz rgbl
    58. cmp eax, ' ah'
    59. jz rgah
    60. cmp eax, ' ch'
    61. jz rgch
    62. cmp eax, ' dh'
    63. jz rgdh
    64. cmp eax, ' bh'
    65. jz rgbh
    66. jmp l
    67. r:
    68. shl eax, 8
    69. mov al, '='
    70. lea ebx, [esp-12]
    71. xor ecx, ecx
    72. call wsprintfA, ebx, t, edx, eax, ecx, ecx, ecx
    73. add esp, 12
    74. sub ebx, 4
    75. call MessageBoxA, 0, ebx, c, MB_OK
    76. add esp, 16
    77. jmp l
    78. e:
    79. popa
    80. ret 4
    81. reax:
    82. mov edx, [esp+28]
    83. jmp r
    84. recx:
    85. mov edx, [esp+24]
    86. jmp r
    87. redx:
    88. mov edx, [esp+20]
    89. jmp r
    90. rebx:
    91. mov edx, [esp+16]
    92. jmp r
    93. rebp:
    94. mov edx, [esp+12]
    95. jmp r
    96. resp:
    97. mov edx, [esp+8]
    98. jmp r
    99. resi:
    100. mov edx, [esp+4]
    101. jmp r
    102. redi:
    103. mov edx, [esp+0]
    104. jmp r
    105. rgax:
    106. movzx edx, word [esp+28]
    107. jmp r
    108. rgcx:
    109. movzx edx, word [esp+24]
    110. jmp r
    111. rgdx:
    112. movzx edx, word [esp+20]
    113. jmp r
    114. rgbx:
    115. movzx edx, word [esp+16]
    116. jmp r
    117. rgbp:
    118. movzx edx, word [esp+12]
    119. jmp r
    120. rgsp:
    121. movzx edx, word [esp+8]
    122. jmp r
    123. rgsi:
    124. movzx edx, word [esp+4]
    125. jmp r
    126. rgdi:
    127. movzx edx, word [esp+0]
    128. jmp r
    129. rgal:
    130. movzx edx, byte [esp+28]
    131. jmp r
    132. rgcl:
    133. movzx edx, byte [esp+24]
    134. jmp r
    135. rgdl:
    136. movzx edx, byte [esp+20]
    137. jmp r
    138. rgbl:
    139. movzx edx, byte [esp+16]
    140. jmp r
    141. rgah:
    142. movzx edx, byte [esp+29]
    143. jmp r
    144. rgch:
    145. movzx edx, byte [esp+25]
    146. jmp r
    147. rgdh:
    148. movzx edx, byte [esp+21]
    149. jmp r
    150. rgbh:
    151. movzx edx, byte [esp+17]
    152. jmp r
    что-то типа этого. очепятки и недописки ищите сами, но если исправить все, то работать будет.
     
  3. G13

    G13 New Member

    Публикаций:
    0
    Регистрация:
    24 мар 2006
    Сообщения:
    499
  4. t00x

    t00x New Member

    Публикаций:
    0
    Регистрация:
    15 фев 2007
    Сообщения:
    1.921
    G13
    [offtop]
    видимо, ещё придёться писать о слитном и раздельном написании то же/тоже...)
    [/offtop]
     
  5. Guru_of_Zen

    Guru_of_Zen Member

    Публикаций:
    0
    Регистрация:
    21 янв 2010
    Сообщения:
    288
    t00x
    [offtop]
    а вы шутник :)
    [/offtop]