С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Рекомендую для отладочных вещей пользоваться вызовами DebugLog() и DebugLogFormat() -- они пишут в файл trace.log, это быстрее DebugPrint() и не ограничено размером буфера виндового контрола EDIT (кажется, 64К текста).
Если нужно получить в логе трассу команд, можно в конец CProcessor::FetchInstruction() вставить примерно такой блок:
Код:#if !defined(PRODUCT) WORD address = GetPC() - 2; WORD data[4]; for (int i = 0; i < 4; i++) data[i] = GetWord(address + i * 2); TCHAR strInstr[8]; TCHAR strArg[32]; DisassembleInstruction(data, address, strInstr, strArg); DebugLogFormat(_T("%06o: %s\t%s\n"), address, strInstr, strArg); #endif
---------- Post added at 00:10 ---------- Previous post was at 00:05 ----------
Цифры все в коде, цифр этих много, зависит от команды и режимов адресации.
Если хочется видеть по конкретному коду сколько тактов занимают команды -- можно смотреть или логировать в конце CProcessor::Execute() на выходе из функции CProcessor::CommandExecution() сколько прописано в m_internalTick -- это и будет время выполнения команды.
Чтобы замедлить/ускорить процессор можно либо в CMotherboard::SystemFrame() изменить количество вызовов SYSTEMFRAME_EXECUTE_CPU и SYSTEMFRAME_EXECUTE_PPU, либо в коде процессора изменять m_internalTick.
Последний раз редактировалось nzeemin; 07.02.2013 в 00:13.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)