User Tag List

Страница 3 из 8 ПерваяПервая 1234567 ... ПоследняяПоследняя
Показано с 21 по 30 из 78

Тема: Разбираюсь с ассемблером К1801ВМ1

  1. #21
    Member
    Регистрация
    01.11.2013
    Адрес
    г. Красноярск
    Сообщений
    45
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Ал-р, во вложении схема блока с описанием.
    А также мои домыслы по поводу работы некоторых узлов этого блока
    РПЗУ идёт как раз с 000 000. ОЗУ где-то вдали...

    Судя по установленным на блоке перемычкам (установлены все, кроме А4), РПЗУ находится в адресах 000 000 ... 037 776.
    ОЗУ - в адресах 110 000 ... 117 776.
    Вложения Вложения
    Последний раз редактировалось darkstar; 23.12.2013 в 05:27.
    Нет ничего более вечного чем то, что обмотано синей изолентой

  2. #22
    Activist
    Регистрация
    11.08.2009
    Адрес
    Минск
    Сообщений
    234
    Спасибо Благодарностей отдано 
    21
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Важный Рис.2 из документации с распределением адресного пространства очень информативен. Область векторов в ПЗУ и стек в середине адресного пространстранства на мой взгляд БК-шника выглядят странно. Интересная схема с использованием 588ВГ2 - просьба сделать скан листа со списком микросхем.

  3. #23
    Member
    Регистрация
    01.11.2013
    Адрес
    г. Красноярск
    Сообщений
    45
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Список микросхем идёт дальше в b10-37_txt.zip
    на двух последних листах

    Что такое "скрытое" ОЗУ и РПЗУ мне не вполне понятно.
    Видимо при какой-то сервисной комбинации перемычек их адреса смещаются в эти области
    Последний раз редактировалось darkstar; 23.12.2013 в 10:41.
    Нет ничего более вечного чем то, что обмотано синей изолентой

  4. #24
    Activist
    Регистрация
    11.08.2009
    Адрес
    Минск
    Сообщений
    234
    Спасибо Благодарностей отдано 
    21
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Так "обрадовался" рис.2 что дальше и не пролистал
    В тексте описания указано что скрытые области используются при отладке - на начальном этапе нет смысла с ними разбираться.
    Предлагаю дальше идти по ПЗУ в последовательности которая происходит при включении: что там происходит после BR 400, какие подпрограммы выполняются и что они делают ...
    (и постепенно формировать дизассемблерный текст с програмными блоками и блоками данных)
    Последний раз редактировалось Ал-р; 23.12.2013 в 15:22.

  5. #25
    Member
    Регистрация
    01.11.2013
    Адрес
    г. Красноярск
    Сообщений
    45
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Мозги уже сносит этот ассемблерный код
    Там со старта идёт экспресс-проверка, какие блоки подключены и правильно ли они функционируют.
    Поскольку точно не известны адреса регистров блоков, и что они должны отвечать, то приходится буквально распутывать код.
    Результат распутывания с комментариями пишу на форуме http://www.radioscanner.ru/forum/topic46843-3.html
    Параллельно составляю дизассемблированный текст в Excel


    Хорошо.
    Уточняющие вопросы ещё будут

    ---------- Post added at 04:23 ----------

    Вот хотел ещё спросить - правильно ли я понимаю действие этих команд:
    011 340: MOV -(R1),@(SP)+ ; R1=R1-2. Число из ячейки с адресом R1 скопировать ячейку по адресу, который указан в ячейке с адресом из стека. SP=SP+2
    011 342: MOV @-(R3),013 300(R4) ; R3=R3-2. Число из ячейки, адрес которой указан в ячейке с адресом R3 скопировать в ячейку по адресу 013 300+R4
    011 346: MOV @(R0)+,(SP) ; число из ячейки, адрес которой указан в ячейке с адресом R0 скопировать ячейку по адресу из стека. R0=R0+2
    011 350: MOV (R3),@020 037(SP) ; число из ячейки по адресу R3 скопировать в ячейку по адресу 020 037+(SP)
    011 354: MOVB -(R3),(R4)+ ; R3=R3-2. Число из ячейки по адресу R3 скопировать в ячейку по адресу R4, для приёмника (R4) все биты старшего байта устанавливаются равными старшему биту младшего байта. R4=R4+2

    001 514: JSR PC,@001 524(R4) ; вызов подпрограммы по адресу 001 524, адрес возврата записывается в R4 (или адрес возврата взять из R4 ?)

    И ещё:
    001 264: JMP 000 764; переход на 000 764 ? Смущает отсутствие "@#". Или же это означает взять адрес перехода из ячейки 000 764 ?
    Миниатюры Миниатюры Нажмите на изображение для увеличения. 

Название:	PrtScr.JPG 
Просмотров:	467 
Размер:	64.2 Кб 
ID:	44701  
    Последний раз редактировалось darkstar; 24.12.2013 в 05:36.
    Нет ничего более вечного чем то, что обмотано синей изолентой

  6. #26
    Member
    Регистрация
    01.11.2013
    Адрес
    г. Красноярск
    Сообщений
    45
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    И вот ещё, что делает эта команда:
    032 060: JSR R4,PC
    Зачем переходить по адресу из PC?
    Единственное объяснение - это сохранить в R4 адрес 032 060+2
    Так?

    И опять же, по адресации:
    032 104: BIT #000 002,110446 ; проверить состояние битов ячейки по адресу 110446 с маской 000 002 ?
    код вот такой:
    032 104: 032 767
    032 106: 000 002
    032 110: 056 334

    и снова:
    032 126: MOV #000 203, 111 012 ; положить число 000 203 в ячейку 111 012 ?
    Последний раз редактировалось darkstar; 24.12.2013 в 07:54.
    Нет ничего более вечного чем то, что обмотано синей изолентой

  7. #27
    Activist
    Регистрация
    11.08.2009
    Адрес
    Минск
    Сообщений
    234
    Спасибо Благодарностей отдано 
    21
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    001264: JMP 000764; переход на 000 764 ? Смущает отсутствие "@#". Или же это означает взять адрес перехода из ячейки 000 764 ?
    JMP 000764 относительная адресация типа BR 000764 но так не получится, для BR это большое расстояние, поэтому поставили JMP
    = взять адрес перехода из ячейки 000764 было бы JMP (000764)

    ---------- Post added at 10:08 ---------- Previous post was at 09:58 ----------

    Цитата Сообщение от darkstar Посмотреть сообщение
    Таблица векторов вот такая:
    000 004 - подпрограмма обработки ошибки связи с внешним устройством.
    Если ЦП не получил сигнал /RPLY в ответ на /DIN, /DOUT в течении 64 тактов ("зависание"), то возникает это прерывание.
    Или же если была выполнена команда "HALT".
    (или если поступил сигнал IRQ1, но в нашем случае IRQ1 не используется).
    000 010 - подпрограмма обработки ошибки неверной команды.
    Если полученная команда не опознана, возникает это прерывание.
    000 034 - подпрограмма TRAP-менеджера.
    Возникает при программном выполнении команды TRAP.
    000 100 - подпрограмма обработки внешнего прерывания IRQ2.
    Сигнал "ГОТОВ" = 0 В вызывает это прерывание.
    Но чтобы сигнал сформировался, нужно записать 000 001 по адресу 060 340.
    000 270 - подпрограмма обработки внешнего прерывания IRQ3.
    Возникает, когда ИРПС принял очередной байт.
    000 340 - подпрограмма обработки прерывания от клавиатуры и валкодера.
    Как только нажимаем клавишу или поворачиваем валкодер, блок Б10-38 формирует сигнал "VIRQ кл" или "VIRQ кпн". Эти сигналы получает блок Б10-82, и сам формирует запрос на прерывание для ЦП (сигнал "VIRQ").
    Если прерывание разрешено, то ЦП отвечает сигналами "IAKO" и "DIN".
    При поступлении этих сигналов, блок Б10-82 выставляет адрес прерывания 000 340.
    -
    Пока не ясно, откликается ли какое-либо устройство на шине при обращении к адресу 177 716...
    Какие там адреса подпрограмм ?
    =
    В подпрограмме есть обращение к 177716, этот регистр (или его часть, возможно отдельные разряды) должен быть.
    Регистр начального пуска (которого нет, т.е. читается 0) это не совсем 177716, можно считать что это два разных регистра.
    Последний раз редактировалось Ал-р; 24.12.2013 в 11:19.

  8. #28
    Member
    Регистрация
    01.11.2013
    Адрес
    г. Красноярск
    Сообщений
    45
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Ал-р, а почему бы не написать просто:
    JMP @#000 764
    или это эквивалентно JMP 000 764?

    Смотрю описание. С Вашими пояснениями немного разобрался.
    Отличие в способе записи кода.
    @#000 764 - это абсолютная адресация. Тут всё понятно - жёстко указан адрес перехода = 000 764.
    000 764 - это относительная адресация. 000 764 получили, прибавив число после команды (смещение) к текущему адресу команды.
    Второе полезно, если кусок кода может быть использован в другой области адресов, т.к. ссылка относительная.



    ---------- Post added at 10:16 ---------- Previous post was at 10:10 ----------


    адреса подпрограмм:

    000 000: 000 577 (BR 000 400)
    000 002: 000 000
    000 004: 037 036
    000 006: 000 200
    000 010: 036 754
    000 012: 000 200
    *** нули ***
    000 034: 004 504
    000 036: 000 200
    *** нули ***
    000 100: 034 414
    000 102: 000 200
    *** нули ***
    000 270: 002 266
    000 272: 000 200
    *** нули ***
    000 340: 001 142
    000 342: 000 200
    *** нули ***
    000 360: 177 777
    000 362: 177 777
    *** нули ***
    Последний раз редактировалось darkstar; 24.12.2013 в 11:26.
    Нет ничего более вечного чем то, что обмотано синей изолентой

  9. #29
    Activist
    Регистрация
    11.08.2009
    Адрес
    Минск
    Сообщений
    234
    Спасибо Благодарностей отдано 
    21
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Вот эти подпрограммы и нужно рассмотреть для начала ...

  10. #30
    Member
    Регистрация
    01.11.2013
    Адрес
    г. Красноярск
    Сообщений
    45
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Да.
    Их и рассматриваю.
    Но эти подпрограммы вызывают другие подпрограммы, а те в свою очередь вызывают функции, которые завязаны с другими функциями и подпрограммами...
    И все они передают друг другу данные через системные регистры и стек. По ходу дела меняются какие-то данные в ОЗУ, что-то заносится в регистры блоков...
    Пытаюсь распутать этот клубок с разных концов.

    В общем, пока что остался вопрос, в чём смысл вот этой команды:
    032 060: JSR R4,PC
    Нет ничего более вечного чем то, что обмотано синей изолентой

Страница 3 из 8 ПерваяПервая 1234567 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. К1801ВМ1 vs К1801ВМ1Г, для БК0010/11
    от Alex_Vac в разделе БК-0010/0011
    Ответов: 24
    Последнее: 24.12.2014, 22:08
  2. Помогите новичку с ассемблером!
    от Ares в разделе Программирование
    Ответов: 139
    Последнее: 08.05.2014, 16:28
  3. {Украина} Куплю микросхемы к1801ВП1-037,К1801ВП1-014,К1801ВМ1
    от palsw в разделе Барахолка (архив)
    Ответов: 29
    Последнее: 05.06.2012, 14:23
  4. Ответов: 15
    Последнее: 22.12.2011, 12:01
  5. Помогите разобраться с ассемблером
    от casperzx в разделе Программирование
    Ответов: 7
    Последнее: 07.09.2010, 22:27

Ваши права

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