Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.01.2012, 14:01   #1
bvak
Пользователь
 
Регистрация: 14.04.2011
Сообщений: 12
По умолчанию Анимация на аssembler-2

Нужна помощь. Суть программы такова : человечек автоматически идет по экрану, но нужно чтобы он выполнял еще несколько движений (хотя бы 10 кадров в анимации нужно). Выход осуществляется с помощью нажатия любой клавиши.///я нашел кое какую программу но она выводит на экран вот это
Собственно как сделать выход при помощи любой клавиши--как добавить больше кадров--как исправить неполадки с изображением
вот код :
Код HTML:
.model tiny
.286
.code
org 100h
start:  MOV AH,0Fh ;запомнить видеорежим -- видеорежим может быть не обязательно равным 3
    INT 10h
    MOV byte ptr VIDEOR,AL; запоминаем видеорежим чтобы потом его востановить
    mov    ax,0A000h 
        mov    ES,ax
        MOV     AX,13h
        INT     10h
    cld
        MOV     BX,2 ; инициализируем индекс фаз рисунка
        MOV    DI,320*12
    mov cx,200; время на экране -- ставь любое число
MOVE_MASK: push cx
    MOV  SI,tab[bx]
SHOW_KADR: MOV  CX,13; количество строк в рисунке
DRAW_H: push    cx    
    MOV    CX,10 ; количество точек в строке делим на 2    
        REP MOVSW; выводим сразу по 2 точки
        ADD    DI,320-20; переходим на следующую строку
        pop    cx
    loop DRAW_H
    xor bx,2; переключаем идекс фазы рисунка
    sub di,320*13-1; 1 - плавность перемещения по экрану чем больше число - тем быстрее
    push bx
    mov ah,0    ;Получить системное время
    int 1Ah    ; Return: CX:DX=число тиков от полуночи 
    mov bx,dx  ;1 секунда=18.2 тика        
delay:    int 1Ah    ;пропускаем 55 милисекунды
    cmp bx,dx
    jz delay
    pop bx
    pop cx
    loop MOVE_MASK
exit:   MOV     AX,VIDEOR; восстанавливаем первоначальный режим
        INT     10h                 
        INT     20h; выход в DOS
H1  DB 0,2,2,2,2,2,2,2,2,2,2,2
      DB 0,0,0,0,0,9,9,9,9,0,0,0
      DB 0,0,0,0,0,9,9,0,0,0,0,0
      DB 0,0,0,9,9,9,9,9,9,0,0,0
      DB 0,0,0,9,9,9,9,9,9,0,0,0
      DB 0,9,9,0,0,9,9,0,0,9,9,0
      DB 0,9,9,0,0,9,9,0,0,9,9,0
      DB 0,0,0,0,0,9,9,0,0,0,0,0
      DB 0,0,0,0,0,9,9,0,0,0,0,0
      DB 0,0,0,9,9,0,0,9,9,0,0,0
      DB 0,0,0,9,9,0,0,9,9,0,0,0
      DB 0,9,9,0,0,0,0,0,0,9,9,0
      DB 0,9,9,0,0,0,0,0,0,9,9,0
     
H2     DB 0,0,0,0,0,9,9,9,9,0,0,0
       DB 0,0,0,0,0,9,9,9,9,0,0,0
       DB 0,0,0,0,0,9,9,0,0,0,0,0
       DB 0,0,0,9,9,9,9,9,9,0,0,0
       DB 0,0,0,9,9,9,9,9,9,0,0,0
       DB 0,9,9,0,0,9,9,0,0,9,9,0
       DB 0,9,9,0,0,9,9,0,0,9,9,0
       DB 0,0,0,0,0,9,9,0,0,0,0,0
       DB 0,0,0,0,0,9,9,9,9,0,0,0
       DB 0,0,0,9,9,0,0,9,9,0,0,0
       DB 0,0,0,9,9,0,0,9,9,0,0,0
       DB 0,9,9,0,0,0,0,9,9,0,0,0
       DB 0,9,9,0,0,0,0,0,0,0,0,0


tab dw H1,H2; адреса фаз рисунков
VIDEOR dw 0
end    start
bvak вне форума Ответить с цитированием
Старый 03.01.2012, 21:14   #2
alexcoder
Форумчанин
 
Регистрация: 31.05.2009
Сообщений: 786
По умолчанию

Такая ересь на экране может быть только потому, что текст программы у Вас для com-файла, а компилируете программу как exe, из-за ненастроенных сегментов выводится мусор на экран.
Помощь с программами:
vk.com/alexcoder1
e-mail: informatik101@mail.ru
alexcoder вне форума Ответить с цитированием
Старый 04.01.2012, 00:34   #3
bvak
Пользователь
 
Регистрация: 14.04.2011
Сообщений: 12
По умолчанию

не помогло. приблизительно та же ерунда на экране
bvak вне форума Ответить с цитированием
Старый 04.01.2012, 02:10   #4
Ulex
Непрофессионал
Участник клуба
 
Аватар для Ulex
 
Регистрация: 01.01.2008
Сообщений: 1,405
По умолчанию

Цитата:
MOV CX,10 ; количество точек в строке делим на 2
Ну и как 10 то получилось?
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------
Страничка с моими программками http://ulex-masm.ru
Ulex вне форума Ответить с цитированием
Старый 04.01.2012, 09:58   #5
alexcoder
Форумчанин
 
Регистрация: 31.05.2009
Сообщений: 786
По умолчанию

Код:
.model tiny
.286
.code
org 100h
start:  MOV AH,0Fh ;запомнить видеорежим -- видеорежим может быть не обязательно равным 3
    INT 10h
    MOV byte ptr VIDEOR,AL; запоминаем видеорежим чтобы потом его востановить
    mov    ax,0A000h
        mov    ES,ax
        MOV     AX,13h
        INT     10h
    cld
        MOV     BX,2 ; инициализируем индекс фаз рисунка
        MOV    DI,320*12
    mov cx,200; время на экране -- ставь любое число
MOVE_MASK: push cx
    MOV  SI,tab[bx]
SHOW_KADR: MOV  CX,13; количество строк в рисунке
DRAW_H: push    cx
    MOV    CX,6 ; количество точек в строке делим на 2
        REP MOVSW; выводим сразу по 2 точки
        ADD    DI,320-12; переходим на следующую строку
        pop    cx
    loop DRAW_H
    xor bx,2; переключаем идекс фазы рисунка
    sub di,320*13-1; 1 - плавность перемещения по экрану чем больше число - тем быстрее
    push bx
    mov ah,0    ;Получить системное время
    int 1Ah    ; Return: CX:DX=число тиков от полуночи
    mov bx,dx  ;1 секунда=18.2 тика
delay:    int 1Ah    ;пропускаем 55 милисекунды
    cmp bx,dx
    jz delay
    pop bx
    pop cx
    loop MOVE_MASK
exit:   MOV     AX,VIDEOR; восстанавливаем первоначальный режим
        INT     10h
        INT     20h; выход в DOS
H1    DB 0,0,0,0,0,9,9,9,9,0,0,0
      DB 0,0,0,0,0,9,9,9,9,0,0,0
      DB 0,0,0,0,0,9,9,0,0,0,0,0
      DB 0,0,0,9,9,9,9,9,9,0,0,0
      DB 0,0,0,9,9,9,9,9,9,0,0,0
      DB 0,9,9,0,0,9,9,0,0,9,9,0
      DB 0,9,9,0,0,9,9,0,0,9,9,0
      DB 0,0,0,0,0,9,9,0,0,0,0,0
      DB 0,0,0,0,0,9,9,0,0,0,0,0
      DB 0,0,0,9,9,0,0,9,9,0,0,0
      DB 0,0,0,9,9,0,0,9,9,0,0,0
      DB 0,9,9,0,0,0,0,0,0,9,9,0
      DB 0,9,9,0,0,0,0,0,0,9,9,0

H2     DB 0,0,0,0,0,9,9,9,9,0,0,0
       DB 0,0,0,0,0,9,9,9,9,0,0,0
       DB 0,0,0,0,0,9,9,0,0,0,0,0
       DB 0,0,0,9,9,9,9,9,9,0,0,0
       DB 0,0,0,9,9,9,9,9,9,0,0,0
       DB 0,9,9,0,0,9,9,0,0,9,9,0
       DB 0,9,9,0,0,9,9,0,0,9,9,0
       DB 0,0,0,0,0,9,9,0,0,0,0,0
       DB 0,0,0,0,0,9,9,9,9,0,0,0
       DB 0,0,0,9,9,0,0,9,9,0,0,0
       DB 0,0,0,9,9,0,0,9,9,0,0,0
       DB 0,9,9,0,0,0,0,9,9,0,0,0
       DB 0,9,9,0,0,0,0,0,0,0,0,0


tab dw H1,H2; адреса фаз рисунков
VIDEOR dw 0
end    start
компилировать как com
Помощь с программами:
vk.com/alexcoder1
e-mail: informatik101@mail.ru
alexcoder вне форума Ответить с цитированием
Старый 04.01.2012, 17:30   #6
bvak
Пользователь
 
Регистрация: 14.04.2011
Сообщений: 12
По умолчанию

ну хоть за что-то спасибо
а как сделать чтобы выход был при нажатии любой кнопки.
хоть намек дайте
bvak вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Анимация на аssembler bvak Помощь студентам 4 31.10.2011 21:06
отладчик Turbo Debbager и Аssembler MaRtOvSkiI_KoT Помощь студентам 6 08.10.2011 11:47
Анимация Madsqui Microsoft Office Excel 3 30.05.2010 23:53