| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Asm: Общие вопросы > опкоды для 80188 |
| Автор: Стас123 24.11.2011, 08:51 |
| Добрый день. Похожие темы видел, но ответа не нашёл. Нужна ПОЛНАЯ таблица перевода мнемоник в опкоды, с расшифровкой полей регистров и т.п. Всё, что удалось найти - это отдельные таблицы для команд, отдельные для полей регистров. Несомненно, этой информации достаточно, но пользоваться неудобно, тк нужно вручную подставлять поля в код команды и затем переводить в hex-код. Это очень долго, ведь всех возможных вариантов несколько тысяч. Может быть, существует полностью расписанная таблица, если нет специально для 80188, то хотябы основной набор для 8086 ? |
| Автор: arcsupport 24.11.2011, 09:27 |
| Ума не приложу, зачем это может понадобиться. Что вы просите есть в дизассемблерах длин инструкций. На http://ru.wikipedia.org/wiki/Дизассемблер_длин написано, что дизассемблер приведен в книге Юань Фэна "Программирование графики для Windows" |
| Автор: 500mhz 24.11.2011, 10:59 |
| типа этого? |
| Автор: Стас123 24.11.2011, 17:57 |
| О! да, 500 мегагерц Зы: зачем понадобилось и почему нигде не найти - да вот потому и не найти что никому не надо Даже в официальных интеловских книгах всё в сжатом виде. Но по специнструкциям для прерываний, ПДП и таймеров 188 уже разобрался. Но основное всё-таки это внутренняя обработка данных, и вот тут и пригодится таблица х86. А понадобилось... нужно оживить прибор со встроенным контроллером 80С188XL, слетело УФПЗУ 2к*8, алгоритм работы известен, со схемой разобрались, теперь задача написать заново и отладить ПО. Имеется service-tool подключаемый напрямую к магистралям контроллера, с возможностью прошивки ПЗУ прямо на плате и пошаговой отладки программы. Ещё раз спасибо за оперативную помощь ! |
| Автор: Dik0n 24.11.2011, 21:57 |
| оно не ??? http://ref.x86asm.net/ http://ref.x86asm.net/coder32.html |
| Автор: Стас123 25.11.2011, 18:07 |
| Спасибо, тоже наверное пригодится. Можно я здесь же спрошу, т.к. не уверен аппаратный это косяк или ...? хотя что "или"... Странно выполняется команда HALT (код F4). Процессор останавливается, шины данных и управления свободны (нет сигналов), а на шине адреса остаётся висеть адрес команды, следующей за командой СТОП. Ну, там же предвыборка, толи 4 толи 6 команд. Так что это так задумано, или что-то погорело внутри проца ? Диспетчер очереди команд сдох ? Собственно, оно вроде не мешает. На сигнал HOLDА (запрос захвата шин), например при подключении сервис-тула, процессор реагирует адекватно: выдаёт сигнал подтверждения и освобождает-таки шину адреса. После снятия захвата - снова вывешивает следующий адрес. Сигналы аппаратных прерываний из остановленного состояния тоже нормально отрабатывает. Просто интересно, в чём дело ? Извините если задал вопрос не там... |
| Автор: arcsupport 25.11.2011, 18:35 |
| Я так понимаю эта команда останавливает процессор до того момента, как его что-нибудь не запустит. |
| Автор: Стас123 25.11.2011, 20:07 |
| Да, так и есть. Перезапуск возможен по сигналу reset, аппаратному прерыванию (внешнему), и внутреннему прерыванию (от таймеров и КПДП ). Это всё работает. Вопрос почему шина адреса не освобождается до того момента, пока сопроцессор (или как в нашем случае пульт ручного программирования) не отправит запрос на шины. Например, 80-й освобождает сразу всё и стоит себе, ждёт перезапуска. С 86-м работать не приходилось. Вот у 188-го обнаружилась такая особенность . Характерно ли это для всех процессоров с предвыборкой команд ? Интересно, что висит именно следующий адрес. Вот например, код F4 находится по адресу 204d, после его выполнения и остановки - на шине адреса висит 204e. Причём шины данных и управления свободны (отключены, состояние "высокого сопротивления") . А на шине адреса нормальные логические уровни. Моя непонимай. |
| Автор: arcsupport 28.11.2011, 17:45 |
| Я где-то встречал код для определения типа процессора. Если мне не изменяет память, для определения тонких различий использовались значения регистра IP. |