User Tag List

Страница 155 из 174 ПерваяПервая ... 151152153154155156157158159 ... ПоследняяПоследняя
Показано с 1,541 по 1,550 из 1740

Тема: Реверс-инжиниринг УКНЦ (1515ХМ1&2, 1801ВП1, 1801ВМ2)

  1. #1541

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,403
    Спасибо Благодарностей отдано 
    1,703
    Спасибо Благодарностей получено 
    2,223
    Поблагодарили
    875 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Добавил пукнт 6 в заметки. Теперь можно проверить деление на ноль в HALT-режиме с запрещенными прерываниями, и убедиться, что деление портит CPSW.

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

    Цитата Сообщение от Alex_K Посмотреть сообщение
    Ох! Очень интересно! Получается, что при арифметическом переполнении результат PSW обязательно копируется в CPSW, даже несмотря на HALT с запрещёнными прерываниями. Надо обязательно проверить.
    Да, именно это я и хотел предложить)

    А все потому, что приляпывали деление, когда вся основная структура процессора уже была сформирована.
    Нет проверки V? Не беда, проверим через Z.
    Нет блока обнуления N и Z. Тоже ерунда, занулим через константу. Нет констатны? Возьмем из блока прерываний. CPSW не обновится... тогда принудительно обновим CPSW. А... тогда в HALT-режиме с запрещенными прерываниями испортится CPSW. Да, плевать, кто заметит)
    Последний раз редактировалось Titus; 05.12.2020 в 17:50.

  2. #1542

    Регистрация
    13.12.2013
    Адрес
    г. Санкт-Петербург
    Сообщений
    3,072
    Спасибо Благодарностей отдано 
    37
    Спасибо Благодарностей получено 
    81
    Поблагодарили
    65 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex_K Посмотреть сообщение
    В пультовом отладчике.
    R7/000000

  3. #1543

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

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Да, именно это я и хотел предложить)
    Ну что ж, диагноз товарища Саахова полностью подтвердился.
    Сама программа, запускается с RS=600 (HALT с запрещёнными прерываниями):
    Код:
    1000 012700 MOV #777,R0
    1002 000777
    1004 000034 WCPS
    1006 012703 MOV #1,R3
    1010 000001
    1012 005000 CLR R0
    1014 071303 DIV R3,R3
    1016 000024 RCPS
    1020 106701 MFPS R1
    1022 000000 HALT
    При значении R3=1 происходит переполнение, а при R3=0 - деление на ноль. Если R3=0177777, то операция завершается нормально. При переполнении и делении на ноль CPSW изменяется, при нормальном завершении остаётся неизменным.

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

    Цитата Сообщение от MiX Посмотреть сообщение
    R7/000000
    А на каком тесте?

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

    Цитата Сообщение от Titus Посмотреть сообщение
    1. На проверку флага V в PLM проверки условий (PLM_BRA), видимо, уже не хватало места, и проверку флага V сделали через проверку флага Z (PSW & 0x02).
    А вот с этим я не согласен. Используется четыре флага - NZVC.
    N = 0x08, 010
    Z = 0x04, 004
    V = 0x02, 002
    C = 0x01, 001
    Так что проверяют именно флаг переполнения V, и флаг Z тут вообще не при чём.

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

    Titus(05.12.2020)

  4. #1544

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,403
    Спасибо Благодарностей отдано 
    1,703
    Спасибо Благодарностей получено 
    2,223
    Поблагодарили
    875 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex_K Посмотреть сообщение
    А вот с этим я не согласен. Используется четыре флага - NZVC.
    N = 0x08, 010
    Z = 0x04, 004
    V = 0x02, 002
    C = 0x01, 001
    Так что проверяют именно флаг переполнения V, и флаг Z тут вообще не при чём.
    Да нет, не в том дело.
    Чтобы проверить флаг V, делается ACC=PSW&0x02.
    Затем уже по результату этой операции устанавливается или не устанавливается флаг Z. На регистр PSW это никак не влияет, потому что результат в PSW обратно не копируется.
    А потом уже по этому флагу Z принимается решение, туда идем, или сюда.
    Просто в матрице PLM_BRA нет комбинаций, позволяющих проверить отдельно флаг V. Но есть комбинации, позволяющие проверить флаг Z. Поэтому и едет поезд в Киев через Магадан.

  5. #1545

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

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Просто в матрице PLM_BRA нет комбинаций, позволяющих проверить отдельно флаг V. Но есть комбинации, позволяющие проверить флаг Z. Поэтому и едет поезд в Киев через Магадан.
    Так при копировании в аккумулятор могут только установится флаги N и Z. Да и то, как я понимаю, флаги временные, вне PSW.

  6. #1546

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,403
    Спасибо Благодарностей отдано 
    1,703
    Спасибо Благодарностей получено 
    2,223
    Поблагодарили
    875 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex_K Посмотреть сообщение
    Так при копировании в аккумулятор могут только установится флаги N и Z. Да и то, как я понимаю, флаги временные, вне PSW.
    Правильно. Что тут противоречит моему описанию? )
    Еще раз на пальцах.
    В регистре PSW имеем установленный бит V. T.e. 0x0002.
    Делаем ACC = PSW & 0x0002.
    Если в результате ACC = 0 (бит V не был установлен в регистре PSW), то устанавливается флаг Z.
    Если в результате ACC = 2 (бит V был установлен в регистре PSW), то флаг Z обнуляется.

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

  8. #1547

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

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Правильно. Что тут противоречит моему описанию? )
    Так если при копировании в аккумулятор не устанавливается флаг V, то вышли как могли. А почему нет комбинаций, которые проверяют флаг V, вон условных переходов BRx целая куча?

  9. #1548

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,403
    Спасибо Благодарностей отдано 
    1,703
    Спасибо Благодарностей получено 
    2,223
    Поблагодарили
    875 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex_K Посмотреть сообщение
    Так если при копировании в аккумулятор не устанавливается флаг V, то вышли как могли. А почему нет комбинаций, которые проверяют флаг V, вон условных переходов BRx целая куча?
    Флаг V и не должен устанавливаться. Устанавливается флаг Z по которому определяется, был ли установлен флаг V.

    Видимо, потому что сначала закодировали матрицу PLM_BRA, а потом оказалось, что расширенной арифметике этого не хватает.
    Для команды SOB была написана проверка флага Z. Ей и воспользовались.

    Напомню:

    Код:
    NA4 = 1, NA5 = 1:					// Для команды выборки инструкции 0x01
    	
    
    0.000.x00.1xx			BR
    0.000.xx1.1xx   Z=1		BEQ, BLE
    x.000.x01.1xx   Z=1		BEQ, BLOS
    1.000.x11.0xx   C=0		BCC
    1.000.xx1.1xx   C=1		BCS, BLOS
    1.000.x00.0xx   N=0		BPL
    1.000.x00.1xx   N=1		BMI
    1.000.x10.0xx   V=0		BVC
    1.000.x10.1xx   V=1		BVS
    0.000.x10.0xx   V=1,N=1		BGE
    0.000.x10.0xx   V=0,N=0		BGE
    0.000.x1x.1xx   V=1,N=0		BLT, BLE
    0.000.x1x.1xx   V=0,N=1		BLT, BLE
    
    
    NA4 = 1:						// Для команды выборки инструкции 0x01 и других(?)
    							// Проверка NA5=1 упразднена, т.к. пересечение с командой SOB тоже проверяет Z=0
    
    0.000.x01.0xx   Z=0,		BNE   
    1.000.x01.0xx   C=0,Z=0		BHI
    0.000.x11.0xx   V=1,Z=0,N=1	BGT
    0.000.x1x.0xx   V=0,Z=0,N=0	BGT, BGE
    
    
    NA4 = 0, NA5 = 1:					// RTI, RTT
    
    BIT_13 & BIT_14 & BIT_15 = 1
    
    
    NA4 = 1, NA5 = 0:					// Для команды SOB, DIV
    
    Z=0
    
    
    NA4 = 0, NA5 = 0:					// Для команды CODE030, FIS?
    
    N=0

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

    Alex_K(05.12.2020)

  10. #1549

    Регистрация
    13.12.2013
    Адрес
    г. Санкт-Петербург
    Сообщений
    3,072
    Спасибо Благодарностей отдано 
    37
    Спасибо Благодарностей получено 
    81
    Поблагодарили
    65 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex_K Посмотреть сообщение
    А на каком тесте?
    В этом.

  11. #1550

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

    По умолчанию

    Цитата Сообщение от MiX Посмотреть сообщение
    Тут надо ещё смотреть значение R6 до выполнения и после выполнения, желательно настроить вектор 4, чтобы узнать, был ли TRAP4.

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

    Цитата Сообщение от MiX Посмотреть сообщение
    Начинать желательно с этого.

Страница 155 из 174 ПерваяПервая ... 151152153154155156157158159 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Ответов: 32
    Последнее: 18.12.2024, 18:19
  2. Реверс-инжиниринг игры Boovie
    от Oleg N. Cher в разделе Программирование
    Ответов: 41
    Последнее: 09.01.2022, 23:07
  3. Реверс инжиниринг печатной платы
    от Filin в разделе Несортированное железо
    Ответов: 36
    Последнее: 11.03.2018, 22:46
  4. Куплю 1515ХМ1-6006, 1515ХМ1−6008
    от moxjemi в разделе Барахолка (архив)
    Ответов: 3
    Последнее: 10.01.2012, 17:23
  5. 1801ВМ2 А и Б
    от dk_spb в разделе ДВК, УКНЦ
    Ответов: 2
    Последнее: 03.05.2010, 11:51

Ваши права

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