User Tag List

Показано с 1 по 10 из 78

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

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #11

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

    По умолчанию

    Добрался до TRAP-диспетчера.
    Написал несколько комментариев и запутался.
    Не пойму, какое число получается после очистки битов и сдвига
    И куда в конечном счёте происходит переход?

    Аргументы у TRAP-а видел такие:
    11, 12, 13
    20, 22, 23, 25, 27
    32, 33, 36,
    44
    50, 53, 55

    Код:
    TRAP-диспетчер: 
    --------------------- 
    Сохраняем регистры: 
    004 504:	MOV	R3,-(SP)	; SP=SP-2; занести значение регистра R3 в стек 
    004 506:	MOV	R4,-(SP)	; SP=SP-2; занести значение регистра R4 в стек 
    004 510:	MOV	000 004(SP),R3	;записать в R3 содержимое ячейки по адресу SP+4, т.е. адрес возврата из прерывания 
    004 514:	MOV	R3,R4		; R4 = R3 = адрес возврата из прерывания 
    004 516:	MOV	-(R3),R3	; R3 = (R3-2) ; достали команду TRAP, вызвавшую прерывание, и положили в регистр R3 
    004 520:	BIC	#177 600,R3	; обнулить все разряды команды TRAP, кроме младших 7 бит - достали аргумент TRAP-а 
    004 524:	MOV	R3,-(SP)	; полученный аргумент кладём в стек 
    004 526:	CMP	#000 010,R3	; сравниваем 000 010 - R3 
    004 532:	BMI	004 540		; если R3 меньше 10, то перейти на 004 540 
    004 534:	CLR	R3		; очистить R3 
    004 536:	BR	004 544		; перейти на 004 544 
    004 540:	SUB	#000 010,R3	; вычесть 10 из R3 
    004 544:	MOVB	004 600(R3),-(SP); положить в стек значение 004 600+(R3) 
    004 550:	BIC	#177 400,(SP)	; очистить старший байт ячейки стека 
    004 554:	ASL	R3		; сдвинуть R3 влево 
    004 556:	JSR	PC,@004 646(R3)	; перейти к подпрограмме по адресу 004 646+(R3)
    004 562:	MOV	(SP)+,R3
    004 564:	ADD	R3,000 006(SP)
    004 570:	TST	(SP)+
    004 572:	MOV	(SP)+,R4
    004 574:	MOV	(SP)+,R3
    004 576:	RTI	
    004 600:	RTI	
    004 602:	HALT
    Последний раз редактировалось darkstar; 14.11.2013 в 10:26.
    Нет ничего более вечного чем то, что обмотано синей изолентой

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

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

Эту тему просматривают: 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

Ваши права

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