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

User Tag List

Страница 2 из 10 ПерваяПервая 123456 ... ПоследняяПоследняя
Показано с 11 по 20 из 91

Тема: Тесты ВМ1

  1. #11
    Veteran Аватар для nzeemin
    Регистрация
    20.12.2005
    Адрес
    Москва
    Сообщений
    1,996
    Спасибо Благодарностей отдано 
    1,061
    Спасибо Благодарностей получено 
    1,224
    Поблагодарили
    478 сообщений
    Mentioned
    15 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Не знаю, насколько это пригодится. Написал для этих тестов простейший загрузчик чтобы грузить их на БК "легально", без обходных манёвров. В аттаче готовые бинарники. По идее, можно даже в .wav сохранить и на реальной БК загрузить. Но результаты тестирования выдаются в порт 177566, который наверное мало у кого выведен наружу.

    Текст загрузчика (походу, моя первая программа в машкодах PDP-11):
    Код:
    ; Скопировать загрузчик 00200 байт с адреса 01000 на адрес 022000
    000000:	012700	MOV	#022000, R0
    	022000
    000004:	012701	MOV	#001000, R1
    	001000
    000010:	012702	MOV	#000100, R2
    	000100
    000014:	012120	MOV	(R1)+, (R0)+
    	077202	SOB	R2, $-2
    
    ; Продолжаем работу загрузчика уже на адресах 022000+
    000020:	000137	JMP	#022024
    	022024
    
    ;  Скопировать тест 020000 байт с адреса 02000 на адрес 000000
    000024:	005000	CLR	R0		; Этот код уже исполняется с адреса 022024
    	012701	MOV	#002000, R1
    000030:	002000
    	012702	MOV	#010000, R2
    000034:	010000
    	012120	MOV	(R1)+, (R0)+
    000040:	077202	SOB	R2, $-2
    
    ; Очистить PSW и запустить тест с адреса 0200
    000042:	005000	CLR	R0
    	106400	MTPS	R0
    000046:	000137	JMP	#000200
    	000200
    000052:
    Вложения Вложения

  2. #12
    Guru Аватар для svofski
    Регистрация
    20.06.2007
    Адрес
    С.-Петербург
    Сообщений
    4,116
    Спасибо Благодарностей отдано 
    792
    Спасибо Благодарностей получено 
    657
    Поблагодарили
    403 сообщений
    Mentioned
    22 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    nzeemin, у меня вопрос про инструкцию MARK. Все доки, которые я видел, говорят, что первым делом она делает SP = SP + 2xNNN. А по логике теста 791401 вроде бы выходит, что SP = PC + 2xNNN. Подсмотрел в сорцы bkbtl и увидел тоже SP = PC + 2xNNN (если правильно понял). Есть этому какое-то объяснение?

    И большое спасибо за опенсорсенье bkbtl!
    Больше игр нет

  3. #13
    Guru
    Регистрация
    24.01.2008
    Адрес
    Уфа
    Сообщений
    3,847
    Спасибо Благодарностей отдано 
    84
    Спасибо Благодарностей получено 
    229
    Поблагодарили
    167 сообщений
    Mentioned
    9 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Всё правильно, инструкция MARK размещается только в стеке.

  4. #14
    Guru
    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    7,842
    Спасибо Благодарностей отдано 
    654
    Спасибо Благодарностей получено 
    1,814
    Поблагодарили
    1,043 сообщений
    Mentioned
    22 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Извините за злостный оффтоп, но не могу удержаться - 580е сообщение svofski про 1801, про что же будет 1801е?

  5. #15
    Veteran Аватар для nzeemin
    Регистрация
    20.12.2005
    Адрес
    Москва
    Сообщений
    1,996
    Спасибо Благодарностей отдано 
    1,061
    Спасибо Благодарностей получено 
    1,224
    Поблагодарили
    478 сообщений
    Mentioned
    15 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от svofski Посмотреть сообщение
    nzeemin, у меня вопрос про инструкцию MARK. Все доки, которые я видел, говорят, что первым делом она делает SP = SP + 2xNNN. А по логике теста 791401 вроде бы выходит, что SP = PC + 2xNNN. Подсмотрел в сорцы bkbtl и увидел тоже SP = PC + 2xNNN (если правильно понял). Есть этому какое-то объяснение?
    Когда я работал по этим тестам, инструкцию MARK пришлось исправлять -- см. svn revision 118.
    Насколько я помню, руководствовался я описанием процессора 1801ВМ2 от Alex_K, а именно:
    Алгоритм: SP := PC + 2 * NN; PC := R5; R5 := (SP)+
    Описание: Эта команда используется для облегчения выхода из подпрограммы, заносящей в стек параметры. Команда MARK восстанавливает указатель стека во время выхода из подпрограммы. Под восстановлением указателя стека подразумевается загрузка в него нового содержимого, которое указывало бы на последнюю заполненную ячейку стека перед тем, как возникла необходимость записи в стек N параметров.
    Вот ещё описание команды:
    http://www.mailcom.com/bk0010/mark.shtml

  6. #16
    Guru Аватар для svofski
    Регистрация
    20.06.2007
    Адрес
    С.-Петербург
    Сообщений
    4,116
    Спасибо Благодарностей отдано 
    792
    Спасибо Благодарностей получено 
    657
    Поблагодарили
    403 сообщений
    Mentioned
    22 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    b2m, угу. Но в родных мануалах была опечатка, значит.
    http://simh.trailing-edge.com/semi/ucode/j11/j11.mcr
    Это сорцы микрокода J11, тут PC+2xnnn. То же самое и в сорцах simh. А вот POP-11, который я считал полностью работоспособным, содержит ошибки. Да и не одну. Вопрос снят.


    ivagor, lol
    Больше игр нет

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

  8. #17
    Guru Аватар для svofski
    Регистрация
    20.06.2007
    Адрес
    С.-Петербург
    Сообщений
    4,116
    Спасибо Благодарностей отдано 
    792
    Спасибо Благодарностей получено 
    657
    Поблагодарили
    403 сообщений
    Mentioned
    22 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    А что за вектор по адресу 000042? После каждой итерации тест норовит его дернуть, если он не пустой.
    Больше игр нет

  9. #18
    Veteran Аватар для nzeemin
    Регистрация
    20.12.2005
    Адрес
    Москва
    Сообщений
    1,996
    Спасибо Благодарностей отдано 
    1,061
    Спасибо Благодарностей получено 
    1,224
    Поблагодарили
    478 сообщений
    Mentioned
    15 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от svofski Посмотреть сообщение
    А что за вектор по адресу 000042? После каждой итерации тест норовит его дернуть, если он не пустой.
    Что-то не помню такого. Речь про который тест?

  10. #19
    Guru Аватар для svofski
    Регистрация
    20.06.2007
    Адрес
    С.-Петербург
    Сообщений
    4,116
    Спасибо Благодарностей отдано 
    792
    Спасибо Благодарностей получено 
    657
    Поблагодарили
    403 сообщений
    Mentioned
    22 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    401, но в общем-то это несущественно. Просто любопытство.
    Больше игр нет

  11. #20
    Guru Аватар для svofski
    Регистрация
    20.06.2007
    Адрес
    С.-Петербург
    Сообщений
    4,116
    Спасибо Благодарностей отдано 
    792
    Спасибо Благодарностей получено 
    657
    Поблагодарили
    403 сообщений
    Mentioned
    22 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Можно сказать, два года ловил ошибку (хотя конечно же, два года я ничего не делал и потом недельку половил ошибку, но все же). Оказалось, что у меня была ошибка в инструкции SWAB: вместо поля адреса назначения, как положено для однооперандных инструкций, бралось поле адреса источника. Оно бы и ладно, тесты должны такие вещи вылавливать тут же, но почему-то 791401 проходил без ошибок, хотя тест SWAB там есть. Но, все тесты SWAB в нем проводятся над регистром R3. Код такой инструкции 00 03 03. Часть кода операции совпадала с выбранным регистром в поле назначения. То есть в дейтсвительности вышло так, что независимо от реального операнда всегда исполнялась SWAB R3 и именно SWAB R3 проверяется в тестах. Бетон.
    Больше игр нет

Страница 2 из 10 ПерваяПервая 123456 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Тесты железа
    от Almaz в разделе Софт
    Ответов: 3
    Последнее: 18.03.2006, 02:33

Ваши права

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