User Tag List

Страница 3 из 6 ПерваяПервая 123456 ПоследняяПоследняя
Показано с 21 по 30 из 54

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

  1. #21

    Регистрация
    24.08.2007
    Адрес
    Днепропетровская обл.
    Сообщений
    1,681
    Спасибо Благодарностей отдано 
    2,716
    Спасибо Благодарностей получено 
    170
    Поблагодарили
    130 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex_K Посмотреть сообщение
    В главной процедуре по адресу 035532 командой SUB #106,SP выделяется целая куча места под локальные переменные. Это зачем же столько надо?
    Там могут быть вложенные процедуры. Для доступа из них к параметрам внешней процедуры во фрейме стека обычно генерится дополнительная внутренняя структура.

  2. #22

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

    По умолчанию

    Цитата Сообщение от Oleg N. Cher Посмотреть сообщение
    Там могут быть вложенные процедуры. Для доступа из них к параметрам внешней процедуры во фрейме стека обычно генерится дополнительная внутренняя структура.
    Да, там вложенные процедуры и функции. Главной является 035532, в неё вложены 033406, 033720 и 035326. Доступ к локальным переменным главной процедуры осуществляется через регистр R4. В зависимости от уровня вложенности во вложенных процедурах/функциях в самом начале стоит целая куча команд MOV (R4),R4. Обычно они пропускаются при запуске, но если вызов происходит из другой вложенной процедуры/функции, то смотря от уровня вложенности, точка запуска смещается вверх и исполняются команды MOV (R4),R4. А команда SUB #106,SP реально выделяет место для локальных переменных главной процедуры. Уже разобрался, все числа восьмеричные:
    LOC00: array [1..74] of char;
    LOC74,LOC76: integer;
    LOC100: boolean;
    LOC101: char;
    LOC102,LOC104: integer;
    Последний раз редактировалось Alex_K; 14.11.2022 в 12:55.

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

    nzeemin(14.11.2022), Oleg N. Cher(15.11.2022)

  3. #23

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

    По умолчанию

    Добил диапазон 33366-37002. Логическое выражение в процедуре L35532 дало повод помучиться. Сначала разбирал на ассемблере, что, где и от чего. Вроде бы понял всё, написал на Паскале. В итоге транслятор Паскаля падал, а эмулятор RT-11 закрывался. Закомментировал его и получил ошибку, что строка слишком длинная (188 символов). Пришлось разнести на три строки, трансляция прошла успешно.
    Вложения Вложения

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

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

  4. #24

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

    По умолчанию

    Добавил процедуру 37004. Остался главный модуль.
    Заметил, что при сравнении строк, они меняются местами. Уже подзабыл про это. Но эти ошибки подправятся потом при двоичном сравнении с оригиналом.
    Вложения Вложения

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

    nzeemin(15.11.2022), Oleg N. Cher(16.11.2022)

  5. #25

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

    По умолчанию

    Главный модуль - в состоянии "почти готово", но ошибок ещё много.
    Табы заменил на два пробела. Локально я табы любой длины могу делать, а на гитхабе неудобно смотреть когда много их.

    - - - Updated - - -

    Цитата Сообщение от Alex_K Посмотреть сообщение
    Добавил процедуру 37004.
    Залил всё вместе на гитхаб.

    - - - Updated - - -

    Ещё нашёл правильный PASCAL.OBJ для этой программы, вот отсюда: https://archive.pdp-11.org.ru/ukdwk_...omplekt/MY.DSK

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

    Alex_K(15.11.2022), Oleg N. Cher(16.11.2022)

  6. #26

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

    По умолчанию

    Цитата Сообщение от nzeemin Посмотреть сообщение
    Главный модуль - в состоянии "почти готово", но ошибок ещё много.
    Я буду свой делать. Потом сравним. Мне также после линковки ошибки надо будет вычищать. А их будет много: где-то из восьмеричного в десятичное не перевёл, логические выражения, если там есть переменная BOOLEAN, ну и т.д. и т.п.

  7. #27

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

    По умолчанию

    Я займусь доделкой основной процедуры и исправлением ошибок в ней.
    Пока показывает ~140 различающихся байт - на всём файле.
    Последний раз редактировалось nzeemin; 15.11.2022 в 19:53.

  8. #28

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

    По умолчанию

    Цитата Сообщение от nzeemin Посмотреть сообщение
    Ещё нашёл правильный PASCAL.OBJ для этой программы, вот отсюда: https://archive.pdp-11.org.ru/ukdwk_...omplekt/MY.DSK
    Насколько я понимаю это версия PASFIS, для процессоров с поддержкой EIS и FIS. В ней подпрограммы умножения и деления используют команды EIS. Также отсутствует эмулятор FIS.

    - - - Добавлено - - -

    Цитата Сообщение от nzeemin Посмотреть сообщение
    Я займусь доделкой основной процедуры и исправлением ошибок в ней.
    Пока показывает ~140 различающихся байт - на всём файле.
    Кстати для сравнения лучше использовать BINCON из RT-11. В эмуляторе RT-11 можно дать команду DIFF/BIN/OUT:файл файл1,файл2. Там все числа восьмеричные, всё прекрасно видно.

  9. #29

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

    По умолчанию

    У меня свои способы 8-)
    Собираю и линкую под эмулятором RT-11, сравниваю через WinMerge - очень наглядно всё видно за счёт подсветки, но числа 16-ричные.
    Сейчас уже осталось 123 байта различий.

  10. #30

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

    По умолчанию

    Цитата Сообщение от nzeemin Посмотреть сообщение
    Сейчас уже осталось 123 байта различий.
    А много различий в тех модулях, что делал я?

    - - - Добавлено - - -

    Цитата Сообщение от nzeemin Посмотреть сообщение
    сравниваю через WinMerge - очень наглядно всё видно за счёт подсветки, но числа 16-ричные.
    Т.к. проект с открытым кодом, то и восьмеричные можно сделать.

Страница 3 из 6 ПерваяПервая 123456 ПоследняяПоследняя

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

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

Эту тему просматривают: 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

Ваши права

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