The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Релиз эмулятора DOSBox Staging 0.81"
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]
Заметили полезную информацию ? Пожалуйста добавьте в FAQ на WIKI.
. "Релиз эмулятора DOSBox Staging 0.81" +/
Сообщение от n00by (ok), 17-Фев-24, 08:20 
Читаемость кода - понятие весьма растяжимое. Реверсер читает и листинг дизассемблера, переписывая его в более понятную остальным форму. При этом возникает проблема: при переписывании всего 1 в 1 времени уходит столько, что игра обычно не стоит свеч. Классическое решение - типовые части пишутся с нуля (т.н. "clean room desing" - это в первую очередь ускорение процесса, а не обход лицензионных ограничений).

Бывает, что некоторым вообще не важно понимать, как оно работает, тогда "рипают" код, чистят листинг IDA Pro и приводят его к виду, собираемому ассемблером. Похоже, тут автор пошёл еще дальше и приводит к виду, собираемому компилятором [*]. Можно собрать под другой процессор, но читаемость от этого лучше не становится. Да ещё и теряется изоморфность, то есть результат может работать отлично от оригинала. Именно поэтому потом запускаются оба варианта и сравниваются.

Не стоит ругать автора за якобы мартышкин труд, это всё не просто даже в теории. Главный вопрос тут: как так получилось, что очередной самородок вместо создания чего-то полезного занят "Looking for job in EU, Ca".

[*]
start:
    R(STI); // 12 sti
    R(CLD); // 13 cld
    R(PUSH(seg_offset(_data))); // 14 push _data
    R(POP(ds)); // 15 pop ds
    R(ah = 9;); // 16 mov ah,9
    R(dx = offset(_data,_msg););    // 17 mov dx,offset _msg
    R(_INT(0x21));  // 18 int 21h
    R(ax = 0x4c00;);    // 20 mov ax,4c00h
    R(_INT(0x21));  // 21 int 21h

struct Memory m = {
{0}, // padding
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, // segment _data
{'H','e','l','l','o',' ','W','o','r','l','d','!','\n','\r','$'}, // _msg

Ответить | Правка | Наверх | Cообщить модератору

Оглавление
Релиз эмулятора DOSBox Staging 0.81, opennews, 15-Фев-24, 11:55  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру