User Tag List

Показано с 51 по 60 из 62

Тема: Если бы у Медноногова был БК ?..

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

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

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

    По умолчанию

    Цитата Сообщение от gid Посмотреть сообщение
    INC/DEC меняет на единицу, а инкрементные/декрементные адресации - всегда на 2
    Хорошо, а команды типа CALL (JSR) и RET (RTI) будут корректно работать с нечетным стеком?

    Цитата Сообщение от gid Посмотреть сообщение
    переход по смещению 0 - на адрес, следующий за командой SOB, если равен 0, то прекращение ветвления
    А если поставить команду SOB PC,nn? Тут вопрос даже не в нулевом смещении, а в изменении PC самой командой.


    Цитата Сообщение от Manwe Посмотреть сообщение
    Я проверил, тот же размер получается
    Неа, у меня сократилось аж на 16 байт =) Правда, тоже задействовал один дополнительный регистр, зато ощутимый выигрыш по объему.
    Заработало с первого раза без багов, хотя в асме БК я вообще нубас =) Настрочил в блокнотике, скомпилил - ура, работает.
    В плане быстродействия где-то одинаково за счет того, что внутри цикла (основного) нет адресаций через память.
    А если задействовать еще один регистр под хранение числа #100, то и перед SOB можно убрать выборку из памяти, а размер будет тот же.
    Кстати, команда CLC не нужна, т.к. ADD reg,PC в любом случае обнулит флаг переноса.

    scroller.zip

    Вложил оба варианта: первоначальный от Manwe и свой. Внутри исходники + готовый код. Ниже под спойлером текст исходника, если кому лень загружать файл.
    Скроллится кусочек вверху экрана, время около 18 сек, можно перезапустить командой S монитора. Удобно запускать прямо в эмуляторе.
    Развернул команды скролла, т.к. компилер BKTurbo8 не понимает этой конструкции с копиями. Как в нем задать повтор куска кода?

    Скрытый текст

    Код:
    	.LA	1000
    
    	MOV	#1000,R5
    
    SCRL:	MOV	#40000,R0
    	MOV	#30,R1
    	MOV	#100,R2
    	CALL	ScrollRight
    	SOB	R5,SCRL
    	HALT
    
    ; R0 - screen address
    ; R1 - width in words
    ; R2 - height in rows
    
    ScrollRight:
    	ASL	R1
    	NEG	R1
    	ADD	#100,R1	;R1=64-(width*2)
    ROLL:	MOV	R0,R3	;save scr addr
    ROLL1:	ADD	R1,PC
    
    	ROL (R0)+
    	ROL (R0)+
    	ROL (R0)+
    	ROL (R0)+
    	ROL (R0)+
    	ROL (R0)+
    	ROL (R0)+
    	ROL (R0)+
    	ROL (R0)+
    	ROL (R0)+
    	ROL (R0)+
    	ROL (R0)+
    	ROL (R0)+
    	ROL (R0)+
    	ROL (R0)+
    	ROL (R0)+
    	ROL (R0)+
    	ROL (R0)+
    	ROL (R0)+
    	ROL (R0)+
    	ROL (R0)+
    	ROL (R0)+
    	ROL (R0)+
    	ROL (R0)+
    	ROL (R0)+
    	ROL (R0)+
    	ROL (R0)+
    	ROL (R0)+
    	ROL (R0)+	; scroll row
    	ROL (R0)+
    	ROL (R0)+
    	ROL (R0)+
    
    	MOV	R3,R0	; restore scr addr
    	ADC	(R0)	; shift from last word to 1st
    	INC	PC
    	BR	ROLL1
    	ADD	#100,R0
    	SOB	R2,ROLL
    	RET
    	
    	.END
    [свернуть]

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

    Oleg N. Cher(29.12.2021)

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

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

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

Похожие темы

  1. А был ли Garic?..
    от newart в разделе Разный софт
    Ответов: 1
    Последнее: 15.10.2016, 11:14
  2. Ответов: 3
    Последнее: 18.02.2008, 20:16
  3. ДР Медноногова
    от Slider в разделе Поздравления
    Ответов: 11
    Последнее: 14.05.2007, 01:22
  4. а был ли сс05?
    от elfh в разделе Демо
    Ответов: 92
    Последнее: 27.10.2005, 14:42

Ваши права

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