Ответ на задачу
А сейчас, как мы и обещали, даем ответ на задачу, поставленную в параграфе «Бегущая строка» и приводим текст программы на ассемблере, соответствующий предложенному фрагменту на Бейсике. Не стоит очень расстраиваться, если вы обнаружите в чем-то расхождения, ведь любую, даже очень небольшую программу, можно написать тысячью и одним способом. Поэтому, если ваша программа работает, можете считать, что с поставленной задачей вы справились.
ORG 60000 ENT $ LD A,6 ;подготовка экрана LD (23693),A XOR A CALL 8859 CALL 3435 LD A,2 CALL 5633 LD HL,TEXT ;адрес текстовой строки MAIN1 LD DE,PR_AT ;позиционирование курсора, черный LD BC,5 ; (совпадающий с фоном) цвет символов CALL 8252 LD A,(HL) ;чтение очередного символа строки AND A JR Z,MAIN3 ;если 0, закончить вывод RST 16 INC HL PUSH HL ; Восьмикратное (по ширине символов в пикселях) скроллирование строки влево LD B,8 MAIN2 PUSH BC LD A,21 CALL SCRLIN CALL PAUSE ;задержка для получения более ; плавного смещения строки POP BC DJNZ MAIN2 POP HL JR MAIN1 ; Скроллинг, пока вся строка не исчезнет за левым краем экрана (0 = 265 раз) MAIN3 LD B,0 MAIN4 PUSH BC LD A,21 CALL SCRLIN CALL PAUSE POP BC DJNZ MAIN4 RET PAUSE LD BC,1 JP 7997
PR_AT DEFB 22,21,31,16,0 TEXT DEFM "Examine yourself how you know the assembler!" DEFB 0