User Tag List

Страница 1 из 6 12345 ... ПоследняяПоследняя
Показано с 1 по 10 из 54

Тема: Дизасм DECOBJ

  1. #1

    Регистрация
    20.12.2005
    Адрес
    Москва
    Сообщений
    2,051
    Спасибо Благодарностей отдано 
    1,141
    Спасибо Благодарностей получено 
    1,472
    Поблагодарили
    524 сообщений
    Mentioned
    20 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Дизасм DECOBJ

    DECOBJ - программа для RT-11, позволяет по объектному модулю (.OBJ) получить его дизасм.
    Сама DECOBJ написана на Паскале, исходников нет.

    Я сделал дизасм DECOBJ - разобрал где какие модули Паскаля, откоментировал использование паскалевских вызовов в основном коде.
    Полученный DECOBJ.MAC компилируется байт-в-байт в тот же SAV файл.
    https://github.com/nzeemin/uknc-vari...OBJ/DECOBJ.MAC

    UPDATE:
    Ассемблерный код раскодирован в исходник на Паскале, силами Alex_K и меня:
    https://github.com/nzeemin/uknc-vari.../DECOBJ-PASCAL
    Последний раз редактировалось nzeemin; 16.11.2022 в 02:26.

    Эти 3 пользователя(ей) поблагодарили nzeemin за это полезное сообщение:

    Aleks1985(05.11.2022), Oleg N. Cher(05.11.2022), RCgoff(17.11.2022)

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2

    Регистрация
    07.10.2007
    Адрес
    п.Пудость Гатчинского р-на Лен.обл.
    Сообщений
    3,248
    Спасибо Благодарностей отдано 
    360
    Спасибо Благодарностей получено 
    638
    Поблагодарили
    414 сообщений
    Mentioned
    46 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Начал где-то год назад или чуть более также дизассемблировать DECOBJ. Сделал много, но завяз. Довольно сложные типы переменных, много множеств. Выкладываю то, что успел сделать. Может пригодится.

    Эти 3 пользователя(ей) поблагодарили Alex_K за это полезное сообщение:

    nzeemin(05.11.2022), Oleg N. Cher(06.11.2022), RCgoff(17.11.2022)

  4. #3

    Регистрация
    20.12.2005
    Адрес
    Москва
    Сообщений
    2,051
    Спасибо Благодарностей отдано 
    1,141
    Спасибо Благодарностей получено 
    1,472
    Поблагодарили
    524 сообщений
    Mentioned
    20 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex_K Посмотреть сообщение
    Начал где-то год назад или чуть более также дизассемблировать DECOBJ. Сделал много, но завяз. Довольно сложные типы переменных, много множеств. Выкладываю то, что успел сделать. Может пригодится.
    Спасибо, это большой труд. Буду изучать.

  5. #4

    Регистрация
    20.12.2005
    Адрес
    Москва
    Сообщений
    2,051
    Спасибо Благодарностей отдано 
    1,141
    Спасибо Благодарностей получено 
    1,472
    Поблагодарили
    524 сообщений
    Mentioned
    20 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Восстановленный исходник на Паскале будет тут:
    https://github.com/nzeemin/uknc-vari...CAL/DECOBJ.PAS

    Эти 2 пользователя(ей) поблагодарили nzeemin за это полезное сообщение:

    Alex_K(07.11.2022), Oleg N. Cher(07.11.2022)

  6. #5

    Регистрация
    07.10.2007
    Адрес
    п.Пудость Гатчинского р-на Лен.обл.
    Сообщений
    3,248
    Спасибо Благодарностей отдано 
    360
    Спасибо Благодарностей получено 
    638
    Поблагодарили
    414 сообщений
    Mentioned
    46 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от nzeemin Посмотреть сообщение
    Восстановленный исходник на Паскале будет тут:
    https://github.com/nzeemin/uknc-vari...CAL/DECOBJ.PAS
    Не надо там тип PRECF, надо аргумент в процедурах описать со словом var. Это как раз означает передачу не по значению, а по ссылке.
    И кстать этот DECOBJ слинкован очень интересно. Сначала идут два внешних модуля, а уже потом основной.

    Эти 2 пользователя(ей) поблагодарили Alex_K за это полезное сообщение:

    nzeemin(07.11.2022), Oleg N. Cher(08.11.2022)

  7. #6

    Регистрация
    07.10.2007
    Адрес
    п.Пудость Гатчинского р-на Лен.обл.
    Сообщений
    3,248
    Спасибо Благодарностей отдано 
    360
    Спасибо Благодарностей получено 
    638
    Поблагодарили
    414 сообщений
    Mentioned
    46 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Что-то типа такого:
    Код:
    procedure L01000;
    var DEVSPC: array [0..38] of integer;
        DEFEXT: array [1..4] of integer;
        I: integer;
    begin
     for I:=1 to 4 do
      DEFEXT[I]:=0;
    {$C
        MOV    SP, R2
        ADD    #DEVSPC, R2
        MOV    SP, R3
        ADD    #DEFEXT, R3
        MOV    #^ROBJ, @R3
        MOV    #^RMAC, 2(R3)
        .MCALL    .RCTRLO
        .RCTRLO
        MOV    #^O1000,@#^O46
        MOV    SP, R1
        .MCALL    .CSIGEN
    1$:    .CSIGEN    R2,R3,#0
        MOV    R1,SP
        BCS    1$
    }
     for I:=0 to 15 do
      VAR00[I]:=CHST00;
    end;
    
    
    procedure L01304(var RECIO: RECF1012; CHN: integer; CHS: CHSTATE);
    begin
     if VAR00[CHN]<>CHST00 then
     else
      with RECIO do
       begin
        RF04:=CHN;
        RF02:=0;
        RF02:=0;
        if CHS = CHST01 then
         begin
          RF06:=-1;
          RF1010:=512;
         end
        else
         if CHS = CHST02 then
          begin
           RF06:=0;
           RF1010:=1;
          end;
        VAR00[CHN]:=CHS;
       end;
    end;

    Эти 2 пользователя(ей) поблагодарили Alex_K за это полезное сообщение:

    nzeemin(08.11.2022), Oleg N. Cher(08.11.2022)

  8. #7

    Регистрация
    20.12.2005
    Адрес
    Москва
    Сообщений
    2,051
    Спасибо Благодарностей отдано 
    1,141
    Спасибо Благодарностей получено 
    1,472
    Поблагодарили
    524 сообщений
    Mentioned
    20 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Alex_K, про var я помню, ага.
    Сейчас первый внешний модуль я грубо уже выписал.

    Стратегия такая: сначала первый проход, при котором могут быть отличия в смещениях, мелкие неточности.
    Я смотрю на бинарное сравнение оригинального .SAV и полученного, "островки" в 1-3 байта различий пока оставляю как есть, если дальше совпадает. Эти островки я соберу их на втором проходе, тогда это будет уже легче сделать, когда адреса вызовов в паскалевских модулях встанут на место.

    Этот пользователь поблагодарил nzeemin за это полезное сообщение:

    Oleg N. Cher(08.11.2022)

  9. #8

    Регистрация
    07.10.2007
    Адрес
    п.Пудость Гатчинского р-на Лен.обл.
    Сообщений
    3,248
    Спасибо Благодарностей отдано 
    360
    Спасибо Благодарностей получено 
    638
    Поблагодарили
    414 сообщений
    Mentioned
    46 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Черновой вариант двух внешних модулей.
    Вложения Вложения
    Последний раз редактировалось Alex_K; 11.11.2022 в 17:57.

    Эти 2 пользователя(ей) поблагодарили Alex_K за это полезное сообщение:

    nzeemin(11.11.2022), Oleg N. Cher(11.11.2022)

  10. #9

    Регистрация
    07.10.2007
    Адрес
    п.Пудость Гатчинского р-на Лен.обл.
    Сообщений
    3,248
    Спасибо Благодарностей отдано 
    360
    Спасибо Благодарностей получено 
    638
    Поблагодарили
    414 сообщений
    Mentioned
    46 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    По ошибке сделал архив с МАС-файлами. Пересобрал с исходниками на Паскале. Файл в сообщении выше.

    Этот пользователь поблагодарил Alex_K за это полезное сообщение:

    nzeemin(11.11.2022)

  11. #10

    Регистрация
    20.12.2005
    Адрес
    Москва
    Сообщений
    2,051
    Спасибо Благодарностей отдано 
    1,141
    Спасибо Благодарностей получено 
    1,472
    Поблагодарили
    524 сообщений
    Mentioned
    20 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Вот тут не срастается по типам, в procedure L06772:
    RE00:=RG02;

    То что есть запушил на гитхаб - https://github.com/nzeemin/uknc-vari.../DECOBJ-PASCAL

Страница 1 из 6 12345 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Дизасм ОТПС 2.0
    от esl в разделе Корвет
    Ответов: 3
    Последнее: 12.12.2019, 14:44
  2. IDA 7.0 дизасм кода...
    от Stl75 в разделе Программирование
    Ответов: 5
    Последнее: 16.04.2019, 19:28
  3. Дизасм ПЗУ монитора 0 и F
    от NEO SPECTRUMAN в разделе ЮТ-88
    Ответов: 35
    Последнее: 08.04.2019, 09:15
  4. Дизасм
    от next в разделе Софт
    Ответов: 11
    Последнее: 20.12.2012, 12:46
  5. Всё про асмы говорите - а я хочу дизасм!
    от lvd в разделе Программирование
    Ответов: 21
    Последнее: 12.04.2005, 16:58

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •