Важная информация

User Tag List

Страница 2 из 2 ПерваяПервая 12
Показано с 11 по 16 из 16

Тема: Инструкция CLR

  1. #11
    Veteran Аватар для Manwe
    Регистрация
    06.12.2017
    Адрес
    г. Москва
    Сообщений
    1,722
    Спасибо Благодарностей отдано 
    167
    Спасибо Благодарностей получено 
    403
    Поблагодарили
    256 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vslav Посмотреть сообщение
    Я реверсил более новую версию ВМ
    Вопрос к гуру: как ВМ2 обрабатывает инструкции EIS с нечётными регистрами? Изначально они (кроме ASH) задуманы для работами с парами чётный & нечётный регистр. Но возможно подать аргументом нечётный. В сети об этом информация неполная даже для PDP-11. А хочется сделать правильный эмулятор расширенной арифметики для БК. Чтобы с УКНЦ, ДВК и СОЮЗ-НЕОН одинаково работало.
    Такие вот интересные случаи бывают с нечётными регистрами:
    ASHC #-n,R1 должно работать как рулонный сдвиг, но вот вопрос: с участием бита C или без?
    MUL #n,R1 выставляется ли бит V если результат не умещается в 16 бит (по логике должен, но поверхностный эксперимент S_V_B на УКНЦ показал, что нет)?
    DIV #n,R1 вообще не нашёл описания как это работает
    manwe.pdp-11.ru

  2. #12
    Guru
    Регистрация
    07.10.2007
    Адрес
    п.Пудость Гатчинского р-на Лен.обл.
    Сообщений
    3,208
    Спасибо Благодарностей отдано 
    346
    Спасибо Благодарностей получено 
    607
    Поблагодарили
    399 сообщений
    Mentioned
    46 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Manwe Посмотреть сообщение
    как ВМ2 обрабатывает инструкции EIS с нечётными регистрами?
    Когда-то я выкладывал описание 1801ВМ2 - здесь. Там подробно описаны алгоритмы исполнения команд.

  3. #13
    Veteran Аватар для Manwe
    Регистрация
    06.12.2017
    Адрес
    г. Москва
    Сообщений
    1,722
    Спасибо Благодарностей отдано 
    167
    Спасибо Благодарностей получено 
    403
    Поблагодарили
    256 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex_K Посмотреть сообщение
    Когда-то я выкладывал описание 1801ВМ2 - здесь. Там подробно описаны алгоритмы исполнения команд.
    Спасибо, очень интересно - нигде не встречал такого описания команды DIV:
    Если в качестве R используется нечётный регистр, то старшая часть 32-разрядного делимого будет повторять его младшую часть, т.е. фактически выполняется операция ((R << 16) or R) и после завершения операции деления сохранится только частное.
    В моей процедуре, эмулирующей DIV, почти так и получалось, только в ответ записывался остаток, а не частное (потому что общий код с ASCH, где при выводе ответа в приоритете младшие 16 бит). Исправил.


    Содержимое регистров R и R or 1 копируется в 32-разрядную переменную и сдвигается влево или вправо на количество позиций, определяемое счётчиком сдвига.
    Заодно описание команды ASHC для нечётного регистра помогло понять туманную и нечёткую фразу их другого описания "Если номер регистра - приемника нечетный, правый сдвиг становится вращением". Опять же, в моей процедуре так получается само собой, но "вращение" из описания заставило задуматься о бите C.
    Последний раз редактировалось Manwe; 16.11.2018 в 13:50.
    manwe.pdp-11.ru

  4. #14
    Veteran Аватар для Manwe
    Регистрация
    06.12.2017
    Адрес
    г. Москва
    Сообщений
    1,722
    Спасибо Благодарностей отдано 
    167
    Спасибо Благодарностей получено 
    403
    Поблагодарили
    256 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex_K Посмотреть сообщение
    Когда-то я выкладывал описание 1801ВМ2 - здесь. Там подробно описаны алгоритмы исполнения команд.
    Одну вещь не очень понял: как вычисляется адрес в командах
    METKA1: CLR X(PC)
    METKA2: CLR @X(PC)
    Каков адрес очищаемой ячейки памяти? METKA+X+2 или METKA+X+4 ?
    То есть в момент вычисления адреса PC всё ещё указывает на аргумент, или уже на следующую команду?
    manwe.pdp-11.ru

  5. #15
    Veteran
    Регистрация
    22.03.2018
    Адрес
    г. Усть-Каменогорск, Казахстан
    Сообщений
    1,396
    Спасибо Благодарностей отдано 
    86
    Спасибо Благодарностей получено 
    170
    Поблагодарили
    136 сообщений
    Mentioned
    21 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Как дела с Last Mission?
    Везде конечно не успеешь.. можно жить и без нечетных регистров..
    я сделал вывод спрайтов ASH.. все работает..

  6. #16
    Guru
    Регистрация
    07.10.2007
    Адрес
    п.Пудость Гатчинского р-на Лен.обл.
    Сообщений
    3,208
    Спасибо Благодарностей отдано 
    346
    Спасибо Благодарностей получено 
    607
    Поблагодарили
    399 сообщений
    Mentioned
    46 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Manwe Посмотреть сообщение
    Одну вещь не очень понял: как вычисляется адрес в командах
    METKA1: CLR X(PC)
    METKA2: CLR @X(PC)
    Каков адрес очищаемой ячейки памяти? METKA+X+2 или METKA+X+4 ?
    То есть в момент вычисления адреса PC всё ещё указывает на аргумент, или уже на следующую команду?
    Во время вычисления адреса PC будет указывать уже на следующую команду. Поэтому METKA+X+4.

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

Страница 2 из 2 ПерваяПервая 12

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

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

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

Похожие темы

  1. Инструкция к СЮБОРу
    от Arigato в разделе Nintendo
    Ответов: 4
    Последнее: 25.07.2021, 10:12
  2. Чебоксарская инструкция для Дельта-С.
    от Slava95 в разделе Пресса
    Ответов: 9
    Последнее: 23.11.2014, 20:13
  3. БК-0010-01 инструкция по эксплуатации
    от Raydac в разделе БК-0010/0011
    Ответов: 1
    Последнее: 16.12.2009, 11:32
  4. Ответов: 35
    Последнее: 01.12.2006, 10:06

Ваши права

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