Re: Исследование механизма работы ПО MMCS
Вот что ответил Alex Konshin по SH4
Насчёт SH4. Читать дисассемблированый текст очень трудно из-за особеностей архитектуры SH4.
1) Процессор выполняет одну/две команды за такт, причём их порядок в паре неважен. Точнее, если команды зависимы, то выполняется за такт только одна, если независимы, то сразу две. Например, если в пограмме команда перехода, а за ней загрузка чего-то в регистр, так выполнятся обе команды. Это очень мешает пониманию программы, да и эмулировать это непросто. Нечто подобное вроде есть у процессоров Sparc. И это только одна особенность SH4.
2) В SH4 нет специальной команды для системных вызовов. Вместо этого, насколько я помню, в WinCE делаются попытки перехода по нечётныму адресу (в SH4 команды должны быть по чётным адресам), происходит прерывание, а обработчик прерывания уже по этому плохому значению адреса понимает что за системный вызов.
3) В SH4 нет понятия порта I/O, точнее ввод-вывод спроецирован на память (примерно как в PDP/VAX). Т.е. запись по некому адресу может приводить к записи, например, в таймер или серийный порт, ну и наоборот, чтение может на самом деле читать откуда-то извне.
4) Помимо этого есть аппаратная поддержка виртуальной памяти. Хотя это на уровне приложения и неважно, но эмулировать её непросто.
Документацию по самому процессору и по некоторой переферии (но не всей) находил в интернете.
Так что если остались силы копать, то копать будем сами
|