Jasma ST20 Assembler by Jazio v.3.0
Если у кого нет, то можно взять здесь:
http://rapidshare.de/files/26287160/Jasma_3.0_ST20_ASM.zip.html
Слова “ST20 Assembler” говорят сами за себя, и объяснять для чего эта программа не нужно. У программы много функций. Одна из них – это поддержка дизассемблированного, с помощью IDA Pro, кода. Рассмотрим на примере. В теме “IDA – интерактивный дизассемблер” мы загрузили в IDA (dump) DigiMax DSR-9010 - Flash 1(M29W800DT) - SJ02.S2.07. Что бы программа не ругалась, что та или иная метка или адрес не задействованы, возьмем что-нибудь конечное. Встанем на адрес: 7FFF0000 и нажмем кнопку “C” то есть, дизассемблируем участок кода. Вот, что мы получили:
ROM:7FFF0000 ; ---------------------------------------------------------------------------
ROM:7FFF0000 ldc 0
ROM:7FFF0001 stl 1
ROM:7FFF0002 ldc 38h
ROM:7FFF0004 devlb
ROM:7FFF0006 ldc 0Fh
ROM:7FFF0007 and
ROM:7FFF0009 cj loc_7FFF000C
ROM:7FFF000A ldc 1
ROM:7FFF000B stl 1
ROM:7FFF000C
ROM:7FFF000C loc_7FFF000C: ; CODE XREF: ROM:7FFF0009 j
ROM:7FFF000C ldl 1
ROM:7FFF000D ret
ROM:7FFF000D ; --------------------------------------------------------------------------- Открываем программу “Jasma ST20 Assembler”, по умолчанию в программе будет открыта вкладка “ASM Edit”. Вверху справа в окошко “Offset” заносим адрес начала нашего кода: 7FFF0000. Затем жмем Edit -> Convert from IDA и получаем ассемблерный код.
ldc 0
stl 1
ldc 38
devlb
ldc F
and
cj $loc_7FFF000C
ldc 1
stl 1
@loc_7FFF000C
ldl 1
ret
Сохраним наш файл. Жмем ASM File -> Save as… Можно открыть сохраненный файл и посмотреть, но ничего нового, чего нет на вкладке “ASM Edit” мы не увидим. Единственное различие будет в том, что адрес, который мы вводили в окошко “Offset”, будет находиться вначале файла.
Для компиляции нашего кода жмем Tools -> Compile и смотрим внизу в строке “StatusBar”, что нам программа выдаст. В строке мы получили сообщение об ошибке “Compilation Error – Wrong character in function: $loc_7FFF000C” дескать, символ в функции неправильный. Меняем символ “$” на символ “@”. Было: cj $loc_7FFF000C,
стало: cj @loc_7FFF000C. Снова жмем Tools -> Compile и смотрим строку состояния. Программа выдала нам “End of compilation”, все ‘Ok’ код скомпилирован. На этой же вкладке “ASM Edit”, справа находятся команды (инструкции) для ST20. Когда, Вы, пишете или переписываете код, Вам, нет необходимости набирать команды вручную. Достаточно установить курсор в строку, куда, Вы, хотите вставить команду, и сделать двойной клик левой кнопкой мышки по выбранной из списка команде.
Перейдем на вкладку “ASM Code”. Здесь все наглядно. Для сохранения скомпилированного файла жмем кнопку “Save Bin file” (вторая слева). Для сравнения полученного результата с исходным, в IDA Pro открываем вкладку “Hex-View-A” вот, что мы имели:
ROM:7FFF0000 40 D1 23 48 2F F0 4F 24 F6 A2 41 D1 71 22 F0
Открываем в Hex-редакторе полученный в результате компиляции бинарник и, вот, что мы получили:
40 D1 23 48 2F F0 4F 24 F6 A2 41 D1 71 22 F0
Результат, как говорится, на лицо и в комментарии не нуждается. Можно было и не открывать в Hex-редакторе бинарник, ведь здесь, на вкладке “ASM Code” в колонке “Binary Code” мы видим полученный в результате компиляции наш бинарный код.
Открываем вкладку “ST20 Commands”, жмем кнопку “Kody ST20”, ну, а дальше и комментировать не имеет смысла.
Вкладка “Calculator” – no comments. Само название за себя говорит.
Добавлено (2006-10-09, 12:08 Pm)
---------------------------------------------
Jasma ST20 Assembler by Jazio v.3.0
Можно взять здесь:
http://www.hostclip.com/dl/87eb5da8905a3b68cf9fb374876461ee