Skip to content

Дизассемблирование

VBrazhnik edited this page Jan 3, 2019 · 1 revision

Дизассемблер выполняет задачу, противоположную задаче asm — переводит байт-код обратно на язык ассемблера.

Важно понимать, что «восстановленный» файл не будет на 100% соответствовать исходному.

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

Поэтому файл, который изначально выглядел так ...:

.name       "Batman"
.comment    "This city needs me"

loop:
        sti r1, %:live, %1
live:
        live %0
        ld %0, r2
        zjmp %:loop

... после «восстановления» из байт-кода будет выглядеть немного иначе:

.name "Batman"
.comment "This city needs me"

sti r1, %7, %1
live %0
ld %0, r2
zjmp %-19