Циклическая смена атрибутов символов - Assembler
Формулировка задачи:
Доброго времени суток!
Необходимо создать две программы на tasm. К сожалению сам я в низкоуровневых языках вообще никак плюс время поджимает...
Только по возможности можно подробные комментарии плз
1. Написать программу циклической смены атрибутов символов (эффект бегущей строки), при этом атрибут символа N на каждом шаге цикла должен соответствовать атрибуту символа N–1 на предыдущем шаге цикле.
str – строка для вывода
attr – массив атрибутов символов
Решение задачи: «Циклическая смена атрибутов символов»
textual
Листинг программы
org 100h jmp start mess db 'Assembler for ever! FASM code. 17.04.2016' len = $ - mess ; длина строки free = 160 - (len*2) ; свободно в строке байт start: mov ax,3 ; int 10h ; push 0B800h ; pop es ; xor di,di ; mov bx,7 ; 7 повторов (кол-во ярких цветов) mov ah,0Fh ; начальный цвет символа print: ; push ax ; ^..запомним его mov si,mess ; mov cx,len ; cycle: ; lodsb ; stosw ; выводим символ на экран call sleep ; пауза.. inc ah ; перебираем все цвета cmp ah,10h ; ..мигающие не нужны jne @f ; mov ah,9 ; ..тёмные тоже (только яркие) @@: ; loop cycle ; выводим всю строку.. add di,free ; crlf pop ax ; снимаем цвет со-стека dec ah ; сл.атрибут dec bx ; прошли 7 итераций? jnz print ; exit: ; xor ax,ax ; int 16h ; int 20h ; выход! ;ннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннн sleep: ; push ax cx bx ; xor ax,ax ; int 1Ah ; цитаем тики xchg dx,bx ; add bx,3 ; задержа 1/6 сек. @@: ; int 1Ah ; cmp bx,dx ; ja @b ; pop bx cx ax ; ret ;
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д