Сейчас на форуме: tyns777, bezumchik (+5 невидимых)

 eXeL@B —› Вопросы новичков —› Особенности вормирования ассемблерных инструкций из машиннного кода.
Посл.ответ Сообщение

Ранг: 0.9 (гость)
Активность: 0.01=0.01
Статус: Участник

Создано: 15 января 2020 23:17
· Личное сообщение · #1

Приветствую всех форумчан.У меня такой вопрос,почему и как для разных процессоров формируются ассемблерные инструкции из машинного кода?Если можно,то объясните пожалуйста на примере инструкции NOP,для современных процессоров у неё опкод 90,а для такого старенького процессора,как Z80,у неё опкод EA...




Ранг: 271.2 (наставник), 331thx
Активность: 0.321.49
Статус: Участник

Создано: 15 января 2020 23:21
· Личное сообщение · #2

Наверное речь о дизассемблировании. Выбирается этот байт 90, обрубается конъюнкцией 11111111b (весь байт опкод) и сравнивается с 90. Если совпало, дизассемблер заявляет, что по этому адресу инструкция nop x86го процессора. У спектрума другая архитектура и другой набор инструкций, которые(о неожиданность), раскодируются по-другому.

-----
2 оттенка серого




Ранг: 10.8 (новичок), 4thx
Активность: 0.17=0.17
Статус: Участник

Создано: 15 января 2020 23:27
· Личное сообщение · #3

INCDEC пишет:
У меня такой вопрос

Странный вопрос какой-то...
Каждой инструкции соответствует свой уникальный опкод, какие еще могут быть варианты???



Ранг: 0.9 (гость)
Активность: 0.01=0.01
Статус: Участник

Создано: 15 января 2020 23:28
· Личное сообщение · #4

А где об этих особенностях можно почитать подробнее?Очень интересно.Я ещё ромхакингом занимаюсь и ромхачу игры для NES(Dendy),столкнулся с такой особенностью и стало интересно.)))

Добавлено спустя 2 минуты
AE пишет:
Каждой инструкции соответствует свой уникальный опкод

Не такой уж он и уникальный,точнее в разных процессорах могут быть разные опкоды для одной и той же инструкции...




Ранг: 271.2 (наставник), 331thx
Активность: 0.321.49
Статус: Участник

Создано: 15 января 2020 23:31
· Личное сообщение · #5

Том 2 читай --> Link <--, там этих особенностей надолго хватит. Для нес тоже найди instruction set manual и читай там.

-----
2 оттенка серого


| Сообщение посчитали полезным: INCDEC

Ранг: 10.8 (новичок), 4thx
Активность: 0.17=0.17
Статус: Участник

Создано: 15 января 2020 23:34
· Личное сообщение · #6

INCDEC пишет:
Не такой уж он и уникальный,точнее в разных процессорах могут быть разные опкоды для одной и той же инструкции...

То есть одна и та же прога, может выполнять кроме (вместо) задуманного прогером что-то (черти что)?



Ранг: 0.9 (гость)
Активность: 0.01=0.01
Статус: Участник

Создано: 15 января 2020 23:36
· Личное сообщение · #7

f13nd
Спасибо большое.

Добавлено спустя 2 минуты
AE пишет:
То есть одна и та же прога, может выполнять кроме (вместо) задуманного прогером что-то (черти что)?

Не совсем,это в вопросах портирования игр с одной платформы на другую,как,например,какой-либо игры с NES на Sega Genesis.




Ранг: 337.5 (мудрец), 348thx
Активность: 2.112.42
Статус: Участник

Создано: 15 января 2020 23:39 · Поправил: difexacaw
· Личное сообщение · #8

INCDEC

Для zilog хорошие таблицы опкодов тут ez80 t106, opcode map --> Link <--

> как для разных процессоров формируются ассемблерные инструкции

Обычно архитектура известна и выбирается диз, если же нет, то кто его знает.. как по хекс последовательности узнать для какого она процика(перебором и смотреть пересечения после ветвлений?). А может это и вовсе данные

-----
vx


| Сообщение посчитали полезным: INCDEC

Ранг: 0.9 (гость)
Активность: 0.01=0.01
Статус: Участник

Создано: 15 января 2020 23:43
· Личное сообщение · #9

difexacaw пишет:
А может это и вовсе данные

Ну,это да,бывает и так.)))




Ранг: 271.2 (наставник), 331thx
Активность: 0.321.49
Статус: Участник

Создано: 15 января 2020 23:49
· Личное сообщение · #10

difexacaw, где-то наблюдал видос, как мужик крутил донди-игру встроенным в эмулятор визором и потом только парсил получившийся cfg скриптом для иды. В принципе как порождающая стратегия неплохо, особенно для наиболее тупых архитектур.

-----
2 оттенка серого


| Сообщение посчитали полезным: difexacaw
 eXeL@B —› Вопросы новичков —› Особенности вормирования ассемблерных инструкций из машиннного кода.
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати