User Tag List

Страница 150 из 227 ПерваяПервая ... 146147148149150151152153154 ... ПоследняяПоследняя
Показано с 1,491 по 1,500 из 2264

Тема: Особенности процессоров и устройств архитектуры PDP-11. Тесты. Диагностика.

  1. #1491

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

    По умолчанию

    Цитата Сообщение от Vslav Посмотреть сообщение
    и при добавлении nop-ов просто происходит предвыборка nop-ов.
    А при одном NOP-е происходит и предвыборка команды MOV​ с параметром или без параметра?

  2. #1492

    Регистрация
    31.03.2013
    Адрес
    г. Киев
    Сообщений
    2,413
    Спасибо Благодарностей отдано 
    132
    Спасибо Благодарностей получено 
    759
    Поблагодарили
    353 сообщений
    Mentioned
    88 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    Для проверки прерывания при команде CALL можно прогнать такой тест:
    []
    Итого:
    - выбирается инструкция call
    - выбирается смещение call
    - выбирается следующее слово смещением
    - в стек записывается адрес возврата (слово следующее за call)
    - выбирается инструкция по новому значению PC (адрес вызванной процедуры)
    - выбирается следующее слово инструкции вызванной процедуры PC+2
    - возникает исключение
    - выбирается PSW по адресу 000006
    - old PSW-> -(SP)
    - old PC (равный первой инструкции вызванной процедуры) -> -(SP)
    - выбирается PC по адресу 000004
    - выбирается первая инструкция обработчика исключения (rti)
    - выбираетсмя следующее слово за rti
    - (SP)+ -> PC
    - (SP)+ -> PSW
    - возобновляется исполнение первой инструкции вызванной процедуры (nop)

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

    Цитата Сообщение от Alex_K Посмотреть сообщение
    А при одном NOP-е происходит и предвыборка команды MOV​ с параметром или без параметра?
    Без, это просто предвыборка двух слов на входе новой вызванной процедуры, эти инструкции не исполняются до возврата из исключения, только предвыбираются.

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

    Цитата Сообщение от Patron Посмотреть сообщение
    Тогда можно проверить, как отработает IOT после MOV #2, SP :
    []
    Процессор шизанулся, mov #2, SP, исключения не вызвала, IOT отработал как обычно, за исключением того что сохранил PC по 177776, предвыбрал первую и инструкцию обработчика, но тут же попытался трапнуться по 4 вектору (выбрал PSW по 000006) и завис на сохранении в стеке по 177774.

  3. #1493

    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,806
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    147
    Поблагодарили
    78 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    .

    В общем ситуация ясна, при любом значении SP меньше 402 ( или меньше 404 в случае прерываний ) - прерывания и вызовы подпрограмм приводят к YELLOW TRAP после выполнения команды.
    Последний раз редактировалось Patron; 01.02.2016 в 00:41.

  4. #1494

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

    По умолчанию

    Цитата Сообщение от Vslav Посмотреть сообщение
    и завис на сохранении в стеке по 177774
    Интересно, почему он не попытался перейти в HALT-режим, или ситуация двойного зависания не возникла?

  5. #1495

    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,806
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    147
    Поблагодарили
    78 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    .

    Осталось узнать, произойдёт ли YELLOW TRAP при возникновении прерываний по вектору 4 :

    Код:
    	.ASect
    	. = 0
    	Jmp	@#Next			// Точка входа пульта.
    
    	. = 4
    	.Word	Trap4
    	.Word	340
    	. = 10
    	.Word	Trap4
    	.Word	340
    
    	. = 24
    	.Word	Start			// Адрес старта.
    	.Word	340
    Trap4:
    	RtI
    Start:
    	Mov	#400, SP
    	MFPT				// Начнём с TrapTo_10
    	Nop
    	Jmp	R0
    	Nop
    	Tst	@#1
    	Nop
    Next:
    	Wait
    - - - Добавлено - - -

    Но и ситуацию с аппаратными прерываниями тоже полезно уточнить :

    Код:
    	.ASect
    	. = 0
    	Jmp	@#Next			// Точка входа пульта.
    
    	. = 4
    	.Word	Trap4
    	.Word	340
    
    	. = 24
    	.Word	Start			// Адрес старта.
    	.Word	340
    
    	.=62
    	.Word	Trap4
    	.Word	340
    Trap4:
    	Nop
    	RtI
    Start:
    	Mov	#400, SP
    	BiS	#100, @#177564
    	Nop
    	Nop
    	Nop
    Next:
    	Wait
    - - - Добавлено - - -

    Ещё одна "пушащая" команда: MFPI, но не стоит забывать и про RETURN :

    Код:
    	.ASect
    	. = 0
    	Jmp	@#Next			// Точка входа пульта.
    
    	. = 4
    	.Word	Trap4
    	.Word	340
    
    	. = 24
    	.Word	Start			// Адрес старта.
    	.Word	340
    
    Trap4:
    	Nop
    	RtI
    Start:
    	Mov	#200, SP
    	Nop
    
    	MFPI	(PC)+
    	Nop
    	Nop
    
    	Mov	#Next, -(SP)
    	Nop
    	Nop
    
    	Return
    	Nop
    Next:
    	Nop
    	Wait
    Последний раз редактировалось Patron; 01.02.2016 в 03:01.

  6. #1496

    Регистрация
    27.05.2009
    Адрес
    СССР, Новосибирск
    Сообщений
    5,850
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    289
    Поблагодарили
    233 сообщений
    Mentioned
    30 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    То есть на ВМ3 получается недозащита стека как в E11 ошибочно сделано для процов где есть защита стека: при падении ниже 400 - трап, при невозможности записать в стек - падает.
    PDP-11/83, Электроника МС0511 (УК-НЦ), DECserver 90M
    Q-Bus: H9278-A, DLV11-J, DZQ11, DHV11, DELQA-M, LPV11, CQD-420/TM, DRV11
    PMI: KDJ11-BF, MSV11-JE
    VT220, CM7209

  7. #1497

    Регистрация
    31.03.2013
    Адрес
    г. Киев
    Сообщений
    2,413
    Спасибо Благодарностей отдано 
    132
    Спасибо Благодарностей получено 
    759
    Поблагодарили
    353 сообщений
    Mentioned
    88 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    .
    Осталось узнать, произойдёт ли YELLOW TRAP при возникновении прерываний по вектору 4 :
    По mfpt возникает дополнительное исключение по 000004, сразу перед первой инструкцией обработчика
    []

    По jmp R0 тоже возникает дополнительное исключение по 000004, любопытно что не повторяется бесконечно
    []

    По нечетному адресу также возникает одно дополнительное исключение 000004
    []

    По аппаратному прерыванию тоже возникает исключение 000004
    []

    MFPI вызывает исключение 000004
    []

    Обращение к стеку через -(SP) вызывает исключение 000004
    []

  8. #1498

    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,806
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    147
    Поблагодарили
    78 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vslav Посмотреть сообщение
    Обращение к стеку через -(SP) вызывает исключение 000004
    А такое мы можем устроить и в HALT-моде :

    Код:
    	.ASect
    	. = 0
    	Jmp	@#Next		// Точка входа пульта.
    
    	. = 4
    	.Word	Trap4
    	.Word	340
    
    	. = 24
    	.Word	Start		// Адрес старта.
    	.Word	340
    
    Trap4:
    	RtI
    	Nop
    Start:
    	Mov	#400, SP
    
    	HALT			// Установить HALT-моду
    
    	Nop
    	Wait	
    
    Next:
    	Clr	-(SP)
    	Nop
    	Nop
    	Wait

  9. #1499

    Регистрация
    31.03.2013
    Адрес
    г. Киев
    Сообщений
    2,413
    Спасибо Благодарностей отдано 
    132
    Спасибо Благодарностей получено 
    759
    Поблагодарили
    353 сообщений
    Mentioned
    88 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    А такое мы можем устроить и в HALT-моде :
    Можем и устроим, только вечером - сейчас работу работаем, хобби пока в коробку убрал и стол освободил
    Последний раз редактировалось Vslav; 01.02.2016 в 14:15.

  10. #1500

    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,806
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    147
    Поблагодарили
    78 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    .

    Запуск прошивки 377 вскрыл пласт проблем в эмуляции контроллера DW - 1) никак не эмулируется влияние обращений к 174006 на текущую позицию в буфере данных ; 2) никак не эмулируется влияние чтения по адресу 174016 на текущую позицию в буфере данных.

    Для установления истины написан тест TDW1.SAV


    Результат первого запуска в эмуляторе ДВК такой:

    Код:
    .RU TDW1
     
    0
    1
    2
     
    3
    4
    5
     
    6
    7
    8
     
    9
    10
    11
     
    0
    1
    2

    Результат повторного запуска такой:

    Код:
    .RU TDW1
     
    0
    1
    2
     
    3
    4
    5
     
    6
    7
    8
     
    9
    10
    11
     
    253
    254
    255

Страница 150 из 227 ПерваяПервая ... 146147148149150151152153154 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Тесты ВМ1
    от nzeemin в разделе БК-0010/0011
    Ответов: 90
    Последнее: 05.10.2018, 12:24
  2. Диагностика
    от dk_spb в разделе Корвет
    Ответов: 31
    Последнее: 21.07.2017, 23:52
  3. Проблема двух процессоров.
    от Mikka_A в разделе Несортированное железо
    Ответов: 21
    Последнее: 28.11.2006, 17:04

Ваши права

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