Сейчас на форуме: vsv1, _MBK_ (+3 невидимых)

 eXeL@B —› Вопросы новичков —› странность FASM'а...
Посл.ответ Сообщение

Ранг: 9.8 (гость)
Активность: 0.020
Статус: Участник

Создано: 22 октября 2007 08:18
· Личное сообщение · #1

ФАСМ превращает
cmp word[var],'MZ'
в
cmp dword ptr [var],5A4D

но почему?
ведь 'MZ' это 4D5А и МАСМ переводит его нормально...




Ранг: 126.7 (ветеран)
Активность: 0.140
Статус: Участник
#CCh

Создано: 22 октября 2007 08:39
· Личное сообщение · #2

учите матчасть! bitfry.narod.ru/05.htm

-----
invoke OpenFire





Ранг: 605.2 (!), 341thx
Активность: 0.470.25
Статус: Модератор
Research & Development

Создано: 22 октября 2007 09:46
· Личное сообщение · #3

Necromancer13 пишет:
МАСМ переводит его нормально

у masm та же логика, что и у fasm
так что в данном случае резульат тот же
при использовании строковых констант типа MZ и PE, не забывай, что они хранятся "задом наперёд"

-----
EnJoy!




Ранг: 51.5 (постоянный), 16thx
Активность: 0.040.01
Статус: Участник

Создано: 22 октября 2007 10:15
· Личное сообщение · #4





Ранг: 9.8 (гость)
Активность: 0.020
Статус: Участник

Создано: 22 октября 2007 17:25
· Личное сообщение · #5

да я понимаю, что байты хранятся наоборот! ВОт именно!
моя программа мщет в файле MZ-сигнатуру!
cmp dword[edi],'ZM' - ведь байты наоборот! У Масме это нормально работает!
а у фасме уже надо
cmp dword[edi],'MZ' - байты ненаоборот, а должны быть наоборот!

когда сравниваются строки фасм автоматички оборачивает строку, чтоб она не была задом-наперед!
это не привычно, потом что в ФАСМе было наоборот...
да и ответ я получил уже на форуме FASM'а, можете посмотреть - board.flatassembler.net/topic.php?t=7732


 eXeL@B —› Вопросы новичков —› странность FASM'а...
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати