Объявление форума |
Если пользуетесь личными сообщениями и получили по электронной почте оповещение о новом письме, не отвечайте, пожалуйста, почтой. Зайдите на форум и ответьте отправителю через ЛС. |
Полигон-2 » Другие архитектуры » Вопрос по машинным командам PDP-11 |
<<Назад Вперед>> | Страницы: 1 2 | Печать |
xoiss
Advanced Member
Всего сообщений: 711 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 30 окт. 2013 |
Привет! Если кто разбирается, или, ещё лучше, обладает возможностью оперативно проверить, то прошу подсказать результат выполнения примера на ассемблере (машинных кодах) PDP-11. Пример 1 (пока один, но, возможно, будут добавляться): CMP #177777, R0 BHIS label Вопрос 1: верно ли, что при любом значении R0 здесь всегда будет происходить ветвление? // я думаю, что всегда, т.к. 0xFFFF выше-или-равно любого беззнакового 16-разрядного числа // что меня смущает? ну, если это так, то я нашёл багу — что было бы, вообще, подозрительно странно // да, мнемоника "BHIS" == "BCC", если что Спасибо! |
MM
Advanced Member
Откуда: Павловский Посад Мск.обл. Всего сообщений: 3418 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 2 авг. 2013 |
Мурмулятор ДВК господина Патрона и DESS.SAV V5.00 из собрания господина Хобота в помощь. Эксперементировать в адресе 000400 , переключаясь в пульт и обратно в DESS. Почему именно Мурмулятор - а где Вы видели ДВК с QWERT клавой ?! |
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 написал: Если заглянуть в прошу подсказать результат выполнения примера на ассемблере (машинных кодах) PDP-11описание команд PDP-11 - результат можно попробовать предсказать. |
xoiss
Advanced Member
Всего сообщений: 711 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 30 окт. 2013 |
alecv написал: в результате выполнения команды CMP все четыре арифметических флага получают какое-либо конкретное значение — либо 0, либо 1 xoiss Сравнение - это вычитание (Compares values by subtracting the destination from the source) правильно ли я понимаю результаты выполненного Вами эксперимента, что флаг 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_ написал: Да, спасибо за ссылку. Описания у меня есть, причём с подробными примерами. xoiss написал:Если заглянуть в описание команд PDP-11 - результат можно попробовать предсказать. прошу подсказать результат выполнения примера на ассемблере (машинных кодах) PDP-11 Кроме того, машкоды PDP-11 я выучил ещё в 1991-1992 г.г. ... просто давно не практиковался именно с этим ассемблером, а тут вдруг возникла экстранеобходимость. Осваивать SimH, командную строку и тулчейны в RSX-11M уж очень не хочется, т.к. задача однократная. ... а какого-либо ДВК или УК-НЦ под рукой нет, чтоб проверить — вот и спросил, если у кого натуральная машинка есть, то из-под монитора это проверить 2-3 минуты. Собсна, по описаниям то я вопросов не имею — в них русско-английским по белому всё ясно написано ... мой вопрос был - так, на всякий случай, вдруг я что-то концептуально упустил. Впрочем, пока суть да дело, выяснилось, что 99.9% там код сознательно исказили, чтоб бага была... ... но зачем - пока не понятно. |
xoiss
Advanced Member
Всего сообщений: 711 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 30 окт. 2013 |
MM написал: спасибо! Мурмулятор ДВК господина Патрона и DESS.SAV V5.00 из собрания господина Хобота в помощь. |
alecv
Advanced Member
Откуда: Санкт-Петербург Всего сообщений: 5545 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 5 окт. 2004 |
xoiss написал: Да, правильно. Если флаг не упомянут - он устанавливается в ноль. Команда CMP устанавливает все флаги в соответствии с результатом операцией, т.е. все флаги "новые". в результате выполнения команды CMP все четыре арифметических флага получают какое-либо конкретное значение — либо 0, либо 1 Не факт что SIMH прямо так уж на 100% корректен, но считается эталонным эмулятором PDP-11 (и проходит все перфоленточные тесты). |
Mixa
Member
Откуда: Москва Всего сообщений: 170 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 8 авг. 2009 |
BHIS после сравнения с 177777 смысла не имеет, нафига такой пример? |
xoiss
Advanced Member
Всего сообщений: 711 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 30 окт. 2013 |
Mixa написал: прочитайте чуть выше в моих комментах BHIS после сравнения с 177777 смысла не имеет, нафига такой пример? |
<<Назад Вперед>> | Страницы: 1 2 | Печать |
Полигон-2 » Другие архитектуры » Вопрос по машинным командам PDP-11 |
1 посетитель просмотрел эту тему за последние 15 минут |
В том числе: 1 гость, 0 скрытых пользователей |
Последние | |
[Москва] LIQUID-Акция. Сливаются разъемы CF МС7004 и 7004А на AT и XT Пайка термотрубок Проммать s478 PEAK 715VL2-HT ( Full-Size SBC) Подскажите по 386 материке по джамперам. |
Самые активные 5 тем | |