Форум программистов, компьютерный форум, киберфорум
Наши страницы
Assembler, MASM, TASM
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
bookkc
0 / 0 / 1
Регистрация: 24.06.2009
Сообщений: 232
#1

Плавающий текст

15.09.2010, 15:38. Просмотров 946. Ответов 5
Метки нет (Все метки)

Ищу исходник программы в котором бы плавал текст, неважно как, в каком порядке, главное что бы "плавал" по экрану, или в ряд, или в строчку, а лучше всего отбивался от краев екрана

Очень нужно, кто поможет тому + поставлю

З Ы Компилирую на TASM
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.09.2010, 15:38
Ответы с готовыми решениями:

Из файла прочитать текст и в этом тексте заменить все пробелы на _ и записать исправленный текст обратно
задача написать программу на assembler, под dos Нужно из файла прочитать текст...

Плавающий текст за курсором
Подскажите, пожалуйста, как прикрепить плавающий текст за курсором (в рамке или...

Плавающий блок на JS
Объясните, что я делаю не так :/ Цель - чтобы блок "прилипал" когда...

плавающий блок
Нашел такакую реализацию плавающего блока, но есть одна проблема блок...

Плавающий баннер
Совсем нуб в яваскрипте. Не удивлюсь, если окажется, что яваскрипт тут вообще...

5
vital792
1998 / 1270 / 60
Регистрация: 05.06.2010
Сообщений: 2,213
15.09.2010, 16:51 #2
попробовал набросать (тока сильно не ругайтесь набросал за 5 мин, времени нет думать). Строка добегает до края экрана и прога завершается. Чтобы бежала обратно доделай сам.
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
.model small
.data
_str db 'text',0
length_s dw $-offset _str - 1
.code
 
out_text proc
 
mov ah, 2
mov dl, 32
int 21h
l:
mov dl, [si]
or dl, dl
jz end_out_text
int 21h
inc si
jmp l
end_out_text:
ret
out_text endp
 
delay proc
mov ah, 0
int 1ah
mov bx,dx
add bx, 3 ; задержка в тиках (1/18 сек)
d1:
int 1ah
cmp dx, bx
jb d1
ret
delay endp
 
start:
mov ax, @data
mov ds, ax
 
xor dx, dx
 
_loop1:
mov ah, 1
int 16h
jnz exit
 
push dx
lea si, _str
call out_text
call delay
pop dx
 
xor bh, bh
mov ax, 80
sub ax, length_s
cmp dl, al
jae exit
set_cur:
inc dl
mov ah, 2
int 10h
jmp _loop1
 
exit:
ret
end start
0
bookkc
0 / 0 / 1
Регистрация: 24.06.2009
Сообщений: 232
15.09.2010, 19:06  [ТС] #3
А неможещь мне поставить коментарии, ну что какая строчка делает а то мне так будет легче розбиратся

Заранее спасибо!!!
0
vital792
1998 / 1270 / 60
Регистрация: 05.06.2010
Сообщений: 2,213
16.09.2010, 09:34 #4
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
.model small
.data
_str db 'text',0        ; строка для вывода
length_s dw $-offset _str - 1   ; длина строки
.code
 
; процедура вывода строки на экран
; вывод начинается с пробела
out_text proc
 
mov ah, 2
mov dl, 32
int 21h     ; рисуем ' '
l:
mov dl, [si]    ; получаем символ
or dl, dl       ; дошли до конца строки?
jz end_out_text ; да
int 21h     ; вывод символа
inc si      ; перемещаем указатель на следующий символ
jmp l       ; цикл
end_out_text:
ret
out_text endp
 
; задержка
delay proc
mov ah, 0
int 1ah     ; получаем текущее состояние счетчика
mov bx,dx   ; сохраняем старшую часть
add bx, 3   ; прибавляем необходимую задержку в тиках(1/18.2 сек)   
d1:
int 1ah     ; текущее состояние счетчика
cmp dx, bx  ; счетчик дотикал до нужного нам?
jb d1       ; нет - ждем дальше
ret
delay endp
 
start:
mov ax, @data
mov ds, ax
 
xor dx, dx
 
_loop1:
mov ah, 1   ; смотрим че там в буфере клавиатуры
int 16h
jnz exit        ; че то появилось - клавиша нажата, выходим
 
push dx
lea si, _str
call out_text   ; выводим строку
call delay  ; пауза
pop dx
 
xor bh, bh
mov ax, 80
sub ax, length_s
cmp dl, al  ; проверим помещается ли еще строка на экран
jae exit        ; нет - выходим
set_cur:    ; да - двигаем курсор вправо
inc dl
mov ah, 2
int 10h
jmp _loop1
 
exit:
ret
end start
1
bookkc
0 / 0 / 1
Регистрация: 24.06.2009
Сообщений: 232
16.09.2010, 19:22  [ТС] #5
От спасибо! Выручил, а то одни "уроды" вокруг!

А не можешь описать что бы она двигалась назад и была безконечной а то что-то не получается у меня

Добавлено через 20 минут
Если я всё правильно понимаю, то после этого кода

Assembler
1
2
3
4
5
6
7
8
9
10
l:
mov dl, [si]    ; получаем символ
or dl, dl               ; дошли до конца строки?
jz end_out_text ; да
int 21h         ; вывод символа
inc si          ; перемещаем указатель на следующий символ
jmp l           ; цикл
end_out_text:
ret
out_text endp
Нужно переписать этот фрагмент и вставить его ниже, только что бы курсор перемещался "на предведущий символ", закрыть это всё в цыкл Что нужно мне теперь тут переписать ?
0
vital792
1998 / 1270 / 60
Регистрация: 05.06.2010
Сообщений: 2,213
17.09.2010, 10:07 #6
Цитата Сообщение от bookkc Посмотреть сообщение
А не можешь описать что бы она двигалась назад и была безконечной
попробовал - получилось немного криво, но работает
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
.286
.model small
.data
_str db 'text',0                ; строка для вывода
length_s dw $-offset _str - 1   ; длина строки
direct_flag db 1    ; флаг направления движения (1 - вправо 0 - влево)
.code
 
; процедура вывода строки на экран
; вывод начинается с пробела
out_text proc
pusha       ; сохраним регистры
mov ah, 2       ; функция вывода символа
xor al, al
cmp direct_flag, al ; проверим направление
jz l        ; если влево - первый символ стирать не надо
mov dl, 32
int 21h         ; рисуем ' '
l:
mov dl, [si]    ; получаем символ
or dl, dl               ; дошли до конца строки?
jz end_out_str ; да
int 21h         ; вывод символа
inc si          ; перемещаем указатель на следующий символ
jmp l           ; цикл
 
end_out_str:
cmp direct_flag, 1  ; проверим направление
jz end_out_text ; если влево стираем символ после строки
mov dl, 32
int 21h         ; рисуем ' '
 
end_out_text:
popa        ; восстановим регистры
ret
out_text endp
 
; задержка
delay proc
pusha
mov ah, 0
int 1ah         ; получаем текущее состояние счетчика
mov bx,dx       ; сохраняем старшую часть
add bx, 2       ; прибавляем необходимую задержку в тиках таймера(1/18.2 сек)   
d1:
int 1ah         ; текущее состояние счетчика
cmp dx, bx      ; счетчик дотикал до нужного нам?
jb d1           ; нет - ждем дальше
popa
ret
delay endp
 
start:
mov ax, @data
mov ds, ax
 
xor dx, dx
xor bh, bh
 
_loop1:
mov ah, 1       ; смотрим че там в буфере клавиатуры
int 16h
jnz exit                ; че то появилось - клавиша нажата, выходим
 
lea si, _str
call out_text   ; выводим строку
call delay      ; пауза
 
xor al, al      ; проверим направление
cmp  direct_flag, al
jnz _right
 
dec dl      ; курсор влево
cmp dl, 0       ; дошли до левого края?
jz set_flag     ; меняем направление
jmp set_cur
 
_right:
inc dl      ; курсор вправо
mov ax, 80
sub ax, length_s
cmp dl, al      ; проверим помещается ли еще строка на экран
jae set_flag    ; нет - меняем направление
 
set_cur:
mov ah, 2
int 10h     ; установим курсор
jmp _loop1
 
set_flag:
mov ah, 2
int 10h
mov al, direct_flag
xor al, 1       ; изменим направление
mov direct_flag, al
jmp _loop1
 
exit:
ret
end start
1
17.09.2010, 10:07
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.09.2010, 10:07

плавающий фрейм
Доброго времени суток. Вопрос собственно вот в чем: в HTML-документе создается...

Плавающий элемент
Как сделать чтобы в плавающем элементе при сужении экрана не скрол-бар...

Плавающий сайдбар
Ребята задача такая, имеем блог на WP, в нем есть сайдбар, элемент li, нужно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru