Кстати, учти, что бряк срабатывает после выполнения инструкции, которая даёт условия для бряка.
Попытка исследовать код:
Разве одна инструкция - код?
Проще говоря, эту инструкцию можно записать как a1+=2; (a1=a1+2)
Надо смотреть, что делается дальше. Видимо, там цикл... Смотри, откуда значения читаются, прежде чем записаться на место искомых данных. А если данные не пожаты, не криптованы и т.п., то, скорей всего, данный бряк тебе ничего не даст, ибо в таких случаях обычно данные грузятся прямиком с диска, а т.к. чтение с диска происходит через DMA, то, само собой, CPU не будет писать никакие данные по тому адресу и бряк не сработает. Сперва прогони поиск с помощью Total Commander'а по папке диска с цепочкой данных, которую ты хочешь найти.
Адрес sp - 801FFEE8.
Дамплю память. По адресу 801FFEE8 вижу последовательность 4-х байт, которую несколько раз встречается в файле, в котором шрифты лежат. Адреса 20FED0 (1FFEE8+FFE8) в оперативе нет.
sp - стек, если я правильно помню. Вряд ли там будут какие-либо данные. Значения в основном, вроде адресов и переменных всяких. Лучше отлавливать их по ходу выполнения кода, а не копаться в стеке.
Жму "Run" - срабатывает следующий бряк.
LBU v0, 0000, a1
...
v0 - 00000057, a1 - 801488D3
Дамплю память. Текст, который выводится на экран начинается с 801488D2.
Инструкция означает "загрузить в v0 байт из адреса 801488D3".
Т.е. это процедура вывода текста. И обрабатывает она второй символ.
А чтобы вычислить что откуда грузится, надо ставить бряк на чтение секторов я так понял?
Сначала стоит просто поискать те данные обычным поиском в файлах. А потом уже, если не получится, отлавливать чтение с диска.
Спасибо за совет. Приму к сведению.
Эм... Это шутка была, если что)
Добавлено позже:Кстати, ты в чём дебажишь? "LBU v0, 0000, a1" обычно имеет вид "LBU v0, 0000(a1)"