Внимание! Это временный неофициальный архив старой версии форума Полигон Призраков, созданный сочувствующим форуму участником. Этот сайт просуществует лишь до тех пор, пока администрация Полигона не сдержит своё обещание и не откроет официальный архив по адресу old.sannata.org.

Полигон-2

Форум о старых компьютерах

Объявление форума

Если пользуетесь личными сообщениями и получили по электронной почте оповещение о новом письме, не отвечайте, пожалуйста, почтой. Зайдите на форум и ответьте отправителю через ЛС.

Полигон-2 »   Другие архитектуры »   Вопрос по машинным командам PDP-11
RSS

Вопрос по машинным командам PDP-11

need help

<<Назад  Вперед>> Страницы: 1 * 2
Печать
 
alecv
Advanced Member


Откуда: Санкт-Петербург
Всего сообщений: 5545
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
5 окт. 2004
xoiss Сравнение - это вычитание (Compares values by subtracting the destination from the source)

в SIMH
При R0=1 получается -1-1=-2 устанавливается флаг N
При R0=0 получается -1-0=-1 устанавливается флаг N
При R0=-1 получается -1-(-1)=0 устанавливается флаг Z
При R0=-2 получается -1-(-2)=1 никакие флаги не устанвливаются
_Patron_
Member


Откуда: Москва
Всего сообщений: 146
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
19 дек. 2012
xoiss написал:
[q]
прошу подсказать результат выполнения примера на ассемблере (машинных кодах) PDP-11
[/q]
Если заглянуть в описание команд PDP-11 - результат можно попробовать предсказать.
xoiss
Advanced Member


Всего сообщений: 711
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
30 окт. 2013
alecv написал:
[q]
xoiss Сравнение - это вычитание (Compares values by subtracting the destination from the source)
в SIMH
При R0=1 получается -1-1=-2 устанавливается флаг N
При R0=0 получается -1-0=-1 устанавливается флаг N
При R0=-1 получается -1-(-1)=0 устанавливается флаг Z
При R0=-2 получается -1-(-2)=1 никакие флаги не устанвливаются
[/q]
в результате выполнения команды CMP все четыре арифметических флага получают какое-либо конкретное значение — либо 0, либо 1
правильно ли я понимаю результаты выполненного Вами эксперимента, что флаг C во всех четырёх случаях был равен 0 ? (остался равен 0, либо стал равен 0)

собственно, похоже, та функция, из которой я взял этот участок кода, было просто дезактивирована программистами
изначально в ней было условие типа if (c > x) dosomething(), где c - была константа, x - типа unsigned long
... похоже, они заменили его заглушкой вроде if (UINT64_MAX > x) dosomething(), чтобы dosomething() никогда не вызывалось

// исходник был на ассемблере, конечно же, — т.е. пример на Си - это лишь псевдокод

... и тем не менее очень странно, что это выключили
речь идёт о функции в составе секьюрной процедуры RSX-11M — нормализация 64-битного числа по модулю (2^64)-59

Ок, спасибо!
xoiss
Advanced Member


Всего сообщений: 711
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
30 окт. 2013
_Patron_ написал:
[q]
xoiss написал:
[q]
прошу подсказать результат выполнения примера на ассемблере (машинных кодах) PDP-11
[/q]
Если заглянуть в описание команд PDP-11 - результат можно попробовать предсказать.
[/q]
Да, спасибо за ссылку. Описания у меня есть, причём с подробными примерами.
Кроме того, машкоды PDP-11 я выучил ещё в 1991-1992 г.г.
... просто давно не практиковался именно с этим ассемблером, а тут вдруг возникла экстранеобходимость.
Осваивать SimH, командную строку и тулчейны в RSX-11M уж очень не хочется, т.к. задача однократная.
... а какого-либо ДВК или УК-НЦ под рукой нет, чтоб проверить — вот и спросил, если у кого натуральная машинка есть, то из-под монитора это проверить 2-3 минуты.

Собсна, по описаниям то я вопросов не имею — в них русско-английским по белому всё ясно написано
... мой вопрос был - так, на всякий случай, вдруг я что-то концептуально упустил.

Впрочем, пока суть да дело, выяснилось, что 99.9% там код сознательно исказили, чтоб бага была...
... но зачем - пока не понятно.
xoiss
Advanced Member


Всего сообщений: 711
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
30 окт. 2013
MM написал:
[q]
Мурмулятор ДВК господина Патрона и DESS.SAV V5.00 из собрания господина Хобота в помощь.
Эксперементировать в адресе 000400 , переключаясь в пульт и обратно в DESS.
Почему именно Мурмулятор - а где Вы видели ДВК с QWERT клавой ?!
[/q]
спасибо! :)
alecv
Advanced Member


Откуда: Санкт-Петербург
Всего сообщений: 5545
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
5 окт. 2004
xoiss написал:
[q]
в результате выполнения команды CMP все четыре арифметических флага получают какое-либо конкретное значение — либо 0, либо 1
правильно ли я понимаю результаты выполненного Вами эксперимента, что флаг C во всех четырёх случаях был равен 0 ? (остался равен 0, либо стал равен 0)
[/q]
Да, правильно. Если флаг не упомянут - он устанавливается в ноль. Команда CMP устанавливает все флаги в соответствии с результатом операцией, т.е. все флаги "новые".

Не факт что SIMH прямо так уж на 100% корректен, но считается эталонным эмулятором PDP-11 (и проходит все перфоленточные тесты).
Mixa
Member


Откуда: Москва
Всего сообщений: 170
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
8 авг. 2009
BHIS после сравнения с 177777 смысла не имеет, нафига такой пример?
xoiss
Advanced Member


Всего сообщений: 711
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
30 окт. 2013
Mixa написал:
[q]
BHIS после сравнения с 177777 смысла не имеет, нафига такой пример?
[/q]
прочитайте чуть выше в моих комментах
Mixa
Member


Откуда: Москва
Всего сообщений: 170
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
8 авг. 2009
А погрепайте исходники целиком, там должны быть еще места со странным условием перехода после CMP #177777, Rn или CMP Rn, #177777
xoiss
Advanced Member


Всего сообщений: 711
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
30 окт. 2013
Mixa написал:
[q]
А погрепайте исходники целиком, там должны быть еще места со странным условием перехода после CMP #177777, Rn или CMP Rn, #177777
[/q]
... эххх, как я люблю эти выражения "грепать" и "гуглить" :)
поверьте, "прогрепал", дезассемблировал и даже разобрался, что и как там работает, и в итоге переложил на современный Си

короче, суть там была в следующем (ну, я так думаю)
- речь идёт о секьюрной процедуре в составе одной таски в RSX-11M-PLUS
- там используется арифметика по модулю 2^64-59
- вероятно (я так думаю) инженеры допускали возможность, что рано или поздно криптосистему могут ломануть с стороны "математики" — т.е. научатся по дайджесту (который хранится открыто) сравнительно быстро восстанавливать исходное число, которое есть свёртка кое-чего другого, что является вожделенным plain-текстом... в общем, они могли опасаться, что матмодель криптографической схемы не 100% надёжна, и лет через Х её сломают какие-нибудь Лобачевские с Келдышами
- возможно поэтому они внесли в схему небольшое изменение, а именно слегонца поломали правила арифметики по модулю
- такое "слегонца" приводит к тому, что дайджест получается равен другому значению - т.е. не тому, которое даёт классический вариант схемы от того же plain-текста...
... и, плюс к этому, в корне препятствует взлому системы со стороны "математики", оставляя лишь одну возможность - полный перебор вариантов

я так думаю, что именно поэтому в одну из вычислительных функций была внесена вот такая небольшая коррекция (просто вместо одной константы вставили заглушку)
могу поспорить, что она была внесена искусственно точечно, причём уже после того, как система была протестирована в "чистом" (не изменённом) варианте
// я нашёл в исходниках адаптеры для юнит-тестов — значит систему тестировали на каких-то тестовых векторах

стойкость системы от этого вряд ли ухудшилась, но зато стало невозможным ломать её высокой математикой
ну, как-то так


но, конечно, когда ревёрсишь код с машины, на которой 20 лет назад работал, то любое "не такое" место сразу, прежде всего, бросает тень подозрения на мою память и ясность сознания
... однако таки иногда это оказываются всё-таки разные баги, закладки, пасхалки и пр.
<<Назад  Вперед>> Страницы: 1 * 2
Печать
Полигон-2 »   Другие архитектуры »   Вопрос по машинным командам PDP-11
RSS

1 посетитель просмотрел эту тему за последние 15 минут
В том числе: 1 гость, 0 скрытых пользователей

Последние RSS
[Москва] LIQUID-Акция. Сливаются разъемы CF
МС7004 и 7004А на AT и XT
Пайка термотрубок
Проммать s478 PEAK 715VL2-HT ( Full-Size SBC)
Подскажите по 386 материке по джамперам.

Самые активные 5 тем RSS